问题
运行下方代码,存在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页