【问题标题】:Changing multiple sheetnames using openpyxl使用 openpyxl 更改多个工作表名称
【发布时间】:2023-01-12 10:43:55
【问题描述】:

我有一个 excel 文件,其中工作表的名称从 1 到 15

wb.sheetnames = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', ' 12', '13', '14', '15']

我正在尝试使用新工作表名称列表替换现有工作表名称 例如['a', 'b', 'c'...]

这可以使用 for 循环吗?

【问题讨论】:

    标签: python excel for-loop openpyxl


    【解决方案1】:

    一个“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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-05
      • 1970-01-01
      相关资源
      最近更新 更多