在python中打开并读取excel .xlsx文件

Ryf*_*lex 6 python excel xlrd python-2.7 pandas

我正在尝试使用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
Run Code Online (Sandbox Code Playgroud)

我假设是因为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
Run Code Online (Sandbox Code Playgroud)

Tha*_* MG 11

也许您可以将.xlsx导出为.csv文件?

然后你可以尝试:

import csv
with open('file.csv','rb') as file:
    contents = csv.reader(file)
    [x for x in contents]
Run Code Online (Sandbox Code Playgroud)

这可能很有用: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)
Run Code Online (Sandbox Code Playgroud)

然后使用matrix[5][12].访问F13 .

PS:我没试过这个.如果"row"是一个列表,其中每个单元格都作为一个元素,则继续将所有行追加到矩阵中,因此第一个索引是行号,第二个索引是列号.