编者的话(可以跳过):
在政府单位实习了一段时间,发现有很多资料需要制作,而且繁琐重复,第一时间就想到了python,因为在办公自动化这方面我只知道python,本着能偷懒就偷懒的原则,通过查阅资料整出一个小脚本然后用tkinter的ui组件写了一个界面方便除我之外的人使用,此软件涉及内部文件就不发布了。截图如下:
需求如下:
当你有一大堆的word文档,然后这些word文档都有其固定格式,也许是一个表格,也许就是只有文字的普通文档,这些固定模式的文档我称之为模板。如果有10份模板,这些模板的填写内容大致相同,比如说文件的编号,年份,一些公司名称等。然后基本上就是机械的找位子复制改改格式循环往复然后时间就过去了,做了一堆无意义的事情。
所以核心功能:需要把自己想要填写的内容填写到模板的指定位置。
2、实现方式
2.1使用python-docx
有兴趣的可以深入学习一下python-docx,这里仅仅是实现需求。python-docx只能处理docx所以doc需要转为docx具体方法可以自行百度。
这个替换程序是可以替换word文档内表格和非表格的内容且不会修改原模板的任何格式,填写好上面所给函数的参数然后在ide里运行一下,前提是事先在文档中要填写的位置写好要替换的内容,也就是old_text,如下所示:
将时间转换为字符串可以使用strftime方法from datetime import datetimed = datetime(year=2015, month=6, day=18) #初始化datetime类的时间d.strftime('%Y-%m-%d') #转换成字符串strftime方法接收一个格式字符串,输出日期时间的字符串表示。常用的格式字符有:%H: 小时(24小时制,[0, 23])%m: 月份([01,12])%M: 分钟([00,59])%S: 秒(范围为[00,61],为什么不是[00, 59],参考python手册~_~)%W: 周在当年的周数(是当年的第几周),星期一作为周的第一天%Y: 4个数字表示的年份%d: 日在这个月中的天数(是这个月的第几天)不明白你的想法
是数字0x12变成'\x12'么?
如果是这样子的话:
dat = 0x12
ch = chr(dat) # ch = '\x12'
如果是数字0x12(18) 变成 ‘12’ ('18'):
dat = 0x12
s = '%d' % dat # s = '12'
s = '%x' % dat # s = '18'