在数据处理和办公自动化领域,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 文件的操作变得更加得心应手。



















- 最新
- 最热
只看作者