接到一个需求,大概描述是这样:有一些 word 文件模板,比如是个会议纪要模板,文件的格式是固定的,但每次开会的时间、地点和参会人员等不一样。用户在模板文件里需要替换的地方预先设置好占位符,类似${x}、${title},在系统上传文件模板。需要用到这些模板的时候,用户在前端选择模板文件,后端发送到前端,前端的插件识别模板,以预览的形式打开,有占位符的地方可以修改,其他部分不能修改。点击保存可以导出文件。
以前实习的时候看到过类似的,不过时间过去很久不记得了。。
1
InternetExplorer 2021-10-15 09:44:43 +08:00
让后端去替换 :doge:
|
2
lower 2021-10-15 09:52:36 +08:00
前端搞的话,好像只能用那种 IE 时代的 ActiveX 控件,调本地的 office 工具
|
3
1cming 2021-10-15 11:39:03 +08:00
正好之前做过类似的系统
前端 jquery+angular 主要解析转换逻辑在后端 大致流程如下: - 1.占位符约定,正则解析 占位符分两类: 一类是通用的比如 inuput 、checkbox ; 一类是业务需要关注的,用于单独解析,目的是给 input 赋予 name,表单提交到 server 时方便处理; - 2.模板文件 原始输入的模板文件类型为 doc/xls 类型; 通过 apose+jsoup 将模板转换成 html 文本; 编辑时 html 文本匹配正则替换成页面元素 比如$输入;转换成<input>; - 3.录入内容替换 提交 form 单独处理; 使用 apose+正则 replace 成<input value='录入内容'> - 4.html 转换成 word/pdf |
5
liuzh365 OP @1cming 第 2 点我不太清楚:是在后端转成 html 文本,然后将 html 文本传到前端吗?
|