国产linux系统(银河麒麟,统信uos)使用 PageOffice实现word 文档中的table插入新行并赋值

PageOffice 国产版 :支持信创系统,支持银河麒麟V10和统信UOS,支持X86(intel、兆芯、海光等)、ARM(飞腾、鲲鹏、麒麟等)、龙芯(Mips、LoogArch)芯片架构。

在项目的开发中会遇到这样的需求:要求在生成word文件的时候,需要给表格赋值,但是表格行数不固定,需要根据数据库中的数据记录实现数据填充。通过调用PageOffice动态添加行的功能,就可以实现此需求。

比如一个下图所示的Word表格文件:

使用本文"后端代码"对表格做数据填充后的效果如下图所示:

Word中的table是要借助数据区域(DataRegion)实现的,要求数据区域完整的包含了整个Table的内容,这样才可以通过数据区域控制和操作table。因此,要想使用table,则必须在word文件中插入书签。而table的插入,既可以在Word模版中书签处手动插入:工具栏"插入"→"表格",亦可以在程序中通过数据区域动态添加。

后端代码

复制代码
    PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);

    WordDocumentWriter doc = new WordDocumentWriter();
    //打开数据区域
    DataRegionWriter dataRegion = doc.openDataRegion("PO_regTable");
    //打开table,openTable(index)方法中的index代表Word文档中table位置的索引,从1开始
    TableWriter table = dataRegion.openTable(1);

    //给table中的单元格赋值, openCellRC(int,int)中的参数分别代表第几行、第几列,从1开始
    table.openCellRC(3, 1).setValue("A公司");
    table.openCellRC(3, 2).setValue("开发部");
    table.openCellRC(3, 3).setValue("李清");

    //插入一行,insertRowAfter方法中的参数代表在哪个单元格下面插入一个空行
    table.insertRowAfter(table.openCellRC(3, 3));

    table.openCellRC(4, 1).setValue("B公司");
    table.openCellRC(4, 2).setValue("销售部");
    table.openCellRC(4, 3).setValue("张三");

    poCtrl.setWriter(doc);

    //webOpen的第一个参数支持能够输出下载文件的Url相对地址或者文件在服务器上的磁盘路径两种方式
    poCtrl.webOpen("D:\\template1.docx", OpenModeType.docNormalEdit, "张三");

参考链接:https://pageoffice.cn/pages/9fa856/

相关推荐
热爱生活的五柒12 小时前
Zotero + Word 插件管理参考文献的引用
word·zotero·ieee
yivifu1 天前
使用VBA辅助编辑出具有完美导航功能的Word长文档
word·办公软件·vba
mudtools1 天前
.NET驾驭Word之力:数据驱动文档 - 邮件合并与自定义数据填充完全指南
c#·word·.net
玩泥巴的1 天前
.NET操作Word/WPS打造专业文档 - 页面设置与打印控制完全指南
word·二次开发·office·com互操作
mr_LuoWei20091 天前
用批处理文件实现Excel和word文件的重造
经验分享·word·excel
(❁´◡`❁)Jimmy(❁´◡`❁)2 天前
【Trie】 UVA1401 Remember the Word
算法·word·图论
acaad2 天前
采用libreoffice将word、excel等文件转换为pdf格式
pdf·word·libreoffice
热爱生活的五柒2 天前
插入mathtype/latex公式在word中行间距变高了
word
热爱生活的五柒2 天前
排版使用latex排版还是word排版更容易通过mdpi remote sensing的审稿?
word·latex
阿幸软件杂货间2 天前
使用Python一站式提取Word、Excel、PDF 和PPT文档内容v1.0
python·word·excel