一个“for”循环就足够了。
在最简单的形式中,第一个代码示例将循环遍历工作表名称列表,并根据工作簿中存在的每一个进行更改,下一个字母从“a”开始。
如果工作簿中的工作表杂乱无章并且您希望特定工作表具有特定名称,这可能会成为问题。
from openpyxl import load_workbook
excelfile = 'example.xlsx'
wb = load_workbook(excelfile)
for enum, sheet in enumerate(wb.sheetnames,97):
new_sheet_name = chr(enum)
print(f'Changing Sheet name {sheet} to {new_sheet_name}')
wb[sheet].title = new_sheet_name
wb.save('out_' + excelfile)
下面的代码示例确保工作表被命名为您想要的名称。
在这种情况下,现有名称映射到字典“new_tabname_dict”中的新名称。然后使用现有名称在字典中查找新名称并将其应用于工作表。
...
new_tabname_dict = {'1': 'a', '2': 'b', '3': 'c', '4': 'd', '5': 'e',
'6': 'f', '7': 'g', '8': 'h', '9': 'i', '10': 'j',
'11': 'k', '12': 'l', '13': 'm', '14': 'n', '15': 'o'
}
for sheet in wb.sheetnames:
new_sheet_name = new_tabname_dict[sheet]
print(f'Changing Sheet name {sheet} to {new_sheet_name}')
wb[sheet].title = new_sheet_name
wb.save('out_' + excelfile)