2015-06-22 141 views
1

我有一个Web应用程序(基于Django 1.5),其中用户上传电子表格文件。如何在Python中读取/写入xlsx和xls文件?

我一直在使用xlrd来处理xls文件,并调查了openpyxl声称支持xlsx/xlsm文件。

那么有没有一种常见的方式来读取/写入xls和xlsx文件?

另一种选择可能是将上传的文件转换为xls并使用xlrd。为此,我查看了gnumericssconvert,这将是有利的,因为我用xlrd和I编写的所有现有代码都不必更改现有的代码库。

因此,我应该更改我使用的库还是使用转换解决方案?

在此先感谢。

+0

检查xlwings是否适合您的目的。 (http://xlwings.org/) –

回答

1

xlrd可以读取xlsx和xls文件,因此使用它可能是最简单的。对xlsx的支持并不像openpyxl那么广泛,但应该足够了。

将xlsx转换为xls会有丢失信息的风险,因为xlsx文件可能会大得多。

+0

当我用xlrd解析我的xlsx文件时,它抛出了一个断言错误,本质上排除了xlrd。 – aliasav

+0

我对xlrd了解不多。如果以优化模式运行Python,则可能能够解决断言错误。你可能想提交一个错误。虽然拉请求会更好。 您可以尝试通过无头OpenOffice运行文件,以将它们归一化为一种格式或另一种格式。 否则,你可能不得不使用这两个库。这些API是相似的,但在一些重要领域有所不同:值得注意的是,openpyxl使用1-索引。 –

+0

原来,openpyxl与xls文件不兼容,我猜想转换是我现在最好的选择,但是我将不得不在一天之内将xlrd代码移植到openpyxl。 – aliasav