pandas 在Python中输出.xls文件

hc2pp10m  于 2023-08-01  发布在  Python
关注(0)|答案(4)|浏览(193)

我一直在自学Python来自动化我们的一些工作流程。到目前为止,从Excel文件(.xls,.xlsx)读取已经很好了。
目前,我遇到了一点小麻烦。虽然我可以很好地输出.xlsx文件,但我们必须用于主要工作任务的软件系统只能接受.xls文件作为输入-它不能处理.xlsx文件,并且供应商认为没有理由在可预见的将来添加.xlsx支持。
当我尝试使用Pandas或OpenPyXl输出一个.xls文件,并在Excel中打开该文件时,我得到一个警告,文件格式和文件的扩展名不匹配,这使我认为尝试使用我们的软件打开此文件可能会导致一些非常意外的后果(因为它实际上是一个.xlsx文件,只是没有命名为)
我试图在Google上搜索如何修复这一切,但我能找到的都是如何将.xls文件转换为.xlsx文件的指南(这几乎是我需要的相反)。因此,我想知道是否有人可以帮助我,这是否可以实现,如果可以,如何实现。
非常感谢您抽出时间

py49o6xq

py49o6xq1#

pandas.DataFrame.to_excel文档中,您应该注意到一个名为engine的参数,它声明:

引擎str,可选

要使用的写入引擎openpyxlxlsxwriter。您也可以通过选项io.excel.xlsx.writerio.excel.xls.writerio.excel.xlsm.writer进行设置。
它没有说明的是,engine参数是根据您的文件扩展名自动选取的--因此,很容易修复:

import pandas as pd

df = pd.DataFrame({"data": [1, 2, 3]})
df.to_excel("file.xls") # Notice desired file extension.

字符串
这将自动使用xlwt引擎,因此请确保通过pip install xlwt安装了它。

vuv7lop3

vuv7lop32#

费利佩是正确的文件扩展名将设置引擎参数。
所以基本上它所说的是旧的Excel格式“.xls”扩展在Pandas中不再被支持。因此,如果指定扩展名为“.xlsx”的输出电子表格,则警告消息将消失。

9vw9lbht

9vw9lbht3#

我终于有答案了!我已经安装了libreoffice,并在Windows上的命令行中使用以下命令:

"C:\Program Files\LibreOffice\program\soffice.exe" --headless --convert-to xlsx test2.xls

字符串
目前正在尝试使用子进程来自动化此操作。

gzszwxb4

gzszwxb44#

如果您的Excel是Microsoft Excel 97,请尝试以下简单步骤:
将pandas导入为pd
导入xlrd
data = pd.read_html('filename.xls')

相关问题