01-债劵办公自动化程序
原创2023/8/25大约 3 分钟...约 1010 字
2. 代码实现
2.1 需求点1
- 实现思路:读取 sample 文件夹下所 Excel 并生成相对路径
库的对比
在办公自动化处理 Excel 方面,主流可用的库的优缺点。
- openpyxl
- 优点:专为
.xlsx格式设计,功能丰富,适用于多数场景; - 缺点:不支持
.xls格式;
- 优点:专为
- xlrd
- 优点:是读取旧版
.xls格式首选库; - 缺点:从 2.0.0 版本开始,
xlrd仅支持.xls格式,并放弃了对.xlsx格式的支持;
- 优点:是读取旧版
- xlwt
- 优点:用于写入
.xls格式的文件; - 缺点:不支持
.xlsx格式;
- 优点:用于写入
- XlsxWriter
- 优点:专为写入
.xlsx格式文件设计,提供了很多高级功能,比如:图表创建; - 缺点:不能读取 Excel 文件,也不支持
.xls格式;
- 优点:专为写入
- pandas
- 优点:它是一个数据分析库,可以结合
openpyxl、xlrd和XlsxWriter来读取和写入 Excel 文件。对于数据处理和转换,pandas非常强大; - 缺点:为数据分析设计,对于一些专门的 Excel 功能可能不是那么直观;
- 优点:它是一个数据分析库,可以结合
为了最大化地处理 Excel 的新旧版本,你可以这样做:
- 使用
xlrd来读取.xls格式的文件。再使用xlwt来写入.xls格式文件; - 使用
openpyxl来读取和写入.xlsx格式的文件; - 如果需要更高级的写入功能,考虑使用
XlsxWriter; - 对于数据处理和转换,考虑使用
pandas。
这样,你可以涵盖 Excel 文件的大多数情况。
pandas 在 Excel 领域的特点
pandas 可以同时支持新版本(.xlsx、.xlsm)和旧版(.xls)的 Excel 文件格式,但 pandas 做到这一点是通过在后台使用其他库,如: openpyxl 和 xlrd。
具体地说:
- 读取 Excel 文件
- 当读取
.xlsx文件时,pandas默认使用openpyxl作为引擎。 - 当读取
.xls文件时,pandas使用xlrd作为引擎。
- 当读取
- 写入 Excel 文件
- 当写入
.xlsx文件时,pandas可以使用openpyxl或XlsxWriter作为引擎。 - 当写入
.xls文件时,pandas使用xlwt作为引擎。
- 当写入
所以,我们完全可以通过 pandas 来统一操作我们 Excel 文件读取或写入不同格式的 Excel 文件,而不必担心底层实现的细节。
只需要确保我们已经安装了必要的库(如: openpyxl、xlrd、xlwt 和/或 XlsxWriter)。
例如,使用 pandas 读取 .xlsx 和 .xls 文件:
import pandas as pd
# 读取 .xlsx 文件
df_xlsx = pd.read_excel("path_to_file.xlsx", engine="openpyxl")
# 读取 .xls 文件
df_xls = pd.read_excel("path_to_file.xls", engine="xlrd")基本的写入 .xlsx 和 .xls 文件:
# 写入 .xlsx 文件
df.to_excel("path_to_output.xlsx", engine="openpyxl")
# 写入 .xls 文件
df.to_excel("path_to_output.xls", engine="xlwt")总之,确实,pandas 提供了一个统一的接口来处理新旧版本的 Excel 文件,只是需要确保你有适当的底层库来支持这些操作。
公众号:AI悦创【二维码】

AI悦创·编程一对一
AI悦创·推出辅导班啦,包括「Python 语言辅导班、C++ 辅导班、java 辅导班、算法/数据结构辅导班、少儿编程、pygame 游戏开发、Web、Linux」,全部都是一对一教学:一对一辅导 + 一对一答疑 + 布置作业 + 项目实践等。当然,还有线下线上摄影课程、Photoshop、Premiere 一对一教学、QQ、微信在线,随时响应!微信:Jiabcdefh
C++ 信息奥赛题解,长期更新!长期招收一对一中小学信息奥赛集训,莆田、厦门地区有机会线下上门,其他地区线上。微信:Jiabcdefh
方法一:QQ
方法二:微信:Jiabcdefh

更新日志
2025/4/11 07:49
查看所有更新日志
1c35a-于aed17-于4be35-于3d3ee-于651a7-于6e57c-于0314f-于4e95c-于08625-于ae6cd-于e2b03-于78471-于5f043-于11c4a-于59d09-于e6b5b-于60531-于4db9c-于67a3a-于ebf9d-于cbb3a-于76989-于86c50-于027da-于
贡献者
AndersonHJBAI悦创