国产linux系统(银河麒麟,统信uos)使用 PageOffice 国产版实现Word多文件合并

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

本示例关键代码的编写位置
Vue+Springboot

注意
本文中展示的代码均为关键代码,复制粘贴到您的项目中,按照实际的情况,例如文档路径,用户名等做适当修改即可使用。

不管是将多个Word文件插入到Word模板指定位置,生成一个合并文档,还是将多个Word文档插入到一个空白的Word文件中,首尾连接成一篇文档,都需要用到PageOffice提供的数据区域插入Word文档功能。

在实际项目开发中,以下场景可能会用到Word多文件合并功能:

  • 起草合同 比如在一个Web项目的起草合同页面,可以选择合同模板,并填写此模板所需要的合同名称、甲乙双方单位名称、合同金额等合同相关信息,还可以选择A、B、C、D等合同条款项,每个合同条款中的内容都是保存在一个单独Word文件中。用户起草合同时,选择了合同模板,输入了合同的各项信息,并勾选了A、C两个条款项,实现自动生成合同的功能:把用户填写的合同信息动态插入到合同模板,并把A、C两个条款项的Word文件分别插入到合同模板的对应位置。
  • 生成可行性报告 比如公司准备研发某个产品,公司各个部门都需要准备自己的参考意见,市场部需要提供市场分析报告,研发部需要提供技术分析报告等,每个部门都编写了各自的调查分析报告Word文件,最后生成给领导查看的可行性报告文件时,就需要把各部门的报告分别插入到可行性报告中对应的章节里,合并成一篇Word文件。
  • 标书制作 比如在标书的制作过程中,可能单独有几个word文件,如标书主体文件、技术方案、成本估算等等,然后分别由不同人负责的,各自编辑,最后插入各项子文件到标书主体文件,合并成一个最终的标书文档。
  • 试卷生成 比如老师要编写一个试卷,试题库把每道试题都单独保存在一份Word文件中,并对应一条数据库记录,老师可以在网页上勾选题库中的试题,最后确认生成试卷时,把每道试题的Word文件都合并到同一个试卷的Word文档中。

本文就以“OA项目立项可行性分析报告”为例,说明一下PageOffice是如何使用Word合并功能实现生成可行性报告的。比如某员工编辑了可行性报告的主体文件,如下图所示。为了让功能描述更简单明了,文件中只使用了两个数据区域PO_Budget(项目预算分析)和PO_Design(项目架构设计)。

image

比如开发部编辑的项目架构设计报告文档内容如下图所示:
image

财务部门负责制定的财务预算报告内容如下图格所示:
image

调用PageOffice的Word合并功能,把开发部编辑的项目架构设计文档插入到报告主体文件的数据区域PO_Design中,把财务部门负责制定的财务预算文档插入到数据区域PO_Budget中,生成的最终可行性报告如下图所示:
image

后端代码

调用PageOffice在线打开报告主体文件,比如:D:\BaoGao.docx,并动态插入项目架构设计文档(Design.docx)和财务预算文档(Budget.docx)到对应的数据区域中:

 PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);

 WordDocument worddoc = new WordDocument();
 //“[word][/word]”标签的参数地址可以是“磁盘路径”,也可以是“文档url下载地址(不支持跨域)”
 worddoc.openDataRegion("PO_Design").setValue("[word]D:\\Design.docx[/word]");
 worddoc.openDataRegion("PO_Budget").setValue("[word]D:\\Budget.docx[/word]");

 poCtrl.setWriter(worddoc);//必须
 poCtrl.WebOpen("D:\\BaoGao.docx", OpenModeType.docNormalEdit, "张三");

参考链接:Word多文件合并

posted on 2024-07-26 11:16  qianxi  阅读(4)  评论(0编辑  收藏  举报