- 查看本示例演示效果
- 本示例关键代码的编写位置,请参考“开始 - 快速上手”里您所使用的开发语言框架的最简集成代码
在实际项目涉及到Word文档的开发中,常常会遇到希望自动填充各项数据到Word表格中,动态生成Word文档的需求。比如有一个人员信息表,数据库表已经保存了人员的资料信息,设计好一个人员信息表模板docx,需要要把这些人员信息动态填充到word 表格中。
Word中的table是要借助数据区域(DataRegion)实现的,要求数据区域完整的包含了整个Table的内容,这样才可以通过数据区域控制和操作table。因此,要想使用table,则必须在word文件中插入书签。而table的插入,既可以在Word模版中书签处手动插入:工具栏“插入”→“表格”,亦可以在程序中通过数据区域动态添加。
注意
注:插入书签的时候一定要先选中整个table,然后再点击插入书签按钮进行插入。
后端代码:
java
PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
WordDocumentWriter doc = new WordDocumentWriter();
DataRegionWriter dataRegion = doc.openDataRegion("PO_regTable");
TableWriter table = dataRegion.openTable(1); //index代表当前书签中table位置的索引,从1开始
table.openCellRC(3, 1).setValue("A公司");//openCellRC(行, 列),索引从1开始
table.openCellRC(3, 2).setValue("开发部");
table.openCellRC(3, 3).setValue("李清");
table.openCellRC(4, 1).setValue("B公司");
table.openCellRC(4, 2).setValue("销售部");
table.openCellRC(4, 3).setValue("张三丰");
poCtrl.setWriter(doc);
poCtrl.webOpen("doc/test.doc", OpenModeType.docNormalEdit, "张三");
.NetCore
PageOfficeNetCore.PageOfficeCtrl POCtrl = new PageOfficeNetCore.PageOfficeCtrl(Request);
PageOfficeNetCore.Word.WordDocumentWriter doc = new PageOfficeNetCore.Word.WordDocumentWriter();
PageOfficeNetCore.Word.DataRegionWriter dataRegion = doc.OpenDataRegion("PO_regTable");
//打开table,OpenTable(index)方法中的index代表Word文档中table位置的索引,从1开始
PageOfficeNetCore.Word.WordTableWriter table = dataRegion.OpenTable(1);
//给table中的单元格赋值, OpenCellRC(行, 列)
table.OpenCellRC(3, 1).Value = "A公司";
table.OpenCellRC(3, 2).Value = "开发部";
table.OpenCellRC(3, 3).Value = "李清";
table.OpenCellRC(4, 1).Value = "B公司";
table.OpenCellRC(4, 2).Value = "销售部";
table.OpenCellRC(4, 3).Value = "张三";
POCtrl.SetWriter(doc);
POCtrl.WebOpen("doc/test.doc", PageOfficeNetCore.OpenModeType.docNormalEdit, "tom");
效果: