目录
Python实例题
题目
Python操作excel自动化开发
安装依赖库
pip install openpyxl
示例代码
import openpyxl
from openpyxl.utils import get_column_letter
# 写入 Excel 文件
def write_to_excel(file_path, data):
"""
写入数据到 Excel 文件
:param file_path: Excel 文件路径
:param data: 要写入的数据,二维列表形式
"""
workbook = openpyxl.Workbook()
sheet = workbook.active
for row_index, row_data in enumerate(data, start=1):
for col_index, cell_value in enumerate(row_data, start=1):
col_letter = get_column_letter(col_index)
cell = f'{col_letter}{row_index}'
sheet[cell] = cell_value
workbook.save(file_path)
print(f"数据已写入 {file_path}")
# 读取 Excel 文件
def read_from_excel(file_path):
"""
从 Excel 文件中读取数据
:param file_path: Excel 文件路径
:return: 读取的数据,二维列表形式
"""
workbook = openpyxl.load_workbook(file_path)
sheet = workbook.active
data = []
for row in sheet.iter_rows(values_only=True):
data.append(list(row))
return data
# 修改 Excel 文件
def modify_excel(file_path, row_index, col_index, new_value):
"""
修改 Excel 文件中的指定单元格
:param file_path: Excel 文件路径
:param row_index: 行索引(从 1 开始)
:param col_index: 列索引(从 1 开始)
:param new_value: 新的值
"""
workbook = openpyxl.load_workbook(file_path)
sheet = workbook.active
col_letter = get_column_letter(col_index)
cell = f'{col_letter}{row_index}'
sheet[cell] = new_value
workbook.save(file_path)
print(f"已将 {cell} 单元格的值修改为 {new_value}")
if __name__ == "__main__":
# 示例数据
sample_data = [
["姓名", "年龄", "城市"],
["张三", 25, "北京"],
["李四", 30, "上海"],
["王五", 22, "广州"]
]
# 写入数据到 Excel 文件
file_path = "example.xlsx"
write_to_excel(file_path, sample_data)
# 读取 Excel 文件中的数据
read_data = read_from_excel(file_path)
print("读取的数据:")
for row in read_data:
print(row)
# 修改 Excel 文件中的数据
modify_excel(file_path, 2, 2, 26)
代码解释
-
写入 Excel 文件:
write_to_excel
函数接收文件路径和要写入的数据。创建一个新的工作簿和工作表,遍历数据并将其逐行逐列写入工作表中,最后保存工作簿。
-
读取 Excel 文件:
read_from_excel
函数接收文件路径,加载指定的工作簿和工作表,使用iter_rows
方法遍历工作表中的每一行,将每行数据添加到结果列表中并返回。
-
修改 Excel 文件:
modify_excel
函数接收文件路径、行索引、列索引和新的值。加载工作簿和工作表,根据行列索引定位到指定单元格,将其值修改为新的值,最后保存工作簿。
运行思路
将上述代码保存为 excel_automation.py
文件,在终端中运行:
python excel_automation.py
运行后,会在当前目录下生成一个名为 example.xlsx
的 Excel 文件,包含示例数据。然后读取该文件中的数据并打印出来,最后修改指定单元格的值。
注意事项
openpyxl
主要用于处理.xlsx
格式的 Excel 文件,如果需要处理.xls
格式的文件,可以使用xlrd
和xlwt
库。- 在操作 Excel 文件时,要确保文件没有被其他程序占用,否则可能会出现文件读写错误。