逐行读取.xls文件数据

时间:2014-05-31 03:07:20

标签: python django excel xlrd

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

考虑有一个主要的列是ID,Name,Address,Age,Marks,Branch这些是主要字段。 现在我想访问其整数行(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

所以我得到了像

这样的输出
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

所以它以这种格式打印整行。但我想按值访问行。 我们可以使用cell_value = worksheet.cell_value(1,1)来获取单元格值,但是如何获取该单元格值的行号。我希望使用像(id == 5)或(age == 17)这样的条件来获取整行 请帮我理清一下。

1 个答案:

答案 0 :(得分:2)

您尝试执行的操作称为“搜索”,但您无法使用xlrd执行此操作。 它不提供搜索功能。您必须循环遍历数据并自行搜索。

这很简单,但不要忘记性能。例如,如果您计划多次在工作表中搜索某些内容,而不是考虑在首次查找后缓存已分析的数据,并将其保存到内存中以供下次使用。