Я использую приведенный ниже код для обновления файла excel (.xlsm) и копирования некоторых значений из него в некоторые другие позиции в том же файле. Здесь я использую две функции для копирования и вставки необходимого диапазона ячеек из одной позиции в другой и хотите скопировать ячейки с полным шрифтом и границей
мой код выглядит как
wb=load_workbook('Excel.xlsm',read_only=False,keep_vba=True)
ws=wb['K0 Reg Patch Util']
def copyRange(startCol,startRow,endCol,endRow,sheet):
rangeSelected=[]
fontSelected=[]
borderSelected=[]
for i in range(startRow,endRow+1,1):
rowSelected=[]
font=[]
border=[]
for j in range(startCol,endCol+1,1):
rowSelected.append(sheet.cell(row=i,column=j).value)
font.append(sheet.cell(row=i,column=j).font)
border.append(sheet.cell(row=i,column=j).border)
rangeSelected.append(rowSelected)
fontSelected.append(font)
borderSelected.append(border)
return rangeSelected,fontSelected,borderSelected
def pasteRange(startCol,startRow,endCol,endRow,sheet,copiedData,fontData,borderData):
countRow=0
for i in range(startRow,endRow+1,1):
countCol=0
for j in range(startCol,endCol+1,1):
sheet.cell(row=i,column=j).value=copiedData[countRow][countCol]
sheet.cell(row=i,column=j).font=fontData[countRow][countCol]
sheet.cell(row=i,column=j).value=borderData[countRow][countCol]
countCol+=1
countRow+=1
copiedData=[]
fontData=[]
borderData=[]
copiedData,fontData,borderData=copyRange(2,56,4,66,ws)
startC=ws.max_column+1
endC=startC+2
startR=3
endR=13
pasteRange(startC,startR,endC,endR,ws,copiedData,fontData,borderData)
wb.save('Excel.xlsm')
После этого, когда я запускаю программу, я получаю сообщение об ошибке -
Файл "ReadExcel.py", строка 91, в
pasteRange (startC, startR, ENDC, EndR, WS, copiedData, fontData, borderData)
Файл "ReadExcel.py", строка 73, в pasteRange
sheet.cell (строка = я, колонка = J) .font = fontData [countRow] [countCol]
Файл> "/nfs/sc/proj/skx/skx_val356/rsingh/Patch_Proj/Patch_Project_Files/GUI/VGUI/venv/lib/python3.6/site-packages/openpyxl/styles/styleable.py", строка 24, в __set__
setattr (instance._style, self.key, coll.add (value))
Файл "/ nfs / sc / proj / skx / skx_val356 / rsingh / Patch_Proj / Patch_Project_Files /GUI/VGUI/venv/lib/python3.6/site-packages/openpyxl/utils/indexed_list.py", строка 48, в добавлении
self.append (значение)
Файл "/nfs/sc/proj/skx/skx_val356/rsingh/Patch_Proj/Patch_Project_Files/GUI/VGUI/venv/lib/python3.6/site-packages/openpyxl/utils/indexed_list.py", строка 43, в приложении
если значение не в self._dict:
TypeError: unhashable тип: 'StyleProxy'
Может кто-нибудь указать мне, как убрать эту ошибку и какую ошибку я делаю. Я даже добавил хеш-функцию в proxy.py, как было предложено в некотором посте.
Пожалуйста, устраните эту ошибку