Python 自动化修改word的案例

前言

利用Python docx模块,可以很方便地打开和修改Word 2007及以后的文档。本文简单地介绍了如何使用python修改word文档中的内容。

例子与代码

word文档的内容是一封表扬信,内容见下图:

表扬信.png

现在需要通过python对,”表扬信.docx”文档进行修改,需要修改的地方已在图中标记出。

1、第一个箭头处,首行缩进2字符

2、第二个箭头处,对段落进行左缩进2字符,并添加“向小z同学学习!”

3、第三个和第四个箭头处,进行右对齐,并右缩进2cm

4、赵东来,修改为小z

5、陆亦可,修改为大Z

6、她,修改为他

7、狗粮,修改为猫粮

代码如下:

from docx import Document
from docx.shared import Cm
from docx.enum.text import WD_ALIGN_PARAGRAPH
import re
document=Document(r"g:\CS\Python Scripts\表扬信.docx")
# 首先对段落格式进行修改,docx默认标题也属于段落,因此“表扬信”是第一段
paragraphs=document.paragraphs
paragraphs[2].paragraph_format.first_line_indent=Cm(0.74)
paragraphs[3].paragraph_format.left_indent=Cm(0.74)
paragraphs[4].paragraph_format.alignment=WD_ALIGN_PARAGRAPH.RIGHT
paragraphs[4].paragraph_format.right_indent=Cm(2)
paragraphs[5].paragraph_format.alignment=WD_ALIGN_PARAGRAPH.RIGHT
paragraphs[5].paragraph_format.right_indent=Cm(2)
# 对文本进行修改
# 修改第二段
paragraphs[1].text="小Z同学:"
# 将第三段陆亦可替换为大Z,她替换为他。通过python的正则表达式,可以很简单地实现文本的替换和查找。
text=re.sub('陆亦可','大Z',paragraphs[2].text)
text=re.sub('她','他',text)
paragraphs[2].text=text
# 在第四段后面加上
paragraphs[3].add_run("向小z同学学习!")
# 修改表格里面的内容
tables=document.tables
tables[0].cell(1,0).text="猫粮"
tables[0].cell(2,0).text="猫粮"
tables[0].cell(3,0).text="猫粮"
# 插入一张图片,图片宽度设置为11.8cm
document.add_picture('fun.jpg', width=Cm(11.8))
document.save()

运行代码,结果见下图:

修改后.png

本文对word文档中的内容主要在如下几方面进行了修改:

段落文字的替换和添加

段落排列的对齐和缩进

表格文字的修改

在文档中插入图片

docx模块功能强大,还支持对word文档,字体、颜色、样式、章节、分页符、制表位等的修改。通过python批量化操作word文档,可以有效地节省时间,告别繁琐重复的工作。

结论

通过对word文档段落、表格和图片的操作,结合python的正则表达式,目前,可以想到的能实现的功能如下:

1、批量制作word名片、信件、通知等(功能与word邮件合并功能类似)

2、对多个文档的内容进行一键提取和替换

3、通过docx模块,python将Excel、邮件、网页、matplotlib、支持python接口的软件等资源整合在一起,提取相关信息,自动生成word报告

4、在女朋友面前装逼

后续有时间,将对docx模块中的paragraph(段落)、table(表格)等对象进行详细的介绍。

补充:Python修改Word文档内容和插入图片

代码如下

#!/usr/bin/python
# coding:utf-8
import docx
def main():
  filepath = 'test.docx'
  filepath1 = 'wtest.docx'
  newdocx = docx.Document(filepath)
  table = newdocx.tables
  for oTable in table:
    rows_num = len(oTable.rows)
    columns_num = len(oTable.columns)
    cell = oTable.cell(3, 0)
    # cell.add_paragraph("a")
    cell.text = ""
    cell.paragraphs[-1].runs[0].add_picture('t1.jpg')
    print(rows_num)
    print(columns_num)
    newdocx.save(filepath1)
