Python-Docx,Word文档处理的利器!

文摘   2024-11-15 10:38   河南  

办公自动化少不了要处理Word文档,要是能用Python来批量处理Word文档,那工作效率就能提升好几倍。Python-docx这个库就是专门用来处理Word文档的神器,上手简单,功能强大。


安装特别简单,一行命令就搞定:


pip install python-docx

要是遇到网络问题装不上,换个国内镜像源试试:


pip install -i https://pypi.tuna.tsinghua.edu.cn/simple python-docx

from docx import Document

# 创建新文档

doc = Document()

doc.add_paragraph('你好,Python-docx!')

doc.save('hello.docx')

# 打开已有文档

existing_doc = Document('old.docx')

温馨提示:save方法要是给了一个已存在的文件名,会直接覆盖原文件,小心丢数据


段落是Word里最基本的元素,加个段落就跟我们平时按回车键一样:


para = doc.add_paragraph('我是一个段落')

para.add_run('加粗的文字').bold = True

para.add_run('斜体的文字').italic = True

# 设置段落对齐方式

from docx.enum.text import WD_ALIGN_PARAGRAPH

para.alignment = WD_ALIGN_PARAGRAPH.CENTER # 居中对齐

文字样式设置可以玩出花来,字体、颜色、大小都能改:


run = para.add_run('漂亮的文字')

run.font.name = '微软雅黑'

run.font.size = docx.shared.Pt(14)

run.font.color.rgb = docx.shared.RGB(255, 0, 0) # 红色文字

表格在文档里也是常见得很:


# 创建3行2列的表格

table = doc.add_table(rows=3, cols=2)

# 填充数据

cell = table.cell(0, 0)

cell.text = '单元格内容'

# 遍历填充

data = [['苹果', '5'], ['香蕉', '3'], ['橘子', '4']]

for row in range(3):

    for col in range(2):

        table.cell(row, col).text = data[row][col]

温馨提示:表格的行列数从0开始计数,和Python的列表索引一样


文档里插图片也不在话下:


doc.add_picture('image.jpg', width=docx.shared.Inches(5))

图片大小可以用英寸(Inches)或厘米(Cm)来指定,随你喜欢。要是不设置尺寸,就会用图片原始大小。


批量替换文本内容:


def replace_text(doc, old_text, new_text):

    for p in doc.paragraphs:

        if old_text in p.text:

            inline = p.runs

            for item in inline:

                if old_text in item.text:

                    item.text = item.text.replace(old_text, new_text)

doc = Document('template.docx')

replace_text(doc, '旧文本', '新文本')

doc.save('new.docx')

这招特别好用,比如做合同模板,把里面的甲方乙方名字批量替换。


Python-docx还能玩出很多花样,比如设置页眉页脚、制作目录、调整页面布局等。不过这些基本操作已经能应付80%的日常办公需求了。多写点代码多试试,慢慢就能上手了。


记住一点,Word文档处理没有想象的那么难,Python-docx帮我们搞定了复杂的底层操作,我们只要调用现成的方法就行。写代码时多查查文档,遇到不会的就查查例子,照葫芦画瓢就能整出不少实用的小工具。

财经时间眼
每天更新好看的视频
 最新文章