我正在尝试创建一个包含多列的Word文档。这样做(而不是使用表格)的原因是数据将跨越多个页面,并且只有使用列我才能在添加到新页面之前填充整个页面。
可以用 Apache POI 来完成吗?谢谢!
使用之前创建的多列空文档怎么样?像这样:
XWPFDocument document = new XWPFDocument(PoiTest.class.getResourceAsStream("twocolumn.docx"));
XWPFParagraph tmpParagraph = document.getParagraphs().get(0);
for (int i = 0; i < 100; i++) {
XWPFRun tmpRun = tmpParagraph.createRun();
tmpRun.setText("LALALALAALALAAAA");
tmpRun.setFontSize(18);
}
document.write(new FileOutputStream(new File("C:\\temp\\poi.docx")));
这是带有代码的解决方案:
XWPFDocument document = new XWPFDocument();
CTBody ctBody = document.getDocument().getBody();
CTSectPr ctSectPr = ctBody.getSectPr() == null ? ctBody.addNewSectPr() : ctBody.getSectPr();
// add first column
CTColumns column1 = ctSectPr.addNewCols();
column1.setNum(BigInteger.valueOf(1));
// add second column
CTColumns column2 = ctSectPr.addNewCols();
column2.setNum(BigInteger.valueOf(2));
要在两列中添加文本:
XWPFParagraph paragraph = document.createParagraph();
XWPFRun run = paragraph.createRun();
// first line of column 1
run.setText("col1");
run.addBreak(BreakType.COLUMN);
// first line of column 2
run.setText("col2");