一文掌握 openpyxl:Python 操作 Excel 的神兵利器

在数据处理和办公自动化领域,Excel 是最常用的工具之一。而 Python 中的openpyxl库,就像是一把神奇的钥匙,能够让你轻松驾驭 Excel 文件,实现数据的读取、写入和修改等各种操作。无论是处理简单的数据报表,还是复杂的工作簿,openpyxl都能大显身手。接下来,让我们深入了解这个强劲的库。

一、安装 openpyxl

在使用openpyxl之前,第一要确保它已经安装。你可以使用 pip 这个 Python 包管理工具来安装:

bash

pip install openpyxl

二、读取 Excel 文件

1. 加载工作簿

假设我们有一个名为example.xlsx的 Excel 文件,要读取其中的数据,第一需要加载这个工作簿:

python

import openpyxl

# 加载工作簿
workbook = openpyxl.load_workbook('example.xlsx')

2. 选择工作表

一个工作簿可能包含多个工作表,我们需要选择要操作的工作表。可以通过工作表的名称或者索引来选择:

python

# 通过名称选择工作表
sheet = workbook['Sheet1']

# 或者通过索引选择工作表(索引从0开始)
sheet = workbook.worksheets[0]

3. 读取单元格数据

选择好工作表后,就可以读取单元格的数据了。可以通过行和列的索引来定位单元格,也可以使用 A1 样式的表明法:

python

# 通过行和列索引读取单元格数据(行和列索引从1开始)
cell_value = sheet.cell(row = 1, column = 1).value
print(cell_value)

# 使用A1样式表明法读取单元格数据
cell_value = sheet['A1'].value
print(cell_value)

4. 遍历行和列

如果要遍历整个工作表的数据,可以通过循环来遍历行和列:

python

# 遍历行
for row in sheet.iter_rows(values_only = True):
    for value in row:
        print(value, end = '	')
    print()

# 遍历列
for col in sheet.iter_cols(values_only = True):
    for value in col:
        print(value)
    print()

values_only = True参数表明只获取单元格的值,而不获取整个单元格对象。这样可以提高读取效率,尤其是在处理大型工作表时。

三、写入 Excel 文件

1. 创建新的工作簿

如果要创建一个新的 Excel 文件,可以使用openpyxl.Workbook()方法:

python

import openpyxl

# 创建新的工作簿
workbook = openpyxl.Workbook()
sheet = workbook.active

这里workbook.active获取的是默认创建的第一个工作表。

2. 写入单元格数据

要向单元格写入数据,同样可以通过行和列索引或者 A1 样式表明法:

python

# 通过行和列索引写入数据
sheet.cell(row = 1, column = 1, value = '姓名')
sheet.cell(row = 1, column = 2, value = '年龄')

# 使用A1样式表明法写入数据
sheet['A2'] = '张三'
sheet['B2'] = 25

3. 保存工作簿

完成数据写入后,需要保存工作簿,将数据持久化到文件中:

python

workbook.save('new_example.xlsx')

四、修改 Excel 文件

1. 修改单元格数据

如果要修改已有的单元格数据,直接重新赋值即可:

python

# 加载工作簿
workbook = openpyxl.load_workbook('example.xlsx')
sheet = workbook['Sheet1']

# 修改单元格数据
sheet['A1'] = '新的标题'
workbook.save('example.xlsx')

2. 插入和删除行 / 列

有时候需要在工作表中插入或删除行和列。插入行可以使用insert_rows()方法,插入列可以使用insert_cols()方法;删除行和列则分别使用delete_rows()和delete_cols()方法:

python

# 插入行
sheet.insert_rows(2)  # 在第2行之前插入一行

# 插入列
sheet.insert_cols(3)  # 在第3列之前插入一列

# 删除行
sheet.delete_rows(3)  # 删除第3行

# 删除列
sheet.delete_cols(2)  # 删除第2列

workbook.save('example.xlsx')

五、其他功能

1. 合并和拆分单元格

openpyxl支持合并和拆分单元格的操作。合并单元格使用merge_cells()方法,拆分单元格使用unmerge_cells()方法:

python

# 合并单元格
sheet.merge_cells('A1:C1')  # 合并A1到C1的单元格

# 拆分单元格
sheet.unmerge_cells('A1:C1')
workbook.save('example.xlsx')

2. 设置单元格样式

可以为单元格设置各种样式,如字体、颜色、对齐方式等。下面是一个设置字体样式的示例:

python

from openpyxl.styles import Font

# 设置字体样式
font = Font(name='宋体', size = 14, bold = True, color='FF0000')
sheet['A1'].font = font
workbook.save('example.xlsx')

openpyxl库为 Python 开发者提供了丰富且便捷的功能,用于操作 Excel 文件。无论是进行数据处理、报表生成还是自动化办公任务,掌握openpyxl都能大大提高工作效率。通过不断实践和探索,你可以挖掘出更多高级用法,让 Excel 文件的操作变得更加得心应手。

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 共1条

请登录后发表评论