国产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/

相关推荐
asdzx6718 小时前
使用 Python 精准提取 Word 文档中的文本与表格
python·word
齐齐大魔王18 小时前
Word缩放打印功能
word
AI导出鸭PC端2 天前
智谱清言怎样生成word文档——AI导出鸭助您一键转文档
人工智能·ai·word·豆包·deepseek·ai导出鸭
小桥流水---人工智能2 天前
Word/WPS中英文连字符(断字)问题的三种解决方法
word·wps
likerhood3 天前
Word 两列文档中插入横跨两列的表格
word
、我是男生。3 天前
给word添加mathtype插件的一些关键步骤!
word
IPHWT 零软网络3 天前
信创场景下大容量语音网关的架构设计与实践——以 MX120G-A 为例
架构·信创·国产化·语音网关
草丛中的蝈蝈4 天前
word表格中当单元格内容过长时,分页后表格显示不连续。
word
ModelHub XC信创模盒4 天前
压力之下,重构赛道:从中美AI博弈到信创生态的深层跃迁
大数据·人工智能·重构·开源·信创·范式
dshudsnb4 天前
PDF转Word的3种方法(无乱码/批量/高精度教程)
pdf·word