我想使用任何特定单元格的值逐行读取 .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
所以我得到这样的输出
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) 之类的条件获取整行 请帮我解决这个问题。
最佳答案
您尝试做的事情称为“搜索”,您不能使用 xlrd
来完成此操作。
它不提供搜索功能。您必须循环遍历数据并自行搜索。
这很简单,但不要忘记性能。例如,如果您打算多次在 sheet 中搜索某项内容,则考虑在第一次查找后缓存解析后的数据,并将其保存到内存中以备下次使用。
关于python - python逐行读取.xls文件数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23966002/