嵌套表格docx4j

时间:2019-03-30 12:44:48

标签: java docx4j

我需要在主表中推送第二张表。 我使用主表来设置文本格式的正确性:我正在用Java创建一个类来生成课程,因此我需要一个主表来创建一个好的模板 我尝试推动 主表的Tc(单元格元素)中的Tbl元素,但是Word给我有关错误模板的错误。它询问我是否仍要打开该文档:它正确显示了嵌套表,但我不希望显示错误。     ObjectFactory factory = Context.getWmlObjectFactory();         Tbl mainTable = TblFactory.createTable(2,2,cellWidthTwips);         List 行= table.getContent();         Tr row =(Tr)rows.get(0);         List 单元格= row.getContent();         Tc单元格=(Tc)cells.get(0);         Tbl nestedTable = TblFactory.createTable(1,5,widthTips / columns);         cell.getContent()。add(nestedTable); 我也尝试过 Tbl nestedTable2 = factory.createTbl(); 我哪里错了?

1 个答案:

答案 0 :(得分:0)

假设MainDocumentPart mdp:

int widthTwips = 4788;
Tbl mainTable = TblFactory.createTable(2, 2, widthTwips);
List<Object> rows = mainTable.getContent();
Tr row = (Tr) rows.get(0);
List<Object> cells = row.getContent();
Tc cell = (Tc) cells.get(0);

Tbl nestedTable = TblFactory.createTable(1, 2, 2000);

// You'll get an error in Word if you don't have an empty <p/> after the nested table.
// Since TblFactory.createTable automatically added an empty <p>, add the table before it
cell.getContent().add(0, nestedTable);

mdp.getContent().add(mainTable);

请参阅代码段中的解释性注释。