通过POI实现分栏操作
目前没有直接的POI分栏Word API,只能是用表格来模拟实现,创建一个1行2列的表格,然后将表格的边框去掉。
//创建一个表格
XWPFTable table = doc.createTable(1, 2);
XWPFTableCell firstCell = table.getRow(0).getCell(0);
firstCell.addParagraph().createRun().addPicture(
new FileInputStream("D:\\Users\\lvhb\\Desktop\\right.png")
, XWPFDocument.PICTURE_TYPE_PNG, "Generated",
//设置图片宽高
Units.toEMU(140), Units.toEMU(140)
);
XWPFTableCell secondCell = table.getRow(0).getCell(1);
secondCell.addParagraph().createRun().addPicture(
new FileInputStream("D:\\Users\\lvhb\\Desktop\\left.png")
, XWPFDocument.PICTURE_TYPE_PNG, "Generated",
//设置图片宽高
Units.toEMU(140), Units.toEMU(140)
);
通过表格来间接模拟实现分栏。
去掉表格的边框
首先需要获取到表格的单元格,根据获取到的单元格来具体实现去掉哪边对应的边框,分别有top、bottom、left、right。
CTTc ctTc1 = firstCell.getCTTc();
CTTcPr ctTcPr = ctTc1.addNewTcPr();
ctTc1.getTcPr().addNewTcBorders().addNewLeft().setVal(STBorder.NIL);//设置无边框
ctTc1.getTcPr().addNewTcBorders().addNewRight().setVal(STBorder.NIL);//设置无边框
ctTcPr.addNewVAlign().setVal(STVerticalJc.CENTER); //设置文字居中
注意,新的单元格调用getCTTc()方法时返回的是null,所以此时要先为此单元格添加一个Tc,调用addNewTcPr()方法。