目前遇到一種情況,從資料庫取出之後,所產生的筆數只有兩筆,但是word檔下方的仍有些空白處,若想要填滿空白的地方,可以如何實現呢?填滿空白的地方.png (13.1 KB)
请将以下资源压缩成ZIP格式并附上.zip文件用于测试:
- 要填充空白的简化源 Word 文档
- 您预期的 DOCX 文件显示了所需的输出。 您可以使用 MS Word 手动创建此输出文件。
一旦您准备好这些信息,我们将开始进一步调查您的特定场景,并为您提供代码以使用 Aspose.Words 实现相同的预期输出。
您可以在以下代码上构建逻辑以获得所需的输出:
private static DataTable getDataTable_Q417() {
DataTable Q417 = new DataTable("Q-4-17");
Q417.getColumns().add("Dates");
Q417.getColumns().add("Req");
Q417.getColumns().add("Batch");
Q417.getColumns().add("Quan");
Q417.getColumns().add("Remain");
Q417.getColumns().add("Rperson");
Q417.getColumns().add("Wperson");
Q417.getColumns().add("Remark");
DataRow dataRow;
for (int i = 0; i < 10; i++) {
dataRow = Q417.newRow();
dataRow.set(0, "value" + i);
dataRow.set(1, "value" + i);
dataRow.set(2, "value" + i);
dataRow.set(3, "value" + i);
dataRow.set(4, "value" + i);
dataRow.set(5, "value" + i);
dataRow.set(6, "value" + i);
dataRow.set(7, "value" + i);
Q417.getRows().add(dataRow);
}
return Q417;
}
Document doc = new Document("C:\\Temp\\235500\\docs\\template.docx");
doc.getMailMerge().execute(new String[]{"Name",}, new Object[]{"UserName"});
doc.getMailMerge().executeWithRegions(getDataTable_Q417());
doc.save("C:\\temp\\235500\\docs\\awjava-21.9.docx");
您还可以在末尾添加一个空行,然后多次克隆它:
Document doc = new Document("C:\\Temp\\235500\\docs\\Q-4-17.docx");
Table table = doc.getFirstSection().getBody().getTables().get(0);
Row cloneOfLastRow = (Row) table.getLastRow().deepClone(true);
for (Cell cell : cloneOfLastRow.getCells()) {
cell.removeAllChildren();
cell.ensureMinimum();
}
// lets add some empty rows
for (int i = 0; i < 23; i++)
table.getRows().add(cloneOfLastRow.deepClone(true));
doc.save("C:\\temp\\235500\\docs\\awjava-21.9.docx");