在 python 中打开和读取一个 excel .xlsx 文件
Posted
技术标签:
【中文标题】在 python 中打开和读取一个 excel .xlsx 文件【英文标题】:Opening and reading an excel .xlsx file in python 【发布时间】:2013-09-03 04:22:42 【问题描述】:我正在尝试使用 python 打开一个 excel .xlsx 文件,但无法找到方法,我尝试使用 pandas 但它想要使用一个名为 NumPy 的库我尝试安装 numpy 但是它仍然找不到numpy。
我也尝试过使用 xlrd 库,但得到以下回溯:
Traceback (most recent call last):
File "C:\test.py", line 3, in <module>
book = open_workbook('test.xlsx')
File "C:\Python27\lib\site-packages\xlrd\__init__.py", line 370, in open_workbook
biff_version = bk.getbof(XL_WORKBOOK_GLOBALS)
File "C:\Python27\lib\site-packages\xlrd\__init__.py", line 1323, in getbof
raise XLRDError('Expected BOF record; found 0x%04x' % opcode)
XLRDError: Expected BOF record; found 0x4b50
我认为这是因为 XLRD 无法读取 .xlsx 文件?
有人有什么想法吗?
编辑:
import csv
with open('test.csv', 'rb') as csvfile:
data = csv.reader(csvfile, delimiter=',')
for row in data:
print "------------------"
print row
print "------------------"
for cell in row:
print cell
【问题讨论】:
xlrd
支持xlsx
,尝试升级:pip install xlrd --upgrade
。
@alecxe 感谢您的回复,我目前正在尝试。我也在查看导出到 csv 的路线。
你最好为新问题创建一个单独的线程,恕我直言。
如果您需要多次执行此操作,最好花时间设置numpy
和pandas
。使用pandas
读取大多数 excel 文件是单行作业 + 之后需要做的任何修改。
【参考方案1】:
也许您可以将 .xlsx 导出为 .csv 文件?
那你可以试试:
import csv
with open('file.csv','rb') as file:
contents = csv.reader(file)
[x for x in contents]
这可能有用: http://docs.python.org/2/library/csv.html#csv.reader
希望有帮助!
编辑:
如果你想定位一个特定的单元格,比如 F13,你可以创建一个像矩阵一样的嵌套列表,它们引用每个元素:
import csv
with open('file.csv','rb') as file:
contents = csv.reader(file)
matrix = list()
for row in contents:
matrix.append(row)
然后使用 matrix[5][12]
访问 F13。
P.S.:我没有测试这个。如果“行”是一个以每个单元格为元素的列表,则继续将所有行附加到矩阵中,因此第一个索引是行号,第二个是列号。
【讨论】:
是的,我沿着这条路线走的同时,另一方面,问题是我正在努力在我编辑的每一行/单元格中找到我需要的数据我的原始帖子用我之前做的 如果你想访问矩阵中的一个特定单元格,你可以试试我上面的编辑。【参考方案2】:您似乎使用的是 Linux 发行版。我也有同样的问题,这不会发生在“xlwt”库中,而只有“xlrd”才会发生。我所做的不是解决此问题的正确方法,但它暂时使事情正常运行,希望很快能得到该问题的答案;我已经在 Windows 上安装了“xlrd”,然后取出文件夹并将其粘贴到 Linux 的我的 python 代码所在的目录并且它工作正常。
【讨论】:
【参考方案3】:因为我知道其他人也会阅读这篇文章 -
您可以安装以下模块(它不会自动安装) https://pypi.python.org/pypi/openpyxl
您可以阅读以下内容以了解如何使用它
https://automatetheboringstuff.com/chapter12/
【讨论】:
以上是关于在 python 中打开和读取一个 excel .xlsx 文件的主要内容,如果未能解决你的问题,请参考以下文章