Python将excel xlsx转换(读取和保存)为xls

2024-09-23 20:24:16 发布

您现在位置:Python中文网/ 问答频道 /正文

如何在保留Excel文件格式的同时将现有的xlsxExcel文件转换为xls?我用的是Python3,所以我不确定我能不能用xlutils。。。我无法通过conda install xlutils安装它,因为有很多不兼容的地方。所以现在我使用的代码没有xlutils.copy()

import xlrd, xlwt

wb = xlrd.open_workbook(my_xlsx_excel_file)
# wb = xlutils.copy(wb)
wb.save(my_xlsx_excel_file[:-1])

我得到这个错误:

AttributeError: 'Book' object has no attribute 'save'

谢谢你!


Tags: 文件mysavexlsxxlsexcelcondapython3
2条回答

您可以尝试使用openpyxl,并通过conda install openpyxl安装它 它应该和Python3.5一起工作* 那么下面的代码可能可以工作

import openpyxl as xl
wb = xl.load_workbook("yourfile.xlsx")
wb.save("file.xls")

您可以从openpyxl文档中了解更多信息,https://openpyxl.readthedocs.io/en/default/

享受吧!

首先:为什么要转换为.xls?这通常表明您正在使用过时的工具,最好使用更新的工具,而不是将数据转换为旧格式。

但是,如果您确实需要在保留格式的同时转换为.xls,那么此时您唯一现实的选择就是使用Excel本身。你没有说你在使用哪个平台,但是如果是Windows或者Mac,并且你已经安装了Excel,那么实现Excel自动化的最直接的方法可能是xlwings原则上,这将允许您使用Python在Excel中打开.xlsx文件(一个实际运行的microsoftexcel实例),并将“另存为”保存到.xls文件。

我之所以说“原则上”,是因为我个人不知道如何在xlwings中做到这一点。(我不是真的使用那个包)在封面下,xlwings依赖于Windows上的pywin32和Mac上的appscript,所以你可以直接使用那些较低级别的包。

例如,如果您在Windows上,可以执行以下操作:

from win32com.client import Dispatch

xl = Dispatch('Excel.Application')
wb = xl.Workbooks.Add(my_xlsx_excel_file)
wb.SaveAs(my_xlsx_excel_file[:-1], FileFormat=56)
xl.Quit()

56是一个magic constant,表示Excel 97-2003格式(用于Windows)。

当然,在带有appscript的Mac上应该有相应的方法来实现这一点。只需注意,文件格式常量may be different比Windows上的要多。

相关问题 更多 >