Excel Spreadsheet读取特定的列python

时间:2014-06-10 16:55:20

标签: python excel spreadsheet xlrd

我知道这对某些人来说可能相当简单,买我是python的新手。

我一直在寻找一种专门为Excel电子表格中的列编写程序的方法。 一个例子(摘自上一个问题)

Name Date Age Sex Color
Ray  May  25.1 M  Gray
Alex Apr  22.3 F  Green
Ann  Jun  15.7 F  Blue

当我输入Alex时,我需要在他的行中显示所有Alex的信息。我使用的电子表格有数千个名称,第一列中的所有内容都不同。我已经将xlrd和电子表格导入到python(2.7)。

请帮助!

我执行问题的代码。

from collections import namedtuple  
Entry = namedtuple('Entry', 'FQDN Primary Secondary')  
import xlrd 
file_location = "/Users/abriman26/Desktop/Book1.xlsx"  
ss_dict = {}  
spreadsheet = file_location = "/Users/abriman26/Desktop/Book1.xlsx"  
for row in spreadsheet:
    entry = Entry(*tuple(row))
    ss_dict[entry.Name] = entry

和错误消息

Traceback (most recent call last):
File "<pyshell#114>", line 2, in <module>
entry = Entry(tuple(row))
TypeError: __new__() takes exactly 6 arguments (2 given)

1 个答案:

答案 0 :(得分:1)

我假设您的问题更多的是针对如何将电子表格中的信息存储在内存中,以便您可以快速查找数据而不是如何使用xlrd库。如果不是这种情况,请优化您的问题,并提供您尝试过的代码示例。

如果列A是键,则创建包含元组或命名元组的字典。

from collections import namedtuple
Entry = namedtuple('Entry', 'Name Date Age Sex Color')

#open the spreadsheet with xlrd or other spreadsheet library and save into variable named "spreadsheet"
#...
ss_dict = {}
for row in spreadsheet:
    entry = Entry(*tuple(row))
    ss_dict[entry.Name] = entry

>> ss_dict['Alex']
Entry(Ann, Jun, 15.7, F, Blue)

如果您知道此人的姓名,这将使您可以快速随机访问电子表格中的条目,特别是如果您有许多条目。