请您耐心阅读以下的教程,此教程分为以下几个部分:
- 介绍Python生成word文档的工具库
- 安装工具库
- 创建word文档
- 添加文本与表格
- 添加图片与图表
- 示例说明
- 总结
1. 介绍Python生成word文档的工具库
目前Python生态圈里提供了多种文档生成的工具库,常用的有:python-docx
,python-docx-template
和docxtpl
。这里我们选用python-docx
,这个库用于创建和修改Microsoft Word文件(.docx
文件)。
2. 安装工具库
在安装之前,确保你已经安装了Python,并且可以使用pip。使用以下命令来安装python-docx
:
pip install python-docx
3. 创建word文档
要创建一个Word文档,首先需要导入python-docx
库和创建一个Document对象。创建Document对象之后,就可以像操作Word文档一样添加段落、表格、图像等信息。下面是示例代码:
from docx import Document
document = Document()
第一行导入python-docx
库,第二行创建一个名为document
的Document对象。现在,我们已经可以像正常的Word文档一样添加内容了。
4. 添加文本与表格
编写一个Python脚本来创建并添加内容到word文档,如下:
from docx import Document
document = Document()
# 添加普通文本
document.add_heading('使用Python自动生成Word文档', level=0)
document.add_paragraph('本文档演示如何使用Python自动生成Word文档')
# 添加表格
table = document.add_table(rows=4, cols=3)
row0 = table.rows[0].cells
row0[0].text = '姓名'
row0[1].text = '年龄'
row0[2].text = '性别'
rows = [
['小明', '18', '男'],
['张三', '20', '男'],
['李四', '22', '女'],
['王五', '24', '女']
]
for row in rows:
cells = table.add_row().cells
cells[0].text = row[0]
cells[1].text = row[1]
cells[2].text = row[2]
document.save('document.docx')
代码中使用document.add_heading
和document.add_paragraph
添加了普通文本,使用document.add_table
也添加了一个表格。最后使用document.save
保存到指定文件路径。
5. 添加图片与图表
python-docx
提供了添加图片和应用内置图表的功能。如下面的代码示例:
from docx import Document
from docx.shared import Inches
document = Document()
# 添加普通文本
document.add_heading('这是一个自然风光的美图', level=0)
document.add_paragraph('这张图片是Python自动生成的美图')
# 添加图片
document.add_picture('image.jpg', width=Inches(3.0))
# 添加内置图表
chart_data = [
('图表1', ((1, 2), (2, 3), (3, 4))),
('图表2', ((3, 2), (4, 3), (5, 4))),
]
from docx.chart import (
ChartPart, ChartData, XyChart, BarChart, LineChart, AreaChart
)
from docx.enum.chart import (
XL_CHART_TYPE, XL_TICK_MARK, XL_LEGEND_POSITION
)
chart_part = document.add_chart(XyChart, chart_data)
chart_part.chart.x_axis.tick_mark = XL_TICK_MARK.OUTSIDE
chart_part.chart.y_axis.tick_mark = XL_TICK_MARK.OUTSIDE
legend = chart_part.chart.legend
legend.position = XL_LEGEND_POSITION.BOTTOM
document.save('document.docx')
代码在document.add_picture
中使用了image.jpg
文件路径作为参数,并设置图片宽度为Inches(3.0)
。在document.add_chart
函数中添加了图表数据和设置样式的代码。运行代码,将生成document.docx文件,并在文件中添加所需要的图片和图表。
6. 示例说明
在下面的代码作为示例的基础上,我们可以进一步的制作自己的word文档。如下:
from docx import Document
from docx.shared import Inches
document = Document()
# 添加文本
document.add_heading('这是一个Python生成Word文档的例子', level=0)
document.add_paragraph('这是一段普通文本。')
document.add_paragraph('你可以选择添加有序列表和无序列表,如下所示:')
document.add_paragraph(
'首先,我们将创建一个有序列表:', style='List Number'
)
document.add_paragraph('第一项', style='List Number')
document.add_paragraph('第二项', style='List Number')
document.add_paragraph('第三项', style='List Number')
document.add_paragraph('接下来,我们将创建一个无序列表:', style='List Bullet')
document.add_paragraph('第一项', style='List Bullet')
document.add_paragraph('第二项', style='List Bullet')
document.add_paragraph('第三项', style='List Bullet')
# 添加图片和图表
document.add_heading('下面是一个美图', level=1)
document.add_picture('image.jpg', width=Inches(4.0))
document.add_heading('下面是一个表格和图表', level=1)
# 添加表格
table = document.add_table(rows=4, cols=4)
table.style = 'Table Grid'
table.cell(0, 0).text = '表头1'
table.cell(0, 1).text = '表头2'
table.cell(0, 2).text = '表头3'
table.cell(0, 3).text = '表头4'
for i in range(1, 5):
row = table.row_cells(i)
row[0].text = '行 %d,列 1' % i
row[1].text = '行 %d,列 2' % i
row[2].text = '行 %d,列 3' % i
row[3].text = '行 %d,列 4' % i
# 添加内置图表
chart_data = [
('图表1', ((1, 2), (2, 3), (3, 4))),
('图表2', ((3, 2), (4, 3), (5, 4))),
]
from docx.chart import (
ChartPart, ChartData, XyChart, BarChart, LineChart, AreaChart
)
from docx.enum.chart import (
XL_CHART_TYPE, XL_TICK_MARK, XL_LEGEND_POSITION
)
chart_part = document.add_chart(XyChart, chart_data)
chart_part.chart.x_axis.tick_mark = XL_TICK_MARK.OUTSIDE
chart_part.chart.y_axis.tick_mark = XL_TICK_MARK.OUTSIDE
legend = chart_part.chart.legend
legend.position = XL_LEGEND_POSITION.BOTTOM
document.save('document.docx')
7. 总结
python-docx
提供了操作Word文档的一系列接口,我们可以使用它来创建和修改Word文档,添加表格、图片、图表等信息。
在本文中,我们介绍了如何使用python-docx
库创建Word文档,并添加文本、表格、图片、图表等内容。我们还提供了示例代码以供参考,并详细说明了其中的每个步骤。希望这篇文章能够帮助您使用Python自动生成Word文档。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用Python 自动生成 Word 文档的教程 - Python技术站