将 xlsx 文件转换为 xls 以与 Pandas 一起使用

时间:2021-01-12 13:04:42

标签: python excel pandas

我有一个重复的任务,我下载多个 excel 文件(我被迫以 xlsx 格式下载),然后我从每个 excel 文件中取出 G 列并将它们连接成“final.xlsx”然后“final.xlsx " 与另一个 excel 工作簿进行比较,以查看每个工作簿中的所有数字实例是否匹配。

我现在正在制作一个跨平台的 Python 应用程序来解决这个问题。但是,pandas 将不再允许 xlsx 文件,手动打开并将它们保存为 xls 文件只会增加更多重复的体力劳动。

python 是否有跨平台的方式将 xlsx 文件转换为 xls? 或者我应该放弃pandas并使用openpyxl,因为我被迫处理xlsx格式?

我尝试使用它但没有成功;

from pathlib import Path
import openpyxl
import os
 
# get files
os.chdir(os.path.abspath(os.path.dirname(__file__)))
pdir = Path('.')
filelist = [filename for filename in pdir.iterdir() if filename.suffix == '.xlsx']
 
for filename in filelist:
    print(filename.name)
 
for infile in filelist:
    workbook = openpyxl.load_workbook(infile)
    outfile = f"{infile.name.split('.')[0]}.xls"
    workbook.save(outfile)

2 个答案:

答案 0 :(得分:1)

您仍然可以使用熊猫,但您需要 openpyxl。正如您在代码中所拥有的那样,我想这对您来说没问题。 否则,您可以通过以下方式安装:pip install openpyxl

以下说明了这是如何工作的。克尔。

import pandas as pd
fpath = r".\test.xlsx"
df = pd.read_excel (fpath, engine='openpyxl')
print(df)
   A  B
0  1  2
1  1  2

答案 1 :(得分:0)

以前, read_excel() 的默认参数 engine=None 会导致在许多情况下使用 xlrd 引擎,包括新的 Excel 2007+ (.xlsx) 文件。如果安装了 openpyxl,许多这些情况现在将默认使用 openpyxl 引擎。有关详细信息,请参阅 read_excel() 文档。

因此,强烈建议安装 openpyxl 来读取 Excel 2007+ (.xlsx) 文件。请不要在使用 xlrd 读取 .xlsx 文件时报告问题。这不再受支持,请改用 openpyxl。

https://pandas.pydata.org/docs/whatsnew/v1.2.0.html

相关问题