0

我有一个 Excel 工作簿,我想滚动浏览第一列的内容并将每个唯一值写入一个新工作簿,即没有重复项。

这段代码,不检查重复,工作正常:

def get_data_from_sheet(sheet_index, start_row, end_row, count):
for row in range(start_row, end_row):
    cell = sheet.cell(row,0)
    count = count+1 
    if row != start_row:
        sheet1.write(count,0,cell.value)
return count

但是,当我尝试添加条件来检查重复项时,没有任何内容写入 Excel 文件:

from django.utils.encoding import smart_str

def get_data_from_sheet(sheet_index, start_row, end_row, count):
for row in range(start_row, end_row):
    cell = sheet.cell(row,0)
    count = count+1 
    if row != start_row:
        list.append(smart_str(cell.value))
        if smart_str(cell.value) not in list:
            sheet1.write(count,0,cell.value)
return count

这让我感到困惑,因为列表包含以下值:

在此处输入图像描述

那么我做错了什么?谢谢!

4

1 回答 1

2

通过调用这个:

    list.append(smart_str(cell.value))

在这之前:

    if smart_str(cell.value) not in list:

您确定测试将始终False为 ,因为您将值附加到列表中,然后测试它不在列表中。你这里的逻辑有问题。

注意:避免使用内置类型调用你的变量,调用你的列表对象lst或其他任何有意义但不要list用作变量的东西。

于 2012-05-19T14:20:15.987 回答