我一直在自学Python来自动化我们的一些工作流程。到目前为止,从Excel文件(.xls,.xlsx)读取已经很好了。
目前,我遇到了一点小麻烦。虽然我可以很好地输出.xlsx文件,但我们必须用于主要工作任务的软件系统只能接受.xls文件作为输入-它不能处理.xlsx文件,并且供应商认为没有理由在可预见的将来添加.xlsx支持。
当我尝试使用Pandas或OpenPyXl输出一个.xls文件,并在Excel中打开该文件时,我得到一个警告,文件格式和文件的扩展名不匹配,这使我认为尝试使用我们的软件打开此文件可能会导致一些非常意外的后果(因为它实际上是一个.xlsx文件,只是没有命名为)
我试图在Google上搜索如何修复这一切,但我能找到的都是如何将.xls文件转换为.xlsx文件的指南(这几乎是我需要的相反)。因此,我想知道是否有人可以帮助我,这是否可以实现,如果可以,如何实现。
非常感谢您抽出时间
4条答案
按热度按时间py49o6xq1#
在
pandas.DataFrame.to_excel
文档中,您应该注意到一个名为engine
的参数,它声明:引擎:str,可选
要使用的写入引擎
openpyxl
或xlsxwriter
。您也可以通过选项io.excel.xlsx.writer
、io.excel.xls.writer
和io.excel.xlsm.writer
进行设置。它没有说明的是,
engine
参数是根据您的文件扩展名自动选取的--因此,很容易修复:字符串
这将自动使用
xlwt
引擎,因此请确保通过pip install xlwt
安装了它。vuv7lop32#
费利佩是正确的文件扩展名将设置引擎参数。
所以基本上它所说的是旧的Excel格式“.xls”扩展在Pandas中不再被支持。因此,如果指定扩展名为“.xlsx”的输出电子表格,则警告消息将消失。
9vw9lbht3#
我终于有答案了!我已经安装了libreoffice,并在Windows上的命令行中使用以下命令:
字符串
目前正在尝试使用子进程来自动化此操作。
gzszwxb44#
如果您的Excel是Microsoft Excel 97,请尝试以下简单步骤:
将pandas导入为pd
导入xlrd
data = pd.read_html('filename.xls')