求助一 Python demo,实现替代 word 文档中某些固定项

2018-05-06 21:10:04 +08:00
 liuxun349
我想通过 python 实现对固定模板文档简单的替换、然后生成新的文档。想求一份 demo,不知道有没有人有这闲工夫。。。。
4088 次点击
所在节点    Python
17 条回复
qwjhb
2018-05-06 21:39:48 +08:00
python 有个库的 现在模板里建好书签就行
lpd0155
2018-05-06 22:05:14 +08:00
Docxtpl 了解一下
lpd0155
2018-05-06 22:06:35 +08:00
Docx-mailmerge
也是可以的,比较适合你说的这个情景
ethanlu
2018-05-06 22:08:11 +08:00
我是用 excel+word 用 vba 做的
xiaoheijw
2018-05-07 09:28:59 +08:00
伸手党啊
holajamc
2018-05-07 10:21:43 +08:00
docxtpl 可以,但是如果你的数据足够大的话可能会随时 GG。
如果你试过的话应该知道 office 都是基于 xml 实现的,那么很简单了,用 docxtpl 的思想,用 jinja2 书写模板之后修改 document.xml 中的部分 xml 标签隔断,渲染模板最后再压缩回去~
liuxun349
2018-05-07 11:27:30 +08:00
@qwjhb 什么库,就是这个 docxtpl 吗?
liuxun349
2018-05-07 11:27:53 +08:00
@lpd0155 好的,感谢我去搜来学习一下
liuxun349
2018-05-07 11:29:08 +08:00
@ethanlu 好的,非常感谢。有没有现成的教程链接,实现方式不重要,我只是恰好电脑上装有 python。
liuxun349
2018-05-07 11:29:37 +08:00
@xiaoheijw 嘿嘿,对。因为时间紧迫,所以就伸手了
liuxun349
2018-05-07 11:30:02 +08:00
@holajamc 好的感谢,数据应该不算大。我去了解一下
jijiwaiwai
2018-05-07 13:39:05 +08:00
docx 就是一个 zip,python 解压之后只需要修改 xml 文件的内固定位置的内容就行,在打包就行了
qile1
2018-05-08 00:44:41 +08:00
@holajamc 能说的详细些不?没看懂,html 用 jinja2 替换弄过,world 的 doc 文档不是不太开源,怎么会和 xml 有关系
能说说具体实现方式不
holajamc
2018-05-08 08:51:12 +08:00
@qile1 你把 word 的 docx 解压会发现就是一个 zip 压缩包,其中最关键的部分是 word/document.xml 去更改里面的内容就可以啦~
qile1
2018-05-08 22:16:04 +08:00
@holajamc 那是不是我就可以用 docx 做模板了
xml 里面设置项目的替换,用 jinja2 替换,然后 zip 压缩改名为 docx 后缀,以前见有的把 html 格式作为模板,保存在数据库的是 xml 文件,估计和这个类似
holajamc
2018-05-09 09:09:54 +08:00
@qile1 是的呀,提供一个我目前用的正则处理 xml 标签隔断的代码~
https://github.com/JamCh01/simple_template/blob/master/simple_tamplate/tools.py#L39
LokiSharp
2018-05-09 09:32:51 +08:00
直接用 Word 的模板系统不就好了。。。。。。dotx 了解一下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/452607

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX