Python 逐行读取.xls文件数据

Python 逐行读取.xls文件数据,python,django,excel,xlrd,Python,Django,Excel,Xlrd,我想使用任何特定单元格的值逐行读取.xls文件数据 假设有一个主列是ID、姓名、地址、年龄、标记、分支,这些是主字段。 现在我想访问(i==4)的整行。 我想使用特定单元格的值访问该行 我尝了一些 import xlrd workbook = xlrd.open_workbook('sheet2.xls') worksheet = workbook.sheet_by_name('Sheet1') num_rows = worksheet.nrows - 1 num_cells = workshe

我想使用任何特定单元格的值逐行读取.xls文件数据

假设有一个主列是ID、姓名、地址、年龄、标记、分支,这些是主字段。 现在我想访问(i==4)的整行。 我想使用特定单元格的值访问该行

我尝了一些

import xlrd
workbook = xlrd.open_workbook('sheet2.xls')
worksheet = workbook.sheet_by_name('Sheet1')
num_rows = worksheet.nrows - 1
num_cells = worksheet.ncols - 1
curr_row = -1
while curr_row < num_rows:
    curr_row += 1
    row = worksheet.row(curr_row)
    print 'Row:', curr_row
    curr_cell = -1
    while curr_cell < num_cells:
        curr_cell += 1
        # Cell Types: 0=Empty, 1=Text, 2=Number, 3=Date, 4=Boolean, 5=Error, 6=Blank
        cell_type = worksheet.cell_type(curr_row, curr_cell)
        cell_value = worksheet.cell_value(curr_row, curr_cell)
        print ' ', cell_type, ':', cell_value
因此,它以这种格式打印整行。但我想按值访问该行。 我们可以使用cell_value=worksheet.cell_value(1,1)获取单元格值,但如何获取该单元格值的行号。我想使用(id==5)或(age==17)这样的条件得到整行
请帮我整理一下。

您试图做的是所谓的“搜索”,您不能用
xlrd
来做这件事。 它不提供搜索功能。您必须在循环中迭代数据并自己搜索


这很简单,但别忘了性能。例如,如果您计划在多页中搜索某个内容,则不要考虑在第一次查找之后缓存解析的数据,并将其保存到下一次的内存中。

查看Python的<代码> CSV < /代码>模块。它对Excel文件有一些支持,可以将行输出为元组或dict,后者允许您执行
行['id']
Row: 8
        2 : 96.0
        1 : Robert
        1 : Honore
        1 : 607-829-7943
        2 : 56.0
        1 : Faye
        1 : Wight
        1 : Faye.A.Wight@mailinator.com