Python load_workbook的几个实用技巧
引言
Python 中的 openpyxl
库提供了强大的功能来处理 Excel 文件。其中,load_workbook
函数是非常常用的一个函数,用于加载已经存在的 Excel 文件,并提供读写的能力。本文将详细介绍 load_workbook
函数的几个实用技巧。
1. 加载 Excel 文件
要使用 openpyxl
库,首先需要安装它。可以使用 pip
包管理器,在命令行中运行以下命令安装:
pip install openpyxl
加载 Excel 文件很简单,只需使用 openpyxl
中的 load_workbook
函数。以下是加载文件的代码示例:
from openpyxl import load_workbook
# 加载 Excel 文件
workbook = load_workbook('example.xlsx')
2. 查看所有工作表
在加载了 Excel 文件后,可以使用 workbook
对象的 sheetnames
属性来查看所有的工作表名称。以下是代码示例:
# 获取所有工作表名称
sheets = workbook.sheetnames
# 打印工作表名称
for sheet_name in sheets:
print(sheet_name)
运行结果可能如下所示:
Sheet1
Sheet2
Sheet3
3. 读取指定工作表
要读取指定的工作表,可以使用 workbook
对象的 active
属性来获取当前活动的工作表。也可以通过索引或名称来选择特定的工作表。以下是代码示例:
# 通过索引获取工作表
sheet = workbook.worksheets[0]
# 通过名称获取工作表
sheet = workbook['Sheet1']
4. 写入数据到单元格
使用 openpyxl
可以向指定单元格写入数据。要写入数据,需要指定工作表、行和列的索引。以下是代码示例:
from openpyxl.utils import get_column_letter
# 写入数据到指定单元格
sheet['A1'] = 'Hello, World!'
# 迭代写入多个数据
for i in range(10):
col_letter = get_column_letter(i + 1)
sheet[f'{col_letter}2'] = i+1
注意:在写入数据之后,需要使用 save
方法保存修改。
5. 保存修改后的 Excel 文件
修改完 Excel 文件后,需要使用 save
方法保存文件。以下是代码示例:
# 保存修改后的文件
workbook.save('example_modified.xlsx')
6. 获取行数和列数
要获取指定工作表的行数和列数,可以使用 max_row
和 max_column
属性。以下是代码示例:
# 获取行数和列数
row_count = sheet.max_row
column_count = sheet.max_column
print(f'行数:{row_count}')
print(f'列数:{column_count}')
运行结果可能如下所示:
行数:10
列数:3
7. 循环读取数据
要循环遍历工作表中的数据,可以使用 iter_rows
方法逐行迭代。以下是代码示例:
# 循环读取数据
for row in sheet.iter_rows(values_only=True):
print(row)
运行结果可能如下所示:
('Name', 'Age', 'City')
('Alice', 25, 'New York')
('Bob', 32, 'London')
('Charlie', 45, 'Paris')
...
8. 示例代码
from openpyxl import load_workbook
from openpyxl.utils import get_column_letter
# 加载 Excel 文件
workbook = load_workbook('example.xlsx')
# 获取所有工作表名称
sheets = workbook.sheetnames
# 打印工作表名称
for sheet_name in sheets:
print(sheet_name)
# 通过索引获取工作表
sheet = workbook.worksheets[0]
# 通过名称获取工作表
sheet = workbook['Sheet1']
# 写入数据到指定单元格
sheet['A1'] = 'Hello, World!'
# 迭代写入多个数据
for i in range(10):
col_letter = get_column_letter(i + 1)
sheet[f'{col_letter}2'] = i+1
# 保存修改后的文件
workbook.save('example_modified.xlsx')
# 获取行数和列数
row_count = sheet.max_row
column_count = sheet.max_column
print(f'行数:{row_count}')
print(f'列数:{column_count}')
# 循环读取数据
for row in sheet.iter_rows(values_only=True):
print(row)
结论
本文介绍了 openpyxl
中 load_workbook
函数的几个实用技巧。通过这些技巧,可以方便地加载、读取、写入和保存 Excel 文件,从而对 Excel 文件进行灵活的操作。