excel重命名列表中的多个工作表名称

时间:2018-11-15 10:11:00

标签: python excel dataframe xlsx xlrd

我有多个工作表从数据帧转换成Excel。我已将工作表名称收集在一个列表中。我想将工作表名称更改为收集的重复列值,如下所示。 这是我的代码:

dups = df.set_index('Group').index.get_duplicates() 

从数据框转换为excel后,我将工作表名称收集在一个列表中。

xls = pd.ExcelFile('filename', on_demand=True)
sheets=xls.sheet_names

我还使用了如下所示的内容:

for i in group: #names to be renamed, collected as list 
    wb=openpyxl.load_workbook('file.xlsx')
    worksheet = wb.get_sheet_names()
    worksheet.title = i
wb1.save('file.xlsx')

但是,我得到了AttributeError:'list'对象没有属性'title'。

现在,我想将工作表重命名为dups值。 我想知道是否有可能。 很高兴听到一些建议。

2 个答案:

答案 0 :(得分:1)

您可以使用openpyxl

import openpyxl

file_loc = 'myexcel.xlsx'

workbook = openpyxl.load_workbook(file_loc)
worksheet = workbook.get_sheet_by_name('Sheet1')
worksheet.title = 'MySheetName'
workbook.save(file_loc)

您可以循环运行以重命名所有工作表。让我知道是否有帮助。

答案 1 :(得分:0)

可以使用 for sheet in wb

迭代工作簿

这是一个例子:

import openpyxl
import os
    
os.chdir('C:\\Users\\Vahan\\Desktop\\xlsx')
wb = openpyxl.load_workbook('example.xlsx')

for sheet in wb: # or wb.worksheets
    sheet.title = 'RenamedSheets'
    
wb.save('example.xlsx')

此功能可以帮助您实现您的目标。