[英]Opening and reading an excel .xlsx file in python
我正在嘗試使用python打開一個excel .xlsx文件,但我無法找到辦法,我嘗試使用pandas但是它想要使用一個名為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
也許您可以將.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
希望有所幫助!
編輯:
如果你想找到一個spectific單元格,比如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。
PS:我沒試過這個。 如果“row”是一個列表,其中每個單元格都作為一個元素,則繼續將所有行追加到矩陣中,因此第一個索引是行號,第二個索引是列號。
看來你是在Linux發行版上。 我也有同樣的問題,“xlwt”庫不會發生這種情況,但只能使用“xlrd”。 我所做的並不是解決這個問題的正確方法,但它使得事情暫時有效,希望很快就能回答這個問題;我在Windows上安裝了“xlrd”並將文件夾粘貼在Linux上我的python代碼所在的目錄,它的工作原理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.