打开并阅读python中的excel .xlsx文件
我试图用python打开一个excel .xlsx文件,但我无法find一个方法来做到这一点,我试过使用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
也许你可以导出你的.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,你可以创build一个像matrix一样的嵌套列表,并且它们引用每个元素:
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:我没有testing这个。 如果“行”是每个单元格作为一个元素的列表,你不断追加所有行到matrix,所以第一个索引是行号,第二个是列号。
看来你是在一个Linux发行版。 我也有同样的问题,这不会发生“xlwt”库,但只有“xlrd”。 我所做的并不是解决这个问题的正确方法,但它使得事情暂时有效,希望能很快回答这个问题;我已经在Windows上安装了“xlrd”,并将该文件夹粘贴到Linux中目录,我的Python代码是和它的工作。