if __name__ == '__main__':
  main()

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • 基于python实现自动化办公学习笔记(CSV、word、Excel、PPT)

    1.CSV (1)写csv文件 import csv def writecsv(path,data): with open(path, "w") as f: writer = csv.writer(f) for rowData in data: print("rowData=", rowData) writer.writerow(rowData) path = r"E:\\Python\\py17\\automatictext\\000001.csv&qu

  • python处理自动化任务之同时批量修改word里面的内容的方法

    #同时修改好几个word文档,转换特定的内容 import re import docx doc1=docx.Document('example.docx') spam=['后勤','技术','行政'] for j in spam: doc2=docx.Document() for i in range(0,len(doc1.paragraphs)): c=re.sub('销售',j,doc1.paragraphs[i].text)#第一个参数表示匹配的项,第二个参数表示要替换成的内容,第三个参

  • Python word文本自动化操作实现方法解析

    之前介绍了一个Python包 openpyxl ,用于处理 Excel :而对于 Word 文本时同样也有对应的 Python库 Python-docx,在日常办公中,如果需要处理多个 word 文本,且操作步骤都是重复单调的,我想这个库就可以帮到你 在了解 Python-docx 常用函数之前,需要知道 在 Python-docx 各命令所对应 word 各部件,下图所示, Document 指的是 word 文档: paragraph 对应段落: run 对应 一句话中的各个字段,样式调整时

  • Python 自动化修改word的案例

    前言 利用Python docx模块,可以很方便地打开和修改Word 2007及以后的文档.本文简单地介绍了如何使用python修改word文档中的内容. 例子与代码 word文档的内容是一封表扬信,内容见下图: 表扬信.png 现在需要通过python对,"表扬信.docx"文档进行修改,需要修改的地方已在图中标记出. 1.第一个箭头处,首行缩进2字符 2.第二个箭头处,对段落进行左缩进2字符,并添加"向小z同学学习!" 3.第三个和第四个箭头处,进行右对齐,并右

  • Python自动化办公之群发邮件案例详解

    目录 背景 实现过程 总结 背景 想象一下,现在你有一份Word邀请函模板,然后你有一份客户列表,上面有客户的姓名.联系方式.邮箱等基本信息,然后你的老板现在需要替换邀请函模板中的姓名,然后将Word邀请函模板生成Pdf格式,之后编辑统一的邀请话术(邮件正文),再依次发送邀请函附件到客户邮箱,你会怎么做? 正常情况下,我们肯定是复制粘贴Excel表格中的客户姓名,之后挨个Word文档进行替换,之后将Word转Pdf格式,然后复制Excel表格中的邮箱进行发送编辑好的邮件正常,之后附上邀请函附件,

  • 利用python批量修改word文件名的方法示例

    前言 最近不小心把硬盘给格式化了,由于当时的文件没有备份,所以一下所有的文件都没有了,于是只能采取补救措施,用文件恢复软件恢复了一部分的数据出来,但是恢复完毕的文件的文件名全丢了,所有的文件只有代号,如下面的图: 几万个文件这要是手动的改得要改到明年.所以便动手写了一个python的脚本程序来代替这种繁杂的操作. 实现分析 想让程序来理解我的word文档里到底是什么内容是不可能的了,但是好在我的word文档内容都有标题,大部分的标题正好就是这个文档的文件名,于是我便打算把文档的标题当作文件名,而

  • 使用Python docx修改word关键词颜色的操作

    需求: 在刷word题库的时候,答案就在题目下方,干扰复习效果,将答案字体变成白色,查看答案的时候只需要将答案背景刷黑 转换需求: 在word中找到关键字"答案"将其后面的信息改变颜色为白色 由于第一次使用 import docx,最初想按照如上思想实现比较麻烦,后整理思路,将题库保存为txt,逐条读取转存入word,利用分割函数对关键字进行分割,关键字后面的信息即为答案改变颜色,效果和需求一致,只是新建了文件 实现代码: import os import re import docx

  • Python自动化办公实战案例详解(Word、Excel、Pdf、Email邮件)

    目录 背景 实现过程 1)替换Word模板生成对应邀请函 2)将Word邀请函转化为Pdf格式 4)自动发送邮件 5)完整代码 总结 背景 想象一下,现在你有一份Word邀请函模板,然后你有一份客户列表,上面有客户的姓名.联系方式.邮箱等基本信息,然后你的老板现在需要替换邀请函模板中的姓名,然后将Word邀请函模板生成Pdf格式,之后编辑统一的邀请话术(邮件正文),再依次发送邀请函附件到客户邮箱,你会怎么做? 正常情况下,我们肯定是复制粘贴Excel表格中的客户姓名,之后挨个Word文档进行替换

  • Python快速优雅的批量修改Word文档样式

    需求描述 手上现有若干份财务分析报告的Word文档,如下: 每一份Word文档中的内容如下: 为了方便后续审阅,需要将所有文档中所有含有资金的语句标红加粗,如图所示 步骤分析和前置知识 为了解决这个需求简单复习一下相关知识.Word文档一般而言由文档(document) - 段落(paragraph) - 文字块(run) 三级结构组成: 从需求反馈中可以看出,本质上我们需要做的就是对所有含有资金的文字块Run进行样式调整 因此,本需求的逻辑如下: 1.创建一个空文件夹(用于存放修改后的财务报告

  • Python实现自动化处理Word文档的方法详解

    目录 1. 批量生成Word文档 2. 将Word文档批量转换成PDF 3. 在Word文档中批量标记关键词 4. 在Word文档中批量替换关键词 使用Python实现Word文档的自动化处理,包括批量生成Word文档.在Word文档中批量进行查找和替换.将Word文档批量转换成PDF等. 1. 批量生成Word文档 安装openpyxl模块 pip install openpyxl 安装python-docx模块 pip install python-docx openpyxl模块可以读写扩展

  • Python实现修改文件内容的方法分析

    本文实例讲述了Python实现修改文件内容的方法.分享给大家供大家参考,具体如下: 1 替换文件中的一行 1.1 修改原文件 ① 要把文件中的一行Server=192.168.22.22中的IP地址替换掉,因此把整行替换. data = '' with open('zhai.conf', 'r+') as f: for line in f.readlines(): if(line.find('Server') == 0): line = 'Server=%s' % ('192.168.1.1',

  • Python自动化之批量生成含指定数据的word文档

    目录 一.需求说明 二.开始动手动脑 三.总结 一.需求说明 在平时工作当中,经常需要处理文件,特别是Word,处理Word时会遇一类比较常见的场景:文档中大部分文字固定不变,小部分内容需要修改. 这时我们会机械的重复打开.修改.保存文档等一系列操作,内容少还可勉强接受,内容一旦多了,心里难免会心浮气躁. 今天我要给大家介绍一个秘密武器-docxtpl开发包,有了这个只需写一份模板,其他的都交给电脑自己进行. 首先需要你的电脑安装好了Python环境,并且安装好了Python开发工具. 如果你还

  • Python自动化办公之Word文件内容的读取

    目录 前言 利用 python 批量读取文件 word利器之python-docx python-docx 安装 python-docx 之 Document python-docx 之段落内容读取 python-docx 之表格内容读取 前言 前面几个章节我们学习了对于普通文件的操作,比如说文件的创建.复制粘贴.裁剪粘贴.文件名的重命名.删除等等.另外还学习了一些基本练习,如何查找文件.如何按照内容查找文件等等. 在本章节及后续,将开始学习一些特殊文件的自动化相关操作.如 word.excel

随机推荐