无法移除存在的sheet,每次都是创建一个sheet的副本

问题

运行下方代码,存在P160,P161和P164sheet页后,不仅没有删除存在的三个sheet页,还会创建新的P1601,P1611和P1641。再运行一次,就会创建P1602,P1612和P1642,以此类推。

报错信息

def test_step1():
     # file_path = os.path.abspath("bb.xlsx") 
     sheet_list = ["P160","P161","P1ó4"] 
     for i in range(int(len(sheet_list))):
          # print(i)
          sheet = sheet_list[i] print(sheet)
       if os.path.exists("../bb.xlsx"):
          file_path ="../bb.xlsx"
          workbook = 
             openpyxl.load_workbook(file_path) 
          sheet_names = workbook.sheetnames
          if sheet in sheet_names:
             try:
                   print("sheet=",sheet) print(type(sheet)) 
                   print(sheet_names)
                   print(type(sheet_names))
                   workbook.remove(workbook[sheet])
                   # del workbook[sheet]
                   workbook.save(file_path) 
             except permissionError as e:
                    print("!!!手动关闭bb.xlsx文件:",e)
             workbook.close()
             print(f"表存在,{sheet}移除成功") 
             try:
                   workbook.create_sheet(sheet)
                   print(workbook.create_sheet(sheet)) 
                   workbook.save(file_path) 
             except PermissionError as e:
                   print("!!!手动关闭bb.xlsx文件:",e)
             workbook.close()
             print(f"表存在,{sheet}先删后增成功") 
         else:
             workbook.create_sheet(sheet) 
             workbook.save(file_path) 
             workbook.close()
             print("表存在,sheet创建成功")



后半部分代码运行是没问题的。若Excel不存在,就创建新的bb.xlsx表和P160,P161以及P164的sheet页

环境

代码格式化一下吧,完全看不清

转换了,一提交,就又成这个样子了

这样格式化下

print("123)

image

`````````这样打,这个符号在按键1左侧

可以了

你这代码没报错吗,逗号是中文的

英文的啊,可能微信提取中文,提取有误

你的需求是如果sheet存在,就删除新建 对吗

对的,删除并新建好几个sheet

这的问题,运行到这一步的时候,sheet已经创建成功了,但是你又写了print,print的时候,创建sheet的代码又执行了一遍,再次创建了一个相同名字的sheet,比如创建的160,再次创建,excel自动变成了1601

火眼金睛啊,谢谢老师!解决了。