搜索Excel工作表并使用Python打印数据

时间:2015-07-23 17:48:56

标签: python excel

我正在尝试使用Python搜索Excel文件并打印与用户搜索的单元格值相对应的数据。

我有一个Excel文件,其中包含一列中美国每个邮政编码的列表,接下来的四列是与该邮政编码相关的信息,例如它所在的州,在那里运送物品的价格,等等。我希望用户能够搜索特定的邮政编码,并让程序打印出相应单元格中的信息。

这是我到目前为止所做的:

from xlrd import open_workbook

book = open_workbook('zip_code_database edited.xls',on_demand=True)
prompt = '>'
print "Please enter a Zip Code."
item = raw_input(prompt)
sheet = book.sheet_by_index(0)
for cell in sheet.col(1): #
    if sheet.cell_value == item:
        print "Data: ",sheet.row

非常感谢任何和所有帮助!

2 个答案:

答案 0 :(得分:0)

EVP_Cleanup()是一个永远不会等于sheet.cell_value的函数。您应该尝试使用item

进行访问

示例 -

cell.value

答案 1 :(得分:0)

我没有使用你正在使用的模块xlrd,但是如果你只是使用常规python dictionary来完成这项工作并且创建它,你似乎可以让自己变得更容易包含加载字典的小模块。我假设您熟悉python dictionary以获得以下解决方案。

您将使用邮政编码作为键,将其他4个数据字段用作字典的值(我假设下面是.csv文件,但您也可以使用制表符分隔或其他单个空格)。调用以下文件make_zip_dict.py

zipcode_dict = {}
myzipcode = 'zip_code_database edited.xls'

with open(myzipcode, 'r') as f:

    for line in f:

        line     = line.split(',')  # break the line into the 5 fields
        zip_code = line[0] # assuming zips are the first column 
        info     = ' '.join(line[1:])  # the other fields turned into a string with single spaces

        # now for each zip, enter the info in the dictionary:
        zipcode_dict[zip_code] = info

将此文件保存到与'zip_code_database edited.xls'相同的目录中。现在,要以交互方式使用它,导航到目录并启动python交互式会话:

>>> import make_zip_dict as mzd  # this loads the module and the dict
>>> my_zip = '10001'  # pick some zip to try out
>>> mzd.zipcode_dict[my_zip]  # enter it into the dict
'New York City NY $9.99 info4'  # it should return your results

您可以通过输入所需的邮政编码在命令行上以交互方式处理此问题。你可以添加一些花哨的花哨和口哨,但这会很快吐出信息,它应该非常轻巧和快速。