我不知道为什么我无法导入.ods文件

时间:2018-04-14 10:18:10

标签: python python-3.x xlsx xlrd ods

我不能使用Python包“xlrd”。

我想处理excel数据并准备ods文件并保存在有python文件的目录中。 我试图导入ods文件,但发生了以下错误。

Python代码

import xlrd

book = xlrd.open_workbook("lung.ods")

ERROR

 In [21]: runfile('/home/****/Desktop/working/survival10.py', wdir='/home/****/Desktop/working')
Traceback (most recent call last):

 File "<ipython-input-21-7a27e6491452>", line 1, in <module>
runfile('/home/****/Desktop/working/survival10.py', wdir='/home/****/Desktop/working')

File "/home/****/anaconda3/lib/python3.6/site-packages/spyder/utils/site/sitecustomize.py", line 705, in runfile
execfile(filename, namespace)

File "/home/****/anaconda3/lib/python3.6/site-packages/spyder/utils/site/sitecustomize.py", line 102, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)

File "/home/****/Desktop/working/survival10.py", line 16, in <module>
book = xlrd.open_workbook("lung.xlsx")

File "/home/****/anaconda3/lib/python3.6/site-packages/xlrd/__init__.py", line 150, in open_workbook
raise XLRDError('Openoffice.org ODS file; not supported') # in the xlsx's case

XLRDError: Openoffice.org ODS file; not supported

然后我将文件从ods类型更改为xlsx类型并对其进行编码。

book = xlrd.open_workbook("lung.xlsx")

但发生了同样的错误。 文件的传递是“/ home / **** / Desktop / working”

我正在使用Anaconda3,Python 3.6并且已经安装了模块“xlrd”。

请告诉我这个问题是什么。

2 个答案:

答案 0 :(得分:4)

这是使用Pandas的不错选择,这是处理表格数据的好方法。

只需安装odfpypandas软件包(使用pip install ...等),然后将Pandas的read_excel()函数与engine='odf'选项一起使用。例如:

import pandas as pd
df=pd.read_excel('lung.ods', engine='odf')

请参见https://pandas.pydata.org/pandas-docs/stable/user_guide/io.html#opendocument-spreadsheets

答案 1 :(得分:1)

.ods 后缀表示您的电子表格文件是使用 OpenOffice LibreOffice 创建的。

您有两个选项:

您可以在 OpenOffice / LibreOffice 中打开文件,,但将其另存为 Excel 文件(另存为。 即可。之后,您应该能够使用 xlrd 处理已保存的文件。

或者,不是使用 xlrd ,而是查找一个Python包,可以处理 .ods 文件。您可能想要搜索https://pypi.org/