如果单元格等于另一个工作表,是否将其删除?

2024-09-29 13:19:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我只是想删除相等的值。我想代码可以进一步解释。 我看到了一些关于这个主题的帖子,但我不明白,这都是关于删除一个单元格的特殊顺序(数字)。如果某个值等于工作表“Keyword Brainstorm”中列表中的某个元素,则尝试删除该值。在

代码: def checkBrainstormWithTrashcan():

trashcanList = list()
brainstormList = list()

brainstormKeyword = wb['Keyword Brainstorm']

for row in brainstormKeyword.rows:
    for cell in row:
        if cell.value != None:
            brainstormList.append(cell.value)


trashcanKeyword = wb['Trashcan']
for row in trashcanKeyword.rows:
    for cell in row:
        if cell.value != None:
            trashcanList.append(cell.value)

print(brainstormList)
print(trashcanList)

for brain in brainstormList:
    for trash in trashcanList:
        if brain == trash:
            print(brain)
            #trying to remove here. the value of brain is exactly the values 
             wich are equal

我希望你们能帮忙,如果你有关于删除元素的建议或网站,那就太好了。在

谨致问候 卡安德夫


Tags: 代码in元素forifvaluecellkeyword
1条回答
网友
1楼 · 发布于 2024-09-29 13:19:05

我假设您想要删除一个单元格值,也就是说,如果cell.valuetrashcanListbrainstormList中的元素相匹配,则将其设为空。在

基于上述假设,下面是一个例子来说明上述情况。我相信你将能够使用逻辑/代码来满足你的确切需求。在

我们可以使用openpyxl模块来操作xls或{}文件。 有关openpyxl here的详细信息,请参阅。在

我创建了一个文件test.xlsx(请参见图中),其中包含两列(1,2)中的数据。在

import openpyxl

wb = openpyxl.load_workbook(filename = 'test.xlsx')
sheet = wb['Keyword Brainstorm']

我们将工作簿读给wb句柄,工作表读到sheet。在

接下来,基于假设,我创建了两个静态列表,数据如下。在

^{pr2}$

接下来,我们得到工作表中的最大行和列值(使遍历行/列成为动态的)。在

row_count = sheet.max_row
column_count = sheet.max_column

然后我们先遍历行,然后遍历列,检查单元格中的值是否在列表中的任何一个中。如果是,则替换为空白字符。在

for current_row in xrange(1,row_count+1):
    for current_col in xrange(1,column_count+1):
        _cell = sheet.cell(row=current_row, column=current_col)
        if _cell.value in trashcanList or _cell.value in brainstormList:
            _cell.value = ''

最后保存修改后的文件(使用新名称,也可以使用相同的名称,但会覆盖原始内容)。然后关闭文件句柄。在

wb.save('outTest.xlsx')
wb.close() 

结果:
结果,您可以看到从输出文件outtest.xlsx(替换为空白)中删除的列表中的值。在

enter image description here

相关问题 更多 >