您好,我正在使用Apache POI,并且我必须使用它来创建docx文件。
现在,我遍历html文档并获取标签以创建有效的docx文档。

当我在表格单元格中有一张桌子时,没有办法显示正确的信息。

<table>
    <tr>
        <td style="text-align: left">Status</td>
        <td>
            <table>
                <tr>
                    <td>test</td>
                </tr>
            </table>
        </td>
    </tr>
</table>


加载带有来自docx的嵌套表的正确文件没有问题。

     FileOutputStream fos = null;
            XWPFDocument document = null;
            try {
                fos = new FileOutputStream(docRes);
                if (fileType == docType.DOCX) {
                    try {
                        String fileName = "D:\\test.docx";

                        if (!(fileName.endsWith(".doc") || fileName.endsWith(".docx"))) {
                            throw new FileFormatException();
                        } else {
                            XWPFDocument doc = new XWPFDocument(new FileInputStream(fileName));
                            List<XWPFTable> table = doc.getTables();

                        }
                    }
                }
            }


当我再次保存该文件时,我得到了带有POI的Word中的嵌套表。

但是,如何在不加载正确的docx文件的情况下创建嵌套表?

我检查了许多选项,但已经简单化的解决方案不起作用。

            document = new XWPFDocument();
            XWPFTable tableOne = document.createTable();
            XWPFTableRow tableOneRow1 = tableOne.getRow(0);
            XWPFTableRow tableOneRow2 = tableOne.createRow();
            tableOneRow1.getCell(0).setText("Test");
            tableOneRow1.addNewTableCell();
            tableOneRow1.getCell(1).setText("Test");
            tableOneRow2.getCell(0).setText("Test");
            tableOneRow2.addNewTableCell();
            tableOneRow2.getCell(1).setText("include nestedTable");

            XWPFTable tableTwo = document.createTable();
            XWPFTableRow tableTwoRow1 = tableTwo.getRow(0);
            tableTwoRow1.getCell(0).setText("Test");
            tableTwoRow1.addNewTableCell();
            tableTwoRow1.getCell(0).setText("nestedTable");

            tableOneRow2.getCell(1).insertTable(0, tableTwo);


与从docx直接加载的变体的区别在于,在自制解决方案中,文档在文档根目录中有两个表。

我该如何建立嵌套表?

谢谢

祝费利克斯

最佳答案

我没有测试过,但是您可能想看看XWPFTableCell类的文档
方法public void insertTable(int pos,XWPFTable table)似乎正是您要寻找的。

关于java - Tablecell内的表格-带有Apache POI的嵌套表格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32139125/

10-08 22:33