【问题标题】:Difficulty with using Lists to search in xlrd使用列表在 xlrd 中搜索的困难
【发布时间】:2013-07-22 19:49:10
【问题描述】:

我正在尝试编写一个程序,该程序从 excel 文件的第一列(姓氏)中获取单元格,并在同一行中与其相邻的单元格的文本中搜索该字符串。

目前,我的代码如下:

    import xlrd
workbook = xlrd.open_workbook("C:\Python27\Doc\Book3.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)
    curr_cell = 2
    while curr_cell < num_cells:
        curr_cell += 1
        cell_value = worksheet.cell_value(curr_row, curr_cell)
sh = workbook.sheet_by_index(0)     
first_col = sh.col_values(2)
second_col = sh.col_values(3)
L = [first_col]
L1 = [second_col]
for i, j in enumerate(L):
    if j in L1[i]:
        print j
    else:
        print 'no'

当我手动生成列表时,我的代码似乎“工作”(即只是 L = ['a', 'b', 'c'] 和 L1 = ['Today a cat a', 'Today b cat b'] 等,但是当我尝试使用 xlrd 创建列表时,我得到的只是一个“否”打印输出,这非常令人困惑。我认为这与列表的方式有关索引或其他与列表大小有关的东西(A 列中有 16,000 个名称,B 列中大约有 5,000,000 个文字)

我们将不胜感激任何可以提供的帮助/提示。我在网络上(以及在此处)看到了很多类似任务的方法,但我不知道如何将不同的方法集成到对我有效的东西中。

非常感谢

【问题讨论】:

    标签: python string list text xlrd


    【解决方案1】:

    试一试:

    import xlrd
    
    workbook = xlrd.open_workbook("input.xls")
    worksheet = workbook.sheet_by_name("Sheet1")
    
    for row in xrange(worksheet.nrows):
        value_first = worksheet.cell_value(row, 0)
        value_second = worksheet.cell_value(row, 1)
        if value_first in value_second:
            print row
        else:
            print 'no'
    

    【讨论】:

    • 哦,你太客气了!我将不得不设置 xlrd 编写器,以便我可以将其放回电子表格中,但这有效!!!!!!我是一名业余爱好者,已经在这里工作了 10 天,这真是太棒了!非常感谢。
    猜你喜欢
    • 2015-11-24
    • 1970-01-01
    • 2015-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多