自动化处理Word文档
使用Python实现Word文档的自动化处理,包括批量生成Word文档、在Word文档中批量进行查找和替换、将Word文档批量转换成PDF等。
1. 批量生成Word文档
- 安装openpyxl模块
pip install openpyxl
- 安装python-docx模块
pip install python-docx
openpyxl模块可以读写扩展名为.xlsx/.xlsm/.xltx/.xltm的Excel文件。
python-docx模块可以读写扩展名为.docx的Word文档,但不能处理扩展名为.doc的Word文档。
import re
from docx.enum.table import WD_CELL_VERTICAL_ALIGNMENT, WD_TABLE_ALIGNMENT
from openpyxl import load_workbook
from docx import Document
def info_update(doc, old_info, new_info):
"""
文档内容替换
:param doc: Word模板文档
:param old_info: 源文本
:param new_info: 新文本
:return:
"""
# 遍历Word文档中的所有段落
for para in doc.paragraphs:
# 遍历每个段落中的run对象
for run in para.runs:
# 替换run对象的文本内容
# run.text = run.text.replace(r'《'+old_info+'》', new_info)
run.text = run.text.replace(old_info, new_info)
run.text = re.sub(r'[《》]', '', run.text)
# 遍历Word文档中的所有表格
for table in doc.tables:
# 遍历表格中的所有行
for row in table.rows:
# 遍历行中的所有单元格
for cell in row.cells:
# 替换单元格内容
cell.text = cell.text.replace('《' + old_info + '》', new_info)
# 设置表格中的内容居中显示
# 计算表格的rows和cols的长度
rows = len(table.rows)
cols = len(table.columns)
# 循环将每一行,每一列都设置为居中
for r in range(rows):
for c in range(cols):
table.cell(r, c).vertical_alignment = WD_CELL_VERTICAL_ALIGNMENT.CENTER # 垂直居中
table.cell(r, c).paragrap


2209

被折叠的 条评论
为什么被折叠?



