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

Python 操作 读/写 Excel

Python 操作 读/写 Excel

准备知识

文件格式

什么是 xls
格式类型XLS 是 Excel 97-2003 使用的文件格式,基于二进制文件格式
文件扩展名.xls
兼容性由于其历史悠久,XLS 文件格式在较旧版本的 Excel 中广泛使用。较新的 Excel 版本也能打开和编辑 XLS 文件
特性和限制最大支持 65536 行和 256 列。
因为是二进制格式,文件较大,处理速度较慢。
支持的功能和特性相对较少,不支持一些新功能。
什么是 xlsx
格式类型XLSX 是 Excel 2007 及之后版本使用的文件格式,基于 Office Open XML 标准(XML 文件格式)。
文件扩展名.xlsx
兼容性XLSX 是现代 Excel 版本默认使用的文件格式
特性和优势最大支持 1048576 行和 16384 列
由于基于 XML,文件压缩更好,体积更小,处理速度更快。
支持更多新功能和特性,如更复杂的图表、条件格式、数据验证等。
更安全,支持更好的数据恢复机制
什么是 XLSM
格式类型XLSM 是 Excel 2007 及之后版本使用的文件格式,基于 Office Open XML 标准(XML 文件格式)
文件扩展名.xlsm
兼容性XLSM 文件与现代版本的 Excel 兼容
特性和优势支持宏
XLSM 文件可以存储和执行 VBA 宏,适用于需要自动化任务的复杂工作簿。
结构和功能
与 XLSX 文件类似,XLSM 也基于 XML 格式,支持更大容量的数据存储(最大支持 1048576 行和 16384 列)和丰富的功能特性(如复杂图表、条件格式、数据验证等)。
安全性
由于宏可以执行代码,XLSM 文件可能带有安全风险。Excel 会在打开 XLSM 文件时提示用户启用或禁用宏,以防止潜在的恶意代码执行。
使用场景自动化任务:在 Excel 中自动化重复性任务,如数据处理、报表生成等。
复杂工作簿:包含大量数据和复杂功能的工作簿,特别是需要宏来提高效率的场景。
注意事项安全风险:由于宏可以包含恶意代码,打开不明来源的 XLSM 文件时要谨慎,确保文件来自可信来源。
启用宏:Excel 默认会禁用宏,需要手动启用以运行宏功能。

术语

工作表工作薄

工作表

工作表: xlsx 文件

openpyxl

openpyxl 是一个用于读取和写入 Excel 2010 xlsx/xlsm/xltx/xltm 文件的 Python 库。它支持 Excel 文件的创建、修改和数据提取,并能处理复杂的电子表格操作,如公式、图表和格式设置。openpyxl 以其易用性和强大功能广受欢迎,适用于数据分析、自动化报表生成等任务。

安装

pip install openpyxl

Example 1 - 创建表格

将以下数据写入工作表

要求如下:

工作表名 example1.xlsx

工作薄名 大数据1班

学号姓名性别年龄
21001张三18
21002李四20

代码实现

from openpyxl import Workbook

# 创建工作表
work_book = Workbook()

# print(work_book.sheetnames)
# ['Sheet']

# 一个工作表至少有一个工作簿. 你可以通过 Workbook.active 来获取
work_sheet = work_book.active

# 修改工作薄的名字
work_sheet.title = "大数据1班"

# 将数据写入单元格
work_sheet.cell(row=1, column=1, value="学号")
work_sheet.cell(row=1, column=2, value="姓名")
work_sheet.cell(row=1, column=3, value="性别")
work_sheet.cell(row=1, column=4, value="年龄")

work_sheet.cell(row=2, column=1, value="21001")
work_sheet.cell(row=2, column=2, value="张三")
work_sheet.cell(row=2, column=3, value="男")
work_sheet.cell(row=2, column=4, value=18)

work_sheet.cell(row=3, column=1, value="21002")
work_sheet.cell(row=3, column=2, value="李四")
work_sheet.cell(row=3, column=3, value="女")
work_sheet.cell(row=3, column=4, value=20)

# 保存工作表
work_book.save("./example1.xlsx")

Example 2 - 读取表格数据

from openpyxl.reader.excel import load_workbook

operate_file = "./files/example1.xlsx"
new_operate_file = "./files/example2.xlsx"
# 打开工作表
work_book = load_workbook(operate_file)

# print(work_book.sheetnames)
# ['大数据1班']

# 获取工作薄
work_sheet = work_book["大数据1班"]

# 获取单元格数据
# 比如获取 第二行, 第四列 的数据
d = work_sheet.cell(row=2, column=4)
print(d.value)

# 修改单元格数据
work_sheet.cell(row=2, column=4, value=28)

# 假如修改了单元格的数据, 应该保存到文件

# 保存方式1:  保存到原文件
# work_book.save(operate_file)

# 保存方式2:  保存到新文件
work_book.save(new_operate_file)

http://www.kler.cn/a/372519.html

相关文章:

  • 炫酷的登录框!(附源码)
  • 微信小程序 setData数据量过大的解决与分页加载的实现
  • 通过route访问Openshift上的HTTP request报错504 Gateway Time-out【已解决】
  • 《Python 机器学习库的璀璨星空》
  • 软件行业似乎要消失了
  • 「Mac畅玩鸿蒙与硬件6」鸿蒙开发环境配置篇6 - 理解鸿蒙项目结构
  • 电科金仓(人大金仓)更新授权文件(致命错误: XX000: License file expired.)
  • 鸿蒙系统开发入门:一步步踏上创新之旅
  • conda使用指南
  • 100种算法【Python版】第24篇——Bellman-Ford算法
  • Java异常2
  • 计算机网络-常用网络命令和工具
  • 华为配置手工负载分担模式链路聚合实验
  • 树莓派4处理器超频指南
  • 输电线路火灾隐患监测系统功能与应用是什么?
  • 基于Springboot+微信小程序的任务打卡系统(含源码数据库)
  • 网络搜索引擎Shodan(2)
  • CSS - grid制作表格
  • Java项目实战II基于微信小程序的计算机实验室排课与查询系统(开发文档+数据库+源码)
  • 深入理解所有权与借用——借用与生命周期管理
  • Linux中gcc的使用
  • Android中Logcat长日志打印不全问题正解
  • HTML入门教程6:HTML段落
  • LeetCode 2058.找出临界点之间的最小和最大距离
  • ChatGPT-o1辅助论文写作的优势及12个方向提示词分享
  • camera和lidar外参标定