如何用python读取excel生成word文档

如何用python读取excel生成word文档,第1张

word文件转html有两种格式可选wdFormatHTML、wdFormatFilteredHTML(对应数字8、10),区别是如果是wdFormatHTML格式的话

word文件里面的公式等ole对象将会存储成wmf格式,而选用wdFormatFilteredHTML的话公式将存储为gif格式,而且目测可以看出用wdFormatFilteredHTML生成的HTML明显比wdFormatHTML要干净许多。

编者的话(可以跳过):

    在政府单位实习了一段时间,发现有很多资料需要制作,而且繁琐重复,第一时间就想到了python,因为在办公自动化这方面我只知道python,本着能偷懒就偷懒的原则,通过查阅资料整出一个小脚本然后用tkinter的ui组件写了一个界面方便除我之外的人使用,此软件涉及内部文件就不发布了。截图如下:

需求如下:

    当你有一大堆的word文档,然后这些word文档都有其固定格式,也许是一个表格,也许就是只有文字的普通文档,这些固定模式的文档我称之为模板。如果有10份模板,这些模板的填写内容大致相同,比如说文件的编号,年份,一些公司名称等。然后基本上就是机械的找位子复制改改格式循环往复然后时间就过去了,做了一堆无意义的事情。

    所以核心功能:需要把自己想要填写的内容填写到模板的指定位置。

2、实现方式

21使用python-docx

    有兴趣的可以深入学习一下python-docx,这里仅仅是实现需求。python-docx只能处理docx所以doc需要转为docx具体方法可以自行百度。

    这个替换程序是可以替换word文档内表格和非表格的内容且不会修改原模板的任何格式,填写好上面所给函数的参数然后在ide里运行一下,前提是事先在文档中要填写的位置写好要替换的内容,也就是old_text,如下所示:

众所周知word/WPS中的邮件合并功能可以根据word模板从excel表格中读取数据,进而生成不同的文件,可以说邮件合并是效率神器

但是邮件合并也有其缺陷,那就是每次合并数据都需 *** 作插入合并域,如果经常需要根据数据生成固定模板word文件,那么就显得很麻烦

显然利用程序固定数据替换模式就极为方便,需要生成文件时可以一键 *** 作

工具:python解释器,xlrd包(Excel数据读取),docx-mailmerge包(邮件合并包)

程序有2种文件生成方式:每个生成的文件分别为单一文件,所有生成文件构成一个文件

docx-mailmerge仅支持docx格式文件

完成的word模板:

word模板制作步骤:

excel数据:

导入python模块:

word模板和excel数据文件路径参数:

分别生成至不同文件:

生成效果:

全部生成至同一文件:

生成效果:

生成到同一文件有个小问题,每页证明文件后都有一页空白页,不过问题不大,打印时选择奇数页打印即可。

看了一下应该是没有自动创建constants变量,constants是空的

先运行语句:

win32comclientgencacheEnsureDispatch('WordApplication')

应该就可以了

或者运行pythonwin菜单栏选择Tools——>Com MakePy Utility然后在d出的窗口中选择Microsoft Word xy Object Library 点击OK就可以了

或者直接运行client文件夹下的makepypy文件同样选择Microsoft Word 也可以

1、打开idle。点击file,然后点击new file 这是创建一个新的文件。新建

答:1、打开idle。点击file,然后点击new file这是创建一个新的文件。 新建一个文件之后,我们输入第一行代码,使用print函数,在屏幕上打印一句话,其中字符串要使用双引号,输入法要使用英文输入法,如果符号使用中文输入法输入,就会出现错误。p

2020-11-17 回答者: 环球青藤  1个回答

python sympy中生成的公式怎么粘到word里

答:右键选 show math as→mathML Code 全选复制,在word中右键以文本形式粘贴

2018-01-27 回答者: 夜歌在路上 2个回答

如何使用python提取并处理word文档中插入的mathtyp

答:我没做过,只能提供大概思路给你。这是mathtype的SDK:,里面关于API的描述: MathType API Documentation The MathType API allows you to call functions used by the MathType Commands For Word On Windows, this API is split between MathP

2017-10-03 回答者: 天天不看java 1个回答

如何用python写这个代码

问:使用两个参数定义一个名为dictionaryToListOfValues的函数。 此函数的第

答:使用Python自带的IDLE 在开始-->程序-->Python25(视你安装的版本而不同)中找到IDLE(Python GUI)。 点击后d出如下窗体: 1,在>>>提示符后输入代码,回车,就可以执行此代码。 IDLE支持语法高亮,支持自动缩进,支持方法提示,不过提示的很慢。

2019-10-17 回答者: 司马刀剑 2个回答 3

如何用python编写计算器

答:我想你的需求应该是一个图形界面的程序,而不是简单的在命令行上输入。 那么,要做的第一件事就是选择一个图形界面套件。可以使用原生的TK,也可以用跨平台性能很好的wxPython,或者是整体结构很像MFC的PyWin32。至于pyGTK,pyQT,都是可选的,但

2011-05-30 回答者: 碧蓝右耳 3个回答 6

用Python编写代码1×2×3+4×5×6+7×8×9+++···99×100×1

答:t=1 for i in range(1,102): t=i print(t)

2020-04-05 回答者: 知道网友 1个回答 2

python 如何识别docx中的公式

答:import fnmatch, os, sys, win32comclient readpath=r'D:\123' wordapp = win32comclientgencacheEnsureDispatch("WordApplication") try: for path, dirs, files in oswalk(readpath): for filename in files: if not fnmatchfnmatch(fi

2016-07-09 回答者: 知道网友 1个回答 2

如何用Python代码运行Word中的VBA

问:请问有什么好的办法用Python代码运行Word中的VBA吗, 具体需要import哪

答:安装pypiwin32 import win32comclient app= win32comclientDispatch("wordApplication") appWorkbooksOpen("宏代码所在文件路径") appApplicationRun("宏名称") appApplicationQuit()

2019-08-31 回答者: 娘化的新世界 1个回答

用Python写一个,两个数的加,减,乘,除的函数,

答:我课程中的部分代码(除没写): def f_add(a,b): return a+bdef f_mul(a,b): return abdef f_sub(a,b): return a-b def g1(f,a,b): return f(a,b)a,b,c,d = 1,2,3,4print g1(f_sub, g1(f_mul, g1(f_add,a,b), c), d), g1(f_mul, g1(f_add,a,b)

2017-11-21 回答者: 黑板客 1个回答 4

python编写2个函数代码,实现求最小公倍数和最大公

问:使用两个函数实现,最小公倍数和最大公约数

答:def gcd(a, b): # 求最大公约数 x = a % b while (x != 0): a, b = b, x x = a % b return bdef lcm(a,b): # 求最小公倍数 return ab//gcd(a,b) 程序缩进如图所示

参考一下这个:

>

以上就是关于如何用python读取excel生成word文档全部的内容,包括:如何用python读取excel生成word文档、python编写一个自动替换word文档文字程序、python第三方库实现word邮件合并功能等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10209405.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存