python-docx
python-docx 是一个用于创建和修改 Microsoft Word (.docx) 文件的 Python 库。
安装
pip install python-docx
创建 Word 文档
from docx import Document
from docx.shared import Pt, RGBColor, Inches
# 创建文档
doc = Document()
# 添加标题
doc.add_heading('文档标题', level=0)
doc.add_heading('一级标题', level=1)
doc.add_heading('二级标题', level=2)
# 添加段落
paragraph = doc.add_paragraph('这是一个普通段落。')
# 添加带格式的段落
paragraph = doc.add_paragraph()
run = paragraph.add_run('这是粗体文本。')
run.bold = True
run = paragraph.add_run(' 这是斜体文本。')
run.italic = True
run = paragraph.add_run(' 这是下划线文本。')
run.underline = True
# 添加列表
doc.add_paragraph('无序列表项1', style='List Bullet')
doc.add_paragraph('无序列表项2', style='List Bullet')
doc.add_paragraph('有序列表项1', style='List Number')
doc.add_paragraph('有序列表项2', style='List Number')
# 保存文档
doc.save('example.docx')
print("文档已保存为 example.docx")
添加表格
from docx import Document
doc = Document()
# 添加表格
table = doc.add_table(rows=4, cols=3)
table.style = 'Table Grid'
# 设置表头
header_cells = table.rows[0].cells
header_cells[0].text = '姓名'
header_cells[1].text = '年龄'
header_cells[2].text = '城市'
# 填充数据
data = [
['张三', 25, '北京'],
['李四', 30, '上海'],
['王五', 28, '广州']
]
for i, row_data in enumerate(data):
row = table.rows[i + 1]
row.cells[0].text = row_data[0]
row.cells[1].text = str(row_data[1])
row.cells[2].text = row_data[2]
doc.save('table_example.docx')
添加图片
from docx import Document
from docx.shared import Inches
doc = Document()
# 添加段落
doc.add_paragraph('下面是一张图片:')
# 添加图片
doc.add_picture('image.png', width=Inches(4.0))
# 添加带标题的图片
doc.add_heading('图片标题', level=2)
doc.add_picture('image.png', width=Inches(3.0))
doc.add_paragraph('图片说明文字')
doc.save('image_example.docx')
设置页面格式
from docx import Document
from docx.shared import Pt, Inches
doc = Document()
# 设置页面边距
sections = doc.sections
for section in sections:
section.top_margin = Inches(1)
section.bottom_margin = Inches(1)
section.left_margin = Inches(1.25)
section.right_margin = Inches(1.25)
# 添加内容
doc.add_heading('页面格式示例', level=1)
doc.add_paragraph('这个文档有自定义的页面边距。')
doc.save('page_format.docx')
读取 Word 文档
from docx import Document
# 读取文档
doc = Document('example.docx')
# 读取所有段落
for para in doc.paragraphs:
print(para.text)
# 读取所有表格
for table in doc.tables:
for row in table.rows:
for cell in row.cells:
print(cell.text, end=' | ')
print()
# 读取文档信息
print(f"段落数: {len(doc.paragraphs)}")
print(f"表格数: {len(doc.tables)}")
修改现有文档
from docx import Document
# 打开现有文档
doc = Document('example.docx')
# 修改段落
for para in doc.paragraphs:
if '旧文本' in para.text:
para.text = para.text.replace('旧文本', '新文本')
# 修改表格
for table in doc.tables:
for row in table.rows:
for cell in row.cells:
if '旧值' in cell.text:
cell.text = cell.text.replace('旧值', '新值')
# 保存修改后的文档
doc.save('modified_example.docx')
💡 提示:python-docx 适合创建和修改简单的 Word 文档,对于复杂的格式需求可能需要使用其他工具。