Apache POI - Word (docx) 文档中的多列

问题描述 投票:0回答:2

我正在尝试创建一个包含多列的Word文档。这样做(而不是使用表格)的原因是数据将跨越多个页面,并且只有使用列我才能在添加到新页面之前填充整个页面。

可以用 Apache POI 来完成吗?谢谢!

java ms-word apache-poi
2个回答
2
投票

使用之前创建的多列空文档怎么样?像这样:

    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")));

0
投票

这是带有代码的解决方案:

    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");
© www.soinside.com 2019 - 2024. All rights reserved.