使用python-docx库可在word文档中插入图片和表格,1. 插入图片需调用document.add_picture()方法并指定文件路径及宽度(如inches或cm);2. 插入表格需调用document.add_table()方法设置行列数,并通过遍历行和单元格填充数据;同时可应用样式如table grid。该库支持基本样式设置,但对复杂布局和大型文档需注意性能与功能限制,建议结合模板使用以提升效率,最终生成结构清晰、格式规范的.docx文档。

Python操作Word文档,最常用的工具非
python-docx
.docx
要操作Word文档,首先得确保你安装了
python-docx
pip install python-docx
你看,这上手简直不要太简单。创建一个新的Word文档,然后往里加点内容,比如一个标题,再来几段正文,这都是基本操作。
立即学习“Python免费学习笔记(深入)”;
from docx import Document
from docx.shared import Inches
from docx.enum.text import WD_ALIGN_PARAGRAPH
# 创建一个新文档
document = Document()
# 添加一个标题
document.add_heading('Python自动化文档生成示例', level=1)
# 添加一个段落
p = document.add_paragraph('这是第一段正文。')
p.add_run(' 这句话是').bold = True
p.add_run('加粗的。')
p.add_run(' 这一句是').italic = True
p.add_run('斜体的。')
document.add_paragraph('这是第二段正文,我们可以在这里继续添加内容。')
# 添加一个三级标题
document.add_heading('更多内容展示', level=3)
# 添加一个列表
document.add_paragraph('项目列表:', style='List Bullet')
document.add_paragraph('第一项', style='List Bullet')
document.add_paragraph('第二项', style='List Bullet')
# 添加一个表格
table = document.add_table(rows=1, cols=3)
hdr_cells = table.rows[0].cells
hdr_cells[0].text = '标题1'
hdr_cells[1].text = '标题2'
hdr_cells[2].text = '标题3'
# 添加数据行
data = [
('数据A1', '数据A2', '数据A3'),
('数据B1', '数据B2', '数据B3')
]
for item in data:
row_cells = table.add_row().cells
row_cells[0].text = item[0]
row_cells[1].text = item[1]
row_cells[2].text = item[2]
# 添加图片(确保你的路径下有这张图片,或者换成一个实际存在的图片路径)
try:
document.add_picture('example.png', width=Inches(4))
document.add_paragraph('这是一张插入的图片。')
except FileNotFoundError:
document.add_paragraph('注意:图片文件 "example.png" 未找到,请确保路径正确或替换为实际图片。')
# 保存文档
document.save('我的自动化文档.docx')
print("文档 '我的自动化文档.docx' 已生成。")
# 当然,读取现有文档内容也行,虽然有时候结构复杂了点,但基本段落和表格内容还是能抓出来的。
# from docx import Document
# existing_doc = Document('我的自动化文档.docx')
# for para in existing_doc.paragraphs:
# print(para.text)
#
# for table in existing_doc.tables:
# for row in table.rows:
# for cell in row.cells:
# print(cell.text, end='\t')
# print()这俩功能,图片和表格,在自动化报告里简直是标配。
python-docx
插入图片,主要用到
document.add_picture()
Inches
Cm
from docx import Document
from docx.shared import Inches, Cm
document = Document()
document.add_heading('图片插入示例', level=2)
# 插入一张图片,并指定宽度为4英寸
# 假设当前目录下有一张名为 'my_image.jpg' 的图片
try:
document.add_picture('my_image.jpg', width=Inches(4))
document.add_paragraph('上面是一张宽度为4英寸的图片。')
except FileNotFoundError:
document.add_paragraph('图片文件 "my_image.jpg" 未找到,请自行准备或修改路径。')
# 插入一张图片,并指定宽度为10厘米
# try:
# document.add_picture('another_image.png', width=Cm(10))
# document.add_paragraph('上面是一张宽度为10厘米的图片。')
# except FileNotFoundError:
# document.add_paragraph('图片文件 "another_image.png" 未找到。')
document.save('带图片的文档.docx')
print("文档 '带图片的文档.docx' 已生成。")至于表格,
document.add_table()
table.rows
table.cells
table.add_row()
from docx import Document
document = Document()
document.add_heading('表格插入示例', level=2)
# 创建一个3行4列的表格
table = document.add_table(rows=3, cols=4)
table.style = 'Table Grid' # 应用一个内置表格样式,让表格有边框
# 填充表头
hdr_cells = table.rows[0].cells
hdr_cells[0].text = '姓名'
hdr_cells[1].text = '年龄'
hdr_cells[2].text = '城市'
hdr_cells[3].text = '职业'
# 填充数据行
data_rows = [
('张三', '30', '北京', '工程师'),
('李四', '25', '上海', '设计师')
]
for name, age, city, job in data_rows:
row_cells = table.add_row().cells
row_cells[0].text = name
row_cells[1].text = age
row_cells[2].text = city
row_cells[3].text = job
document.add_paragraph('上面是一个包含数据的表格。')
document.save('带表格的文档.docx')
print("文档 '带表格的文档.docx' 已生成。")文档嘛,除了内容还得有颜值。
python-docx
run
paragraph
run
bold
italic
underline
True
False
paragraph
alignment
WD_ALIGN_PARAGRAPH.LEFT
WD_ALIGN_PARAGRAPH.CENTER
WD_ALIGN_PARAGRAPH.RIGHT
WD_ALIGN_PARAGRAPH.JUSTIFY
python-docx
document.add_paragraph(text, style='Style Name')
document.add_heading(text, level=N)
from docx import Document
from docx.enum.text import WD_ALIGN_PARAGRAPH
document = Document()
document.add_heading('样式设置示例', level=2)
# 段落对齐
p_center = document.add_paragraph('这段文字居中对齐。')
p_center.alignment = WD_ALIGN_PARAGRAPH.CENTER
p_right = document.add_paragraph('这段文字右对齐。')
p_right.alignment = WD_ALIGN_PARAGRAPH.RIGHT
# 文字样式
p_style = document.add_paragraph('这是一段正文。')
run1 = p_style.add_run('这里是加粗文字。')
run1.bold = True
run2 = p_style.add_run(' 这里是斜体文字。')
run2.italic = True
run3 = p_style.add_run(' 这里是带下划线的文字。')
run3.underline = True
# 应用内置标题样式
document.add_heading('这是一个H1级别的标题', level=1)
document.add_heading('这是一个H2级别的标题', level=2)
# 应用列表样式
document.add_paragraph('项目一', style='List Bullet')
document.add_paragraph('项目二', style='List Number')
document.save('带样式的文档.docx')
print("文档 '带样式的文档.docx' 已生成。")说实话,
python-docx
python-docx
try-except
{{name}}[图片位置]
总的来说,
python-docx
以上就是Python怎样操作Word文档?python-docx库详解的详细内容,更多请关注php中文网其它相关文章!
python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号