python - python逐行读取.xls文件数据

标签 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 = 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/

相关文章:

python - django:从另一个模型中的 url 保存图像

python - django如何将字段序列化为DateTimeRangeField

sql - Excel Vlookup 太慢

excel - 在 Excel 中启用 WrapText 时,运行 ClearContents 的性能非常慢

python - 如何舍入破折号表中的小数位

python - 使用 pyJWT 过期时间

python - 如何根据另一列的 NaN 值在 pandas 数据框中设置值?

django - DRF Serializer 可读 - 可写非模型字段

C#——高效写入Excel文件内容

python - 为什么 'DataFrame' 对象没有属性 'assign' ?