14.使用各种读写包操作 Excel 文件:辅助模块

一 各种读写包

这些是 pandas 在底层使用的各种读写包。

表中没有 xlwings ,因为xlwings 依赖于 Excel 应用程序本身,为了使用 xlwings,你的计算机上必须安装并可以运行 Excel 应用程序。然而 Excel 并不总是可用的,在 Linux 系统中,原生并没有 Excel 应用程序。在 Windows 或 macOS 系统中,由于可以安装 Excel 应用程序,xlwings 可以作为一个强大的工具来替代其他用于处理 Excel 文件的 Python 包。在这些系统中,如果你需要执行与 Excel 相关的操作,xlwings 可能是一个更好的选择,因为它提供了更直接、更强大的与 Excel 交互的能力。

xlwings 与其他处理 Excel 文件的 Python 包(如 pandasopenpyxlxlrd 等)之间的本质区别在于它对 Excel 应用程序的依赖。其他包通常不依赖于 Excel 应用程序本身,而是直接读取或写入 Excel 文件的格式。这使得它们可以在没有安装 Excel 的环境中使用。

xlwings 在 Windows 或 macOS 系统中由于其与 Excel 应用程序的直接交互能力,可以提供一些其他包无法提供的独特功能。但这并不意味着它可以完全替代其他所有处理 Excel 文件的 Python 包。


二 辅助模块 excel.py

https://pan.baidu.com/s/1N2E4WkODmGHVfqr5ugKc6w?pwd=43tq 提取码: 43tq

1.为什么要有辅助模块

在处理电子表格(如Excel表格)时,通常需要使用代码来读取或写入表格中的单元格区域。不同的包提供了不同的方法和语法来完成这些操作。这意味着,如果你从一个包切换到另一个包,你可能需要学习并适应新的语法和方法。使用这样的辅助模块,用户可以更专注于处理数据本身,而不是纠结于如何调用底层的包来完成基本的读写操作。

想象你有一堆不同的工具箱,每个工具箱里都有工具可以帮你完成一些特定的任务,这些工具箱就像是你编程时用的不同包。每个工具箱里的工具使用方法都不一样。现在,假设有人为你制作了一个"万能工具适配器",这个适配器可以让你用同一种方式使用所有工具箱里的工具,而不需要去学习每种工具的具体使用方法。

2.该模块负责处理的问题是什么

1.切换读写包

Excel 文件会随着时间不断增大,很多用户会尽可能地将文件格式从 xlsx 切换到 xlsb,因为 xlsb 格式可以大幅削减文件大小。你不得不从 OpenPyXL 切换到 pyxlsb。因此也就必须将使用 OpenPyXL 的代码改写成 pyxlsb 的语法。

2.数据类型转换

在切换包时,你不仅需要对代码的语法进行调整,还需要注意不同包返回同一单元格内容时所用的不同数据类型。例如,OpenPyXL 会为空单元格返回 None,而 xlrd 返回的是空字符串。

3.单元格循环

读写包是低级包:这就意味着它们并未提供一些方便的函数来处理常见任务。例如,大部分包会要求你通过循环来操作每一个需要读或写的单元格。

3.如何使用辅助模块

有3个函数

1.读写值

read 函数接受以下任一种包的 sheet 对象:xlrd、OpenPyXL 或 pyxlsb。

read 函数也接受可选参数 first_cell 和 last_cell。

这两个参数可以以 A1 这样的字符串形式提供,也可以通过行列元组的形式提供(遵循 Excel 从 1 开始的索引规则):(1, 1)。行列元组指的是一个包含两个整数的元组,用于指定单元格的位置。元组的第一个元素表示行号,第二个元素表示列号。在 Excel 中,单元格的索引是从 1 开始的,而不是从 0 开始。Excel 中的第一个单元格(左上角)通常标记为 A1,其中 A 表示第一列,1 表示第一行。想要指定 Excel 中的第一行第一列,你应该使用元组 (1, 1),而不是 (0, 0)read(sheet, first_cell=(1, 1), last_cell=(3, 3)) 将读取从第一行第一列到第三行第三列的单元格区域。

first_cell 的默认值是 A1,而 last_cell 的默认值是所用区域的右下角。因此如果你只提供了 sheet 对象作为参数,那么它就会读取整张工作表。

与 read 函数的工作方式类似,write 函数接受 xlwt、 OpenPyXL 或 XlsxWriter 的 sheet 对象(read 和 write 函数都是自定义函数),以及以嵌套列表和可选的 first_cell 表示的值。可选参数 first_cell 代表待写入区域左上角的单元格,嵌套列表将从这里开始写入。

2.数据类型转换

相关推荐
qq_529835358 分钟前
Java实现死锁
java·开发语言·python
Hi2024021723 分钟前
PyTorch多机训练Loss不一致问题排查指南:基于算子级一致性验证
人工智能·pytorch·python
月亮月亮要去太阳1 小时前
python画图文字显示不全+VScode新建jupyter文件
开发语言·python
YoloMari1 小时前
Leetcode刷题-枚举右,维护左
python·算法·leetcode
邪恶的贝利亚1 小时前
prompt工程起步
开发语言·python·prompt
山居秋暝LS2 小时前
目标跟踪之DeepSort算法(4)
pytorch·python
灏瀚星空2 小时前
高效图像处理工具:从需求分析到落地实现
图像处理·人工智能·经验分享·python·学习方法
安冬的码畜日常2 小时前
【AI 加持下的 Python 编程实战 2_02】第一章:利用 GitHub Copilot 叩开 AI 辅助编程的大门
人工智能·python·ai·copilot·ai助手·ai应用·ai辅助编程
java_python源码3 小时前
【2025】基于python+django的慢性病健康管理系统(源码、万字文档、图文修改、调试答疑)
数据库·python·django
abckingaa3 小时前
python开发订单查询功能(flask+orm bee)
python·orm·bee