数据区域生成表格
# 数据区域生成表格
- 查看本示例演示效果(Windows版)
- 查看本示例演示效果(国产版)
- 本示例关键代码的编写位置,请参考“开始 - 快速上手”里您所使用的开发语言框架的最简集成代码
注意
本文中展示的代码均为关键代码,复制粘贴到您的项目中,按照实际的情况,例如文档路径,用户名等做适当修改即可使用。
在实际项目的开发中会遇到这样的需求:要求在生成word文件的时候,在文件的指定位置动态生成表格并填充。
public Table createTable(int numRows,
int numColumns,
WdAutoFitBehavior autoFitBehavior)
throws java.lang.Exception
参数:
numRows新表格的行数。numColumns新表格的列数。autoFitBehavior用于设置 Word 调整表格大小的“自动调整”规则。
数据区域生成表格通常有两种使用场景:
- 在word文档已有的指定的数据区域位置动态生成表格。
//在word中指定的"PO_table1"的数据区域内动态创建一个3行5列的表格
Table table1 = doc.openDataRegion("PO_table1").createTable(3, 5, WdAutoFitBehavior.wdAutoFitWindow);
//在word中指定的"PO_table1"的数据区域内动态创建一个3行5列的表格
PageOfficeNetCore.Word.WordTableWriter table1 =
doc.OpenDataRegion("PO_table1").CreateTable(3, 5, PageOfficeNetCore.Word.WdAutoFitBehavior.wdAutoFitWindow);
// Make sure to add code blocks to your code group
- 在 word 文档开始或者末尾处动态生成表格。这种场景就需要依赖 PageOffice 预留的两个特殊数据区域:[HOME]和[END]动态创建数据区域,然后根据新生成的数据区域动态生成表格。
//在word文档的末尾处动态创建一个3行5列的表格。具体代码步骤是先根据PageOffice预留[END]数据区域动态创建"PO_table1",然后在"PO_table1"处动态创建3行5列的表格。
Table table1 = doc.createDataRegion("PO_table1",DataRegionInsertType.After, "[END]").createTable(3, 5, WdAutoFitBehavior.wdAutoFitWindow);
//在word文档的末尾处动态创建一个3行5列的表格。具体代码步骤是先根据PageOffice预留[END]数据区域动态创建"PO_table1",然后在"PO_table1"处动态创建3行5列的表格。
PageOfficeNetCore.Word.WordTableWriter table1 =
doc.CreateDataRegion("PO_table1", PageOfficeNetCore.Word.DataRegionInsertType.After, "[END]").CreateTable(3, 5, PageOfficeNetCore.Word.WdAutoFitBehavior.wdAutoFitWindow);
// Make sure to add code blocks to your code group
# 后端代码
例如:在当前 word 文件的末尾处生成一个 3 行 5 列的表格并动态填充。
PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
WordDocumentWriter doc = new WordDocumentWriter();
DataRegion dr = doc.createDataRegion("PO_table1",DataRegionInsertType.After, "[END]");
Table table1 = dr.createTable(3, 5, WdAutoFitBehavior.wdAutoFitWindow);
for (int i = 1; i < 4; i++) {
table1.openCellRC(i, 1).setValue("AA" + String.valueOf(i));
table1.openCellRC(i, 2).setValue("BB" + String.valueOf(i));
table1.openCellRC(i, 3).setValue("CC" + String.valueOf(i));
table1.openCellRC(i, 4).setValue("DD" + String.valueOf(i));
table1.openCellRC(i, 5).setValue("EE" + String.valueOf(i));
}
poCtrl.setWriter(doc);
//打开Word文件
poCtrl.webOpen("D:\\template1.docx", OpenModeType.docNormalEdit, "张三");
PageOfficeNetCore.PageOfficeCtrl poCtrl = new PageOfficeNetCore.PageOfficeCtrl(Request);
PageOfficeNetCore.Word.WordDocumentWriter doc = new PageOfficeNetCore.Word.WordDocumentWriter();
PageOfficeNetCore.Word.DataRegionWriter dr = wordDoc.CreateDataRegion("PO_table1", PageOfficeNetCore.Word.DataRegionInsertType.After, "[END]");
PageOfficeNetCore.Word.WordTableWriter table1 = dr.CreateTable(3, 5, PageOfficeNetCore.Word.WdAutoFitBehavior.wdAutoFitWindow);
for (int i = 1; i < 4; i++)
{
table1.OpenCellRC(i, 1).Value = "AA" + i.ToString();
table1.OpenCellRC(i, 2).Value = "BB" + i.ToString();
table1.OpenCellRC(i, 3).Value = "CC" + i.ToString();
table1.OpenCellRC(i, 4).Value = "DD" + i.ToString();
table1.OpenCellRC(i, 5).Value = "DD" + i.ToString();
}
poCtrl.SetWriter(doc);
//打开Word文档
poCtrl.WebOpen("D:\\template1.docx", PageOfficeNetCore.OpenModeType.docNormalEdit, "tom");
// Make sure to add code blocks to your code group
# 前端代码
本示例无前端关键代码。
上次更新: 2025/07/21, 15:21:36