如何使用 Apose.Words 使用合并的单元格绘制 table

How to draw table with merged cells using Apose.Words


我在使用 Aspose.Words
绘制 table 时遇到问题
所以我需要得到这个结果 table:
-link to proper table view-

为了画这个table我写了下一段代码:

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

Table table = builder.startTable();

builder.insertCell();
builder.write("ROW 1");

builder.insertCell();
builder.getCellFormat().setHorisontalMerge(CellMerge.FIRST);
builder.write("VALUE 1");

builder.insertCell();
builder.getCellFormat().setHorisontalMerge(CellMerge.PREVIOUS);

builder.insertCell();
builder.getCellFormat().setHorisontalMerge(CellMerge.PREVIOUS);

builder.endRow();

// next row
builder.insertCell();
builder.write("ROW 2");

builder.insertCell();
builder.write("VLAUE 2_1");

builder.insertCell();
builder.write("VLAUE 2_2");

builder.insertCell();
builder.write("VLAUE 2_3");

builder.endRow();
builder.endTable()

但就像现实中一样..我要下一个 table:
- link to incorrect table view-

我的问题是为什么单元格 'VALUE 1' 没有涵盖 "ROW 2" 中的所有 "VALUE 2_*" 个单元格,为什么它只涵盖一个单元格 "VALUE 2_1"?
我怎样才能从我的例子中得出正确的 table?

首先,请升级到 latest version of Aspose.Words for Java 即 15.6.0。其次,我已将您的代码修复如下:

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

Table table = builder.startTable();

builder.insertCell();    
builder.write("ROW 1");

builder.insertCell();
builder.getCellFormat().setHorizontalMerge(CellMerge.FIRST);
builder.write("VALUE 1");

builder.insertCell();
builder.getCellFormat().setHorizontalMerge(CellMerge.PREVIOUS);

builder.insertCell();
builder.getCellFormat().setHorizontalMerge(CellMerge.PREVIOUS);

builder.endRow();

// next row
builder.insertCell();
builder.getCellFormat().setHorizontalMerge(CellMerge.NONE);
builder.write("ROW 2");

builder.insertCell();
builder.write("VLAUE 2_1");

builder.insertCell();
builder.write("VLAUE 2_2");

builder.insertCell();
builder.write("VLAUE 2_3");

builder.endRow();
builder.endTable();

doc.save(getMyDir() + "15.6.0.docx");

希望,这对您有所帮助。

我在 Aspose 工作,担任开发人员布道师。