关于word的动态替换思路

1.用户有这么一个需求:

到月度、季度、年度总结的时候,领导下发一个工作总结模板,等所有下属单位填写完成后,系统会将所有的word文件汇总到一个word文件中。

2.他们现在的做法是:

领导用邮箱将word模板发给各个下属单位,各个下属单位填写好后,发回邮件到领导,由领导来进行汇总操作(就是将各个单位发回的word文件汇总到一个word中)。操作非常繁琐,因为当有多篇总结模板下发到下属单位的时候,领导会不定时的收到各个下属单位发回的wrod邮件,种类不同,还要进行筛选,将相同类型的总结放到一个word文件中。

3.我遇到的问题是:

由于模板是在变化的,所以使用java的poi技术来替换word里的文字的方法感觉是行不通的。因为每一份模板我都要写一次替换相应模板的程序。可能汇总后的内容是分行写在表格里,可能是普通文字。

4.我能想到的解决办法:

1.使用流转的方式让各个下属单位操作同一篇word,这样就无需我用程序来操作了,但是领导说这种同步进行的方法,没有异步的快(即:各个单位无需等待上一家单位是否写好总结然后再写)。

2.让领导定好几个模板,然后用java poi替换文字的方式。但是领导说希望能满足所有的模板。

3.使用在线编辑word的方式(就是网页上编辑office),但是我觉得会遇到一个致命的问题,即多人编辑同一篇word文件会使文件内容错乱。如果用锁文件的方式,那我感觉又回到了第一种流转的方式,就是各个下属单位不能异步执行。

4.还是接着3的方法进行在线编辑,但是领导要在下发的模板里预留出各个下属单位要填写内容的位置,这样就很大几率的避免了多人操作同一处的方式,但是又不知道市面上有没有能满足我这种想法的开源组件,或者收费的也行。

当然我希望在想法4里连让领导预留内容位置的操作也不需要他来操作。

求各位大大给个思路,小弟感激不敬。谢谢。

阅读 6.2k
3 个回答

首先抛开word这个梗,你的OA里让领导发word模板,然后通知下属单位(不必管word内容和板式,你只需要在领导上传后插入一条只读属性(例如 word信息摘要里的 类别)用于识别的这次的类型并记录到数据库,然后复制分发给所有下属单位)。
等下属单位提交word回复的时候,读取文档的类别属性,根据你当次写入的属性用jacob进行按类型的合并,最后汇总成一个当次文件,反馈发送给领导。

我觉得你可以先抛弃word,让大伙使用markdown或者富文本,在线编辑完就提交到服务器。

你不允许同时编辑就可以啦~ 万一真要同时编辑,自己开发类似文本对比,让最后提交的人自己编辑冲突。多人同时编辑,记得提醒用户“有人在编辑该文章”

我同意楼上的抛弃word,word本身就非常复杂,用自动化或者类似POI技术操作起来 也变得非常麻烦,但是领导估计不管这个。。
我觉得你想预留位置就为所有下属单位定义一个标志,一个标志对应文档中对应的部分,到时候选上正确的标志就是,比如单位名称,提交了之后保存道文档中相应的位置,就这个操作来说并不复杂,写入word文档的话相对来说比较简单的,表格的插入也很容易。
对于这种事情没什么简单的方法,当然可能有我不知道罢了。。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题