我想使用任何特定单元格的值逐行读取.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)这样的条件来获取整行 请帮我理清一下。
答案 0 :(得分:2)
您尝试执行的操作称为“搜索”,但您无法使用xlrd
执行此操作。
它不提供搜索功能。您必须循环遍历数据并自行搜索。
这很简单,但不要忘记性能。例如,如果您计划多次在工作表中搜索某些内容,而不是考虑在首次查找后缓存已分析的数据,并将其保存到内存中以供下次使用。