java中Excel行列操作,POI对Word的基本操作有哪些?

BSO 2020-09-11 10:04:56 java常见问答 6184

上次已经为大家介绍过java中Excel使用图形的操作方法,今天要介绍的依旧是与java中Excel相关的知识,也就是java中Excel行列操作以及POI对Word的基本操作有哪些?一起来看看吧。

首先说的是Excel的行列操作。

一、组合行、列,代码如下所示:

HSSFSheet sheet = workbook.createSheet("Test0"); // 创建工作表(Sheet)
sheet.groupRow(1, 3); //组合行
sheet.groupRow(2, 4); //组合行
sheet.groupColumn(2, 7); //组合列

图片如下:

java中Excel行列操作

另外补充一些关于组合的知识点,组合分为行组合和列组合。行组合的意思就是让n行组合成一个集合,能够进行展开和合拢操作。同时使用POI也可以取消组合,

二、锁定列

在Excel中,有可能会出现列数太多或是行数太多的情况,这个时候可以通过锁定列来冻结部分列,不随滚动条滑动,方便查看。代码如下所示:

HSSFSheet sheet = workbook.createSheet("Test0"); // 创建工作表(Sheet)
sheet.createFreezePane(2, 3, 15, 25); //冻结行列

图片如下所示:

java中Excel行列操作

另外对CreateFreezePane的参数作一下说明:

1.第一个参数表示要冻结的列数;

2.第二个参数表示要冻结的行数,这里只冻结列所以为0;

3.第三个参数表示右边区域可见的首列序号,从1开始计算;

4.第四个参数表示下边区域可见的首行序号,也是从1开始计算,这里是冻结列,所以为0;

三、上下移动行,代码如下所示:

FileInputStream stream = new FileInputStream(filePath);
HSSFWorkbook workbook = new HSSFWorkbook(stream);
HSSFSheet sheet = workbook.getSheet("Test0");
sheet.shiftRows(2, 4, 2); //把第3行到第4行向下移动两行

图片如下:

java中Excel行列操作

对于HSSFSheet.shiftRows(startRow, endRow, n)参数作一个说明:

1.startRow:需要移动的起始行;

2.endRow:需要移动的结束行;

3.n:移动的位置,正数表示向下移动,负数表示向上移动;

接下来介绍POI对Word的基本操作

一、简述POI操作Word

虽然POI读写Excel功能强大、操作简单。但是POI操作时,一般只用它读取word文档,因为POI只能创建简单的word文档,相比之下POI操作时的功能太少。

二、POI创建Word文档,代码如下所示:

XWPFDocument doc = new XWPFDocument(); // 创建Word文件
XWPFParagraph p = doc.createParagraph(); // 新建一个段落
p.setAlignment(ParagraphAlignment.CENTER); // 设置段落的对齐方式
p.setBorderBottom(Borders.DOUBLE); //设置下边框
p.setBorderTop(Borders.DOUBLE); //设置上边框
p.setBorderRight(Borders.DOUBLE); //设置右边框
p.setBorderLeft(Borders.DOUBLE); //设置左边框
XWPFRun r = p.createRun(); //创建段落文本
r.setText("POI创建的Word段落文本");
r.setBold(true); //设置为粗体
r.setColor("FF0000"); //设置颜色
p = doc.createParagraph(); // 新建一个段落
r = p.createRun();
r.setText("POI读写Excel功能强大、操作简单。");
XWPFTable table = doc.createTable(3, 3); //创建一个表格
table.getRow(0)
    .getCell(0)
    .setText("表格1");
table.getRow(1)
    .getCell(1)
    .setText("表格2");
table.getRow(2)
    .getCell(2)
    .setText("表格3");
FileOutputStream out = newFileOutputStream("d:\\POI\\sample.doc");
doc.write(out);
out.close();

图片如下:

POI对Word的基本操作

三、POI读取Word文档里的文字,代码如下所示:

FileInputStream stream = newFileInputStream("d:\\POI\\sample.doc");
XWPFDocument doc = new XWPFDocument(stream); // 创建Word文件
for (XWPFParagraph p: doc.getParagraphs()) //遍历段落
{
    System.out.print(p.getParagraphText());
}
for (XWPFTable table: doc.getTables()) //遍历表格
{
    for (XWPFTableRow row: table.getRows())
    {
        for (XWPFTableCell cell: row.getTableCells())
        {
            System.out.print(cell.getText());
        }
    }
}

图片如下:

POI对Word的基本操作

以上就是关于在java中Excel行列操作以及POI对Word的基本操作的主要内容,想要了解更多java经典例子以及常见问题,敬请关注奇Q工具网。

推荐阅读:

java中Excel公式的计算和函数,实例展示

java中Excel单元格对齐包含什么?使用边框怎么做?

java中Excel字体的设置,背景和纹理的操作