求解:Openpyxl 修改sheet标签页时,报错只读模式

import openpyxl
import os 

class Excel_create:
    def __init__(self,filepath):
        self.wb = filepath
        self.wb1 = openpyxl.Workbook() 
    def creatExel(self,username,classname,age):
    # 获取被激活的 worksheet
        sh1 = self.wb1.active
        #写入数据到单元格
        sh1.cell(1,1).value = username
        sh1.cell(1,2).value = classname
        sh1.cell(1,3).value = age
        #保存excel
        self.wb1.save(self.wb)


    
class Excel:
    def __init__(self,filepath,sheet):
        #获取工作簿
        self.webname = filepath
        self.wb = openpyxl.load_workbook(filepath)
        #获取工作表
        self.sh = self.wb[sheet]
        self.datalist = []
        #获取所有sheet页表名
        self.sheet_names = self.wb.worksheets
        self.sheet_index = self.wb.index(self.sh)
        

    def readExcel(self):
        #获取单元格中的最大行及最大列
        rows = self.sh.max_row
        cols = self.sh.max_column
        print(f'行数:{rows},列数:{cols}')
        #获取列表中所有数据
        for row in range(1,rows+1):
            for col in range(1,cols+1):
                value = self.sh.cell(row,col).value
                self.datalist.append(value)
        return self.datalist
    
    def edietExcel(self,row,column,value):
        self.sh.cell(row,column).value = value
        self.wb.save(self.webname)


    def edietTable(self,numbers,name):
        self.wb.index(self.sh)
        # self.wb[self.sheet_names[numbers]].title = name
        self.sheet_names[numbers].title = name
        self.wb.save(self.webname)

        
        

# Excel_add = Excel_create('234.xlsx')
# Excel_add.creatExel('username','classname','age')
Excel_Read = Excel('234.xlsx','花名册')
Excel_Read.edietTable(0,'12')
a = Excel_Read.sheet_names
print(a)

报错:面向对象编程(一)/Code/作业/test_05_01.py", line 54, in edietTable
    self.wb.sheetnames[0].title = '花名册'
AttributeError: 'str' object attribute 'title' is read-only

你可能感兴趣的:(excel,python)