0
点赞
收藏
分享

微信扫一扫

Python自动化Office文档处理

在 Python 中,openpyxlpython-docx 是非常流行的库,分别用于操作 ExcelWord 文档。下面是如何使用这两个库实现 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")

三、总结

操作

openpyxl

python-docx

操作文件类型

Excel (.xlsx)

Word (.docx)

读取文件

openpyxl.load_workbook()

Document()

写入文件

wb.save()

doc.save()

表格操作

支持(表格的行列插入、格式化)

支持(插入表格、修改表格)

样式/格式化

支持(字体、背景颜色、单元格合并)

支持(段落样式、字体、图片、表格样式)

其他功能

支持合并单元格、调整行列宽度等

支持图片插入、页面设置(页边距、纸张大小)

推荐使用场景

  • openpyxl
  • 用于 Excel 文件的自动化处理,尤其是数据分析和处理场景,如导入/导出数据,自动填充表格等。
  • 常用于财务报表、数据分析自动化、批量数据导入等。
  • python-docx
  • 用于生成 Word 文档,适合于报告生成、合同模板填充、文档自动化生成等。
  • 可以轻松插入文本、表格、图片等内容,并进行格式化。
举报

相关推荐

0 条评论