在 Python 中,openpyxl
和 python-docx
是非常流行的库,分别用于操作 Excel 和 Word 文档。下面是如何使用这两个库实现 Excel 和 Word 文档的自动化操作。
一、使用 openpyxl
操作 Excel
openpyxl
是一个用于读取和写入 Excel 文件(.xlsx
格式)的 Python 库,支持各种基本操作,包括读取单元格、写入数据、格式化单元格、合并单元格等。
1. 安装 openpyxl
首先,安装 openpyxl
:
pip install openpyxl
2. 基本操作:读取和写入 Excel
import openpyxl
# 创建一个新的 Excel 工作簿
wb = openpyxl.Workbook()
# 选择活动工作表
ws = wb.active
ws.title = "Sheet1" # 设置工作表名称
# 1. 写入数据到单元格
ws["A1"] = "Name"
ws["B1"] = "Age"
ws["A2"] = "Alice"
ws["B2"] = 30
ws["A3"] = "Bob"
ws["B3"] = 25
# 2. 保存文件
wb.save("example.xlsx")
# 3. 读取文件中的数据
wb = openpyxl.load_workbook("example.xlsx")
ws = wb.active
# 获取单元格的值
name = ws["A2"].value
age = ws["B2"].value
print(f"{name} is {age} years old.")
3. 操作单元格格式
from openpyxl.styles import Font, Color, Alignment
# 设置字体颜色和对齐方式
ws["A1"].font = Font(bold=True, color="FF0000") # 红色粗体
ws["B1"].alignment = Alignment(horizontal="center", vertical="center") # 居中对齐
# 设置单元格背景颜色
from openpyxl.styles import PatternFill
fill = PatternFill(start_color="FFFF00", end_color="FFFF00", fill_type="solid")
ws["A2"].fill = fill
# 保存修改
wb.save("styled_example.xlsx")
4. 读取 Excel 文件并遍历内容
wb = openpyxl.load_workbook("example.xlsx")
ws = wb.active
# 通过行列读取数据
for row in ws.iter_rows(min_row=2, max_row=ws.max_row, min_col=1, max_col=2):
for cell in row:
print(cell.value, end=" ")
print()
二、使用 python-docx
操作 Word 文档
python-docx
是一个用于创建、修改、读取 Word 文档(.docx
格式)的 Python 库。它支持文本操作、段落样式、表格操作、图片插入等。
1. 安装 python-docx
首先,安装 python-docx
:
pip install python-docx
2. 基本操作:创建和读取 Word 文档
from docx import Document
# 创建一个新的 Word 文档
doc = Document()
# 1. 添加标题
doc.add_heading('Python-docx 示例', 0)
# 2. 添加段落
doc.add_paragraph('这是一个自动生成的 Word 文档。')
# 3. 添加有格式的段落
doc.add_paragraph('这是一个加粗的段落。', style='Bold')
# 4. 添加一个表格
table = doc.add_table(rows=1, cols=2)
table.style = 'Table Grid'
# 添加表头
hdr_cells = table.rows[0].cells
hdr_cells[0].text = '姓名'
hdr_cells[1].text = '年龄'
# 向表格添加数据
row_cells = table.add_row().cells
row_cells[0].text = 'Alice'
row_cells[1].text = '30'
row_cells = table.add_row().cells
row_cells[0].text = 'Bob'
row_cells[1].text = '25'
# 5. 保存文档
doc.save("example.docx")
3. 读取和修改 Word 文档
# 打开现有的 Word 文档
doc = Document("example.docx")
# 读取文档中的段落
for para in doc.paragraphs:
print(para.text)
# 修改段落
doc.paragraphs[0].text = "修改后的标题"
# 保存文档
doc.save("modified_example.docx")
4. 添加图片到 Word 文档
# 在 Word 中插入图片
doc = Document()
doc.add_paragraph('插入图片如下:')
doc.add_picture('image.jpg', width=Inches(2), height=Inches(2))
# 保存文档
doc.save("document_with_image.docx")
5. 操作表格
# 打开现有的 Word 文档
doc = Document("example.docx")
# 读取表格数据
table = doc.tables[0] # 选择第一个表格
for row in table.rows:
for cell in row.cells:
print(cell.text)
# 修改表格数据
table.cell(1, 0).text = 'John' # 修改第二行第一列的内容
# 保存文档
doc.save("modified_table_example.docx")
三、总结
操作 |
|
|
操作文件类型 | Excel ( | Word ( |
读取文件 |
|
|
写入文件 |
|
|
表格操作 | 支持(表格的行列插入、格式化) | 支持(插入表格、修改表格) |
样式/格式化 | 支持(字体、背景颜色、单元格合并) | 支持(段落样式、字体、图片、表格样式) |
其他功能 | 支持合并单元格、调整行列宽度等 | 支持图片插入、页面设置(页边距、纸张大小) |
推荐使用场景
openpyxl
:
- 用于 Excel 文件的自动化处理,尤其是数据分析和处理场景,如导入/导出数据,自动填充表格等。
- 常用于财务报表、数据分析自动化、批量数据导入等。
python-docx
:
- 用于生成 Word 文档,适合于报告生成、合同模板填充、文档自动化生成等。
- 可以轻松插入文本、表格、图片等内容,并进行格式化。