Python 使用 openpyxl 模块解析 Excel
简介
openpyxl是Python的一个第三方模块,它可以用来读取和修改Excel文件。
安装
安装openpyxl模块可以使用pip命令:
pip install openpyxl
基础用法
打开表格
import openpyxl as xl
wb = xl.load_workbook("example.xlsx") # 打开表格
注意:打开时要确保文件是关闭状态。
读取sheet
sheet = wb["Sheet1"] # 通过名称获取sheet
sheet = wb.active # 获取当前活动的工作表
get_sheet_by_name方法已弃用,建议使用wb[sheet_name]。
创建sheet
wb.create_sheet("Sheet2", 2) # 在索引2的位置创建Sheet2
读取表格
value = sheet.cell(row=1, column=2).value # 读取第1行第2列的值
写入表格
sheet.cell(row=1, column=2, value="测试") # 写入值到第1行第2列
保存文件
wb.save("example_modified.xlsx") # 保存文件
wb.close() # 关闭工作簿
高级用法
处理大型Excel文件
wb = xl.load_workbook("large_file.xlsx", read_only=True)
使用样式和格式
from openpyxl.styles import Font, Alignment
font = Font(bold=True)
alignment = Alignment(horizontal="center")
sheet.cell(row=1, column=1).font = font
sheet.cell(row=1, column=1).alignment = alignment
处理不同Excel版本
wb = xl.load_workbook("old_file.xls", keep_vba=True)
处理错误
try:
wb = xl.load_workbook("invalid_file.xlsx")
except Exception as e:
print(f"Error: {e}")
完整代码示例
import openpyxl as xl
# 打开工作簿
wb = xl.load_workbook("example.xlsx")
# 创建新sheet
wb.create_sheet("Sheet2", 2)
# 获取sheet
sheet = wb["Sheet1"]
# 读取和修改单元格
old_value = sheet.cell(row=1, column=2).value
new_value = "测试b"
sheet.cell(row=1, column=2, value=new_value)
# 打印结果
print(f"{old_value} --> {new_value}")
# 保存并关闭工作簿
wb.save("example_modified.xlsx")
wb.close()
常见问题
1. 文件无法打开
确保文件路径正确且文件未被其他程序占用。
2. 写入数据无效
确保在写入后调用wb.save()保存更改。
3. 读取大型文件慢
使用read_only=True模式加载文件。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Beyond Lightcone!






