0

嗨,我有一个场景,我有位置列表。在我的文档中,我有合并字段 location_num。我想动态打印我的文档中的所有 location_num 值。

4

2 回答 2

0

请在下面找到Aspose.Words for Java代码以实现相同的目的:

import com.aspose.words.*;
import com.aspose.words.net.System.Data.DataColumn;
import com.aspose.words.net.System.Data.DataRow;
import com.aspose.words.net.System.Data.DataTable;

public class Program {

    public static void main(String[] args) throws Exception {

        License lic = new License();
        lic.setLicense("D:\\temp\\Aspose.total.java.lic");

        Document doc = new Document("D:\\temp\\input.docx");
        doc.getMailMerge().execute(GetDataTable());
        doc.save("D:\\temp\\16.10.0.docx");
    }

    private static DataTable GetDataTable()
    {
        DataTable dataTable = new DataTable("table");
        dataTable.getColumns().add("location_num");

        DataRow dataRow;
        for (int i = 0; i < 5; i++)
        {
            dataRow = dataTable.newRow();
            dataRow.set(0, "location value " + i);
            dataTable.getRows().add(dataRow);
        }

        return dataTable;
    }
}

希望这可以帮助。我与 Aspose 一起担任开发人员宣传员。

于 2016-10-17T04:07:54.230 回答
0

您可以使用Aspose.Words来满足此要求。

请参考 Aspose.Words 文档的以下部分: 如何执行邮件合并

这是示例代码:

Document doc = new Document(filePath);
doc.MailMerge.Execute(GetDataTable());
doc.Save(MyDir + @"16.10.0.docx");

以及 GetDataTable 方法的定义

private static DataTable GetDataTable()
{
    DataTable dataTable = new DataTable("table");

    dataTable.Columns.Add(new DataColumn("location_num"));

    DataRow dataRow;
    for (int i = 0; i < 5; i++)
    {
        dataRow = dataTable.NewRow();
        dataRow[0] = "location value " + i;
        dataTable.Rows.Add(dataRow);
    }

    return dataTable;
}

希望这可以帮助。我与 Aspose 一起担任开发人员宣传员。

于 2016-10-13T12:09:41.000 回答