当前位置: 首页 > news >正文

python读取excel工具:openpyxl | AI应用开发

python读取excel工具:openpyxl | AI应用开发

openpyxl 是一个 Python 库,专门用于读写 Excel 2010 xlsx/xlsm/xltx/xltm 文件。它是处理 Excel 文件的强大工具,可以让你在不需要安装 Excel 软件的情况下,对 Excel 文件进行创建、修改、读取和写入操作。以下是对 openpyxl 的详细介绍。

一、openpyxl 的特点

  1. 读写 Excel 文件:支持读写 .xlsx.xlsm 文件。
  2. 操作单元格:读取、写入和修改单元格内容。
  3. 处理合并单元格:识别和处理合并单元格。
  4. 样式和格式化:应用字体、颜色、对齐、边框和填充等样式。
  5. 公式支持:写入和计算 Excel 公式。
  6. 图表支持:创建和修改各种图表。
  7. 数据验证和条件格式:添加数据验证和条件格式。
  8. 工作表操作:添加、删除、重命名工作表。
  9. 图像支持:插入和处理图片。

二、安装 openpyxl

安装 openpyxl 非常简单,可以使用 pip:

pip install openpyxl

三、openpyxl 的基本概念

1. 工作簿(Workbook)

工作簿是 Excel 文件的最外层结构。一个工作簿可以包含多个工作表。

2. 工作表(Worksheet)

工作簿中的单个表格页面。每个工作表由行和列组成,可以包含数据、公式、图表等。

3. 单元格(Cell)

工作表中的一个数据单元。每个单元格由行号和列字母标识,例如 A1 表示第一列第一行的单元格。

四、基本操作示例

以下是一些基本的 openpyxl 操作示例:

1. 创建和保存 Excel 文件
from openpyxl import Workbook# 创建一个新的工作簿
wb = Workbook()# 获取活动的工作表
ws = wb.active# 写入数据到单元格
ws['A1'] = 'Hello'
ws['B1'] = 'World'# 保存工作簿
wb.save('example.xlsx')
2. 读取 Excel 文件
from openpyxl import load_workbook# 打开现有的工作簿
wb = load_workbook('example.xlsx')# 获取活动的工作表
ws = wb.active# 读取单元格数据
print(ws['A1'].value)
print(ws['B1'].value)
3. 修改 Excel 文件
# 修改单元格数据
ws['A1'] = 'New Value'# 保存修改后的工作簿
wb.save('example_updated.xlsx')
4. 合并和拆分单元格
# 合并单元格
ws.merge_cells('A1:B1')# 拆分单元格
ws.unmerge_cells('A1:B1')
5. 应用样式和格式化
from openpyxl.styles import Font, Color, Alignment, Border, Side# 应用字体样式
ws['A1'].font = Font(name='Arial', size=14, bold=True, italic=True)# 应用对齐方式
ws['A1'].alignment = Alignment(horizontal='center', vertical='center')# 应用边框
ws['A1'].border = Border(left=Side(style='thin'), right=Side(style='thin'), top=Side(style='thin'), bottom=Side(style='thin'))
6. 添加公式
# 在单元格中插入公式
ws['C1'] = '=SUM(A1:B1)'
7. 操作图表
from openpyxl.chart import BarChart, Reference# 创建一个柱状图
values = Reference(ws, min_col=1, min_row=1, max_col=2, max_row=2)
chart = BarChart()
chart.add_data(values)# 将图表插入工作表
ws.add_chart(chart, 'E5')

五、处理合并单元格的完整示例

以下是一个更复杂的示例,展示如何读取 Excel 文件并处理合并单元格的值:

import openpyxldef fill_merged_cells(sheet):# 遍历所有合并单元格for merged_range in sheet.merged_cells.ranges:# 提取合并单元格的起始坐标和结束坐标min_col, min_row, max_col, max_row = merged_range.min_col, merged_range.min_row, merged_range.max_col, merged_range.max_row# 获取合并单元格的值(通常位于合并区域的左上角)value = sheet.cell(row=min_row, column=min_col).value# 将值填充到所有合并区域的单元格中for row in range(min_row, max_row + 1):for col in range(min_col, max_col + 1):sheet.cell(row=row, column=col).value = valuereturn sheetdef read_and_process_excel(file_path):# 打开 Excel 文件workbook = openpyxl.load_workbook(file_path)sheet = workbook.active# 填充合并单元格的值sheet = fill_merged_cells(sheet)# 打印每个单元格的值for row in sheet.iter_rows():for cell in row:print(f"Cell {cell.coordinate} has value: {cell.value}")# 示例 Excel 文件路径
file_path = 'path/to/your/excel/file.xlsx'# 读取并处理 Excel 文件
read_and_process_excel(file_path)

六、结论

openpyxl 是一个功能强大的 Python 库,适用于处理 Excel 文件的各种需求。无论是简单的数据读写,还是复杂的样式和格式化操作,openpyxl 都能胜任。希望通过本文的介绍,你能够快速上手 openpyxl,并在你的项目中利用它的强大功能。

如果你对 openpyxl 感兴趣,可以参考以下资源:

  • openpyxl 官方文档
  • GitHub 代码仓库

通过这些资源,你可以深入了解 openpyxl 的更多高级功能和用法。

http://www.lryc.cn/news/532064.html

相关文章:

  • 堆的基本概念
  • Android车机DIY开发之软件篇(九) NXP AutomotiveOS编译
  • 嵌入式工程师必学(143):模拟信号链基础
  • 《LLM大语言模型深度探索与实践:构建智能应用的新范式,融合代理与数据库的高级整合》
  • e2studio开发RA2E1(5)----GPIO输入检测
  • Spring @Lazy:延迟初始化,为应用减负
  • 将OneDrive上的文件定期备份到移动硬盘
  • 从0开始,来看看怎么去linux排查Java程序故障
  • DeepSeek-V3:开源多模态大模型的突破与未来
  • Deep Sleep 96小时:一场没有硝烟的科技保卫战
  • Redis地理散列GeoHash
  • JAVA安全—反射机制攻击链类对象成员变量方法构造方法
  • 专业学习|一文了解并实操自适应大邻域搜索(讲解代码)
  • 9. k8s二进制集群之kube-controller-manager部署
  • 轮转数组-三次逆置
  • 3 卷积神经网络CNN
  • 穷举vs暴搜vs深搜vs回溯vs剪枝系列一>黄金矿工
  • java基础1(黑马)
  • ES6 对象扩展:对象简写,对象属性 表达式,扩展运算符 ...,Object.assign,Object.is,用法和应用场景
  • 2025 持续防范 GitHub 投毒,通过 Sharp4SuoExplorer 分析 Visual Studio 隐藏文件
  • PCB走线宽度与过流能力参考
  • 电商项目-分布式事务(四)基于消息队列实现分布式事务
  • g++ -> make -> cmake(草稿)
  • JSON常用的工具方法
  • 【Kubernetes Pod间通信-第2篇】使用BGP实现Pod到Pod的通信
  • [权限提升] Windows 提权 维持 — 系统错误配置提权 - Trusted Service Paths 提权
  • 8. k8s二进制集群之Kubectl部署
  • 初学 Xvisor 之理解并跑通 Demo
  • 深度内容运营与开源AI智能名片2+1链动模式S2B2C商城小程序在打造种草社区中的应用研究
  • RNN/LSTM/GRU 学习笔记