当前位置: 技术文章>> 如何用 Python 实现 Excel 文件读写?

文章标题:如何用 Python 实现 Excel 文件读写?
  • 文章分类: 后端
  • 5299 阅读

在Python中处理Excel文件是一项常见的任务,无论是数据分析、自动化报告还是数据备份,都离不开对Excel文件的读写操作。Python通过几个强大的库支持这一功能,其中最流行的是openpyxl(用于处理.xlsx文件)和xlrdxlwt(分别用于读取和写入.xls文件,但注意xlrd从版本2.0开始不再支持.xls文件的写入,且对.xlsx的支持有限)。由于.xlsx格式在现代办公环境中更为普遍,以下我们将重点介绍如何使用openpyxl库来实现Excel文件的读写操作。

安装openpyxl

首先,确保你的Python环境中安装了openpyxl库。如果未安装,可以通过pip命令轻松安装:

pip install openpyxl

读取Excel文件

使用openpyxl读取Excel文件主要涉及加载工作簿(Workbook)、选择工作表(Worksheet)以及遍历单元格(Cell)等步骤。

示例:读取Excel文件

假设我们有一个名为example.xlsx的Excel文件,现在我们要读取其中的数据。

from openpyxl import load_workbook

# 加载工作簿
wb = load_workbook(filename='example.xlsx')

# 选择工作表,这里以第一个工作表为例
ws = wb.active  # 或者使用 ws = wb['Sheet1'] 指定工作表名

# 遍历工作表中的每一行和每一列
for row in ws.iter_rows(values_only=True):  # values_only=True 表示只获取单元格的值
    print(row)

# 或者遍历每一列
for col in ws.iter_cols(values_only=True):
    print(col)

# 读取特定单元格的值
cell_value = ws['A1'].value
print(cell_value)

# 关闭工作簿(可选,因为Python的垃圾回收机制会自动处理)
# wb.close()

写入Excel文件

写入Excel文件同样简单,你可以创建一个新的工作簿,添加工作表,然后向单元格写入数据。

示例:写入Excel文件

from openpyxl import Workbook

# 创建一个新的工作簿
wb = Workbook()

# 选择默认的工作表,或者添加新的工作表
ws = wb.active
ws.title = "新工作表"

# 向单元格写入数据
ws['A1'] = '码小课'
ws.append([1, 2, 3])  # 在下一行追加数据

# 也可以一次性写入多行数据
data = [
    ['姓名', '年龄', '职业'],
    ['张三', 28, '程序员'],
    ['李四', 32, '设计师']
]

for row in data:
    ws.append(row)

# 保存工作簿
wb.save("new_example.xlsx")

进阶操作

格式化单元格

openpyxl允许你设置单元格的字体、颜色、边框等样式。

from openpyxl.styles import Font, Color, Border, Side

# 设置字体和颜色
font = Font(name='Calibri', size=11, bold=True, italic=False, vertAlign=None,
            underline='none', strike=False, color='FF0000')

# 设置边框
thin = Side(border_style="thin", color="000000")
border = Border(top=thin, left=thin, right=thin, bottom=thin)

# 应用样式
ws['A1'].font = font
ws['A1'].border = border

公式和图表

openpyxl还支持在单元格中插入公式和创建图表。

# 插入公式
ws['A3'] = "=SUM(A1:A2)"

# 创建图表(这里仅展示基本框架,具体实现可能较复杂)
from openpyxl import Workbook
from openpyxl.chart import BarChart, Reference

wb = Workbook()
ws = wb.active

# 假设已经有一些数据
rows = [
    ["Number", "Batch 1", "Batch 2"],
    [2, 10, 30],
    [3, 40, 60],
    [4, 50, 70],
    [5, 20, 10],
    [6, 10, 40],
    [7, 50, 30],
]

for row in rows:
    ws.append(row)

# 创建一个柱状图
chart = BarChart()
data = Reference(ws, min_col=2, min_row=1, max_row=7, max_col=3)
cats = Reference(ws, min_col=1, min_row=2, max_row=7)
chart.add_data(data, titles_from_data=True)
chart.set_categories(cats)
ws.add_chart(chart, "D1")

wb.save("chart_example.xlsx")

注意事项

  • 在处理大型Excel文件时,注意内存使用,避免一次性加载整个工作簿到内存中。
  • 写入文件时,确保文件路径正确,且Python有权限写入该路径。
  • 格式化、公式和图表等高级功能可能需要详细阅读openpyxl的官方文档。

总结

通过openpyxl库,Python能够轻松实现Excel文件的读写操作,包括基本的单元格读写、格式化、公式计算以及图表的创建等。这些功能使得Python成为处理Excel数据的强大工具,尤其适用于自动化数据处理和报告生成的场景。在码小课网站上,你可以找到更多关于Python处理Excel文件的教程和示例,帮助你更深入地掌握这一技能。

推荐文章