共计 2212 个字符,预计需要花费 6 分钟才能阅读完成。
时隔良久,这不小 Mi 的 python 办公系列又更新啦!这次咱们学习如何用 python 解决 word 文件!
- 装置库
说实话,库的装置其实相比 excel 来说真的就再简略不过啦,这次小 Mi 全程就只更新装置了一个库,代码如下:
pip install python-docx
欧凯,那么这部分就曾经实现啦!(是不是超简略)
- 简略炫技
这个时候小 Mi 很执拗,并不想走寻常路,只想用 python 编写一个 word 文件怎么办!小 Mi 通知你,仍旧很简略!
代码参考如下:
from docx import Document # 导入相干库
from docx.shared import Inches,Cm,Pt
from docx.document import Document as Doc
document = Document() # type: Doc
增加大题目(下面一行的正文也十分重要,否则无奈取得提醒)
document.add_heading(‘ 快来 MindSpore 昇思论坛~’, 0)
增加段落
p = document.add_paragraph(‘MindSpore 是由华为于 2019 年 8 月推出的新一代全场景 AI 计算框架, 它 ’)
run = p.add_run(‘ 开发敌对、运行高效、部署灵便!’)
run.bold = True # 对 run 函数的内容进行加粗
run.font.size = Pt(26) # 设置字体的大小
增加图片
document.add_picture(‘banner.png’, width=Cm(10.4))
增加分页符
document.add_page_break()
保存文档
运行成果:
3. 高级炫技
太简略了!真的是没有任何难度,所以这不小 Mi 须要给大家表演一个魔术!
假如场景:
咱们常常是不是须要解决很多文件,这些文件是不是都很相似,那么是不是能够设计一个模板进去,在须要大量编写这些 word 文件的时候,几行代码轻松搞定!比方公司入职人员的信息统计。
首先设定一个简略的 word 模板:
而后十分傲慢地附上代码:
from docx import Document
from docx.document import Document as Doc
contracts = [
{
'company': 'A',
'number': '000451',
'start': '2020.1.6',
},
{
'company': 'B',
'number': '000452',
'start': '2021.6.4',
},
{
'company': 'C',
'number': '000453',
'start': '2021.10.9',
},
]
for emp_dict in contracts:
doc = Document('信息统计.docx') # type: Doc
for p in doc.paragraphs:
if '{' not in p.text:
continue
for run in p.runs:
if '{' not in run.text:
continue
# 将占位符换成理论内容
start, end = run.text.find('{'), run.text.find('}')
key, place_holder = run.text[start + 1:end], run.text[start:end + 1]
run.text = run.text.replace(place_holder, emp_dict[key])
doc.save(f'{emp_dict["company"]}信息统计.docx')
那么运行之后便能够见证奇观啦!
文件夹中多出了三个员工信息的 word 文件,真的是快捷而又高级!
4 附赠技能
当然啦,小 Mi 的 word 都只是简略的内容而已,大家能够在这个根底上一直地晋升!
比方如何增加各种题目:
Doc = Document()
Doc.add_heading(“ 这是一级题目 ”,level=1)
Doc.add_heading(“ 这是二级题目 ”,level=2)
Doc.add_heading(“ 这是三级题目 ”,level=3)
Doc.add_heading(“ 这是四级题目 ”,level=4)
Doc.save(“ 题目.docx”)
比方字体设置:
英文字体
run = doc1.add_paragraph(‘ 设置英文字体:’).add_run(‘This Font is Times New Roman ‘)
run.font.name = ‘Times New Roman’
中文字体
run = doc1.add_paragraph(‘ 设置中文字体:’).add_run(‘ 字体为黑体 ’)
run.font.name=’ 黑体 ’
r = run._element
r.rPr.rFonts.set(qn(‘w:eastAsia’), ‘ 黑体 ’)
设置字体色彩
run = doc1.add_paragraph(‘ 这段为红色:’).add_run(‘ 这里为红色 ’)
run.font.color.rgb = RGBColor(0xFF, 0x00, 0x00)
好啦,明天的炫技到底完结,这个系列下期给大家推出 PDF 相干内容!
不过须要揭示大家的是,代码外面有陷阱哦,第一个找进去的兄弟姐们间接送上咱们的纪念品!另外其余复现的盆友们留言抽 20-30 送!!!(留言模式“复现截图 + 邮箱 + 华为云 ID”),加入的人越多咱们抽奖的人数就越多哦,dddd(懂得都懂!)
截止日期:2021.11.28
更多全面用法能够参考:https://docxtpl.readthedocs.i…