請問如何填滿文件中空白部分

目前遇到一種情況,從資料庫取出之後,所產生的筆數只有兩筆,但是word檔下方的仍有些空白處,若想要填滿空白的地方,可以如何實現呢?填滿空白的地方.png (13.1 KB)

@lfengh,

请将以下资源压缩成ZIP格式并附上.zip文件用于测试:

  • 要填充空白的简化源 Word 文档
  • 您预期的 DOCX 文件显示了所需的输出。 您可以使用 MS Word 手动创建此输出文件。

一旦您准备好这些信息,我们将开始进一步调查您的特定场景,并为您提供代码以使用 Aspose.Words 实现相同的预期输出。

@ awais.hafeez
您好,我已將範本檔與預期想輸出的結果zip好上傳。填滿空白.7z (59.2 KB)

@lfengh,

您可以在以下代码上构建逻辑以获得所需的输出:

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