如果值相等,我只是想删除它。我认为代码进一步解释。 我看过一些关于这个主题的帖子,但我不明白,它是关于以特殊顺序删除一个单元格(数字)。我试图删除一个值,如果它等于工作表'关键字头脑风暴'中列表中的元素。
代码: 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
我希望你们能提供帮助,如果你有关于删除元素的建议或网站,那就太好了。
最诚挚的问候 KaanDev
答案 0 :(得分:0)
我假设你要删除一个单元格值,即如果cell.value
与trashcanList
或brainstormList
中的元素匹配,则将其设为空。
基于以上假设,以下是上面说明的示例。我相信您将能够使用逻辑/代码来满足您的确切需求。
我们可以使用openpyxl
模块来操作xls
或xlsx
个文件。
有关openpyxl here的更多信息,请参阅。
我创建了一个文件test.xlsx
(见图),其中包含两列(1,2)中的数据。
import openpyxl
wb = openpyxl.load_workbook(filename = 'test.xlsx')
sheet = wb['Keyword Brainstorm']
我们将wb
句柄和工作表的工作簿读到sheet
。
接下来,基于假设,我创建了两个静态列表,其数据如下所示。
trashcanList = ['big', 'fox']
brainstormList = ['white', 'bear']
接下来,我们在工作表中获得最大行数和列值(以迭代行/列动态)。
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
中删除列表中的值(替换为空白)。