python xlutils / xlwt / xlrd / excel – non è ansible modificare i fogli di lavoro copiati

Sto cercando di copiare un foglio di lavoro con xlutils. Il codice riportto di seguito copia con successo il primo foglio di lavoro e aggiunge 2 copie, ma quando scrivo a ciascun foglio di lavoro si applicano le modifiche a tutte le copie di fogli di lavoro e anche l'originale.

Quindi l'esempio sotto, il valore della row 3, colonna 0/1 su tutti e tre i fogli è "test2".

Qualcuno sa cosa sto facendo male qui? Ho anche provato ad aggiungere each clone, quindi provando una cartella di lavoro.get_sheet (id) .write (x, x, x) e la stessa cosa succede.

workbook = xlutils.copy.copy(xlrd.open_workbook(xls_out, formatting_info=True)) tmp_workbook = copy(workbook) copied_sheet = copy(tmp_workbook.get_sheet(0)) copied_sheet.set_name("tmpsheet") copied_sheet.write(3, 0, 'test1') copied_sheet.write(3, 1, 'test1') workbook._Workbook__worksheets.append(copied_sheet) copied_sheet = copy(tmp_workbook.get_sheet(0)) copied_sheet.set_name("tmpsheet2") copied_sheet.write(3, 0, 'test2') copied_sheet.write(3, 1, 'test2') workbook._Workbook__worksheets.append(copied_sheet) workbook.save(xls_out) 

Fai uso di deepcopy. Copiare i riferimenti degli inserti agli oggetti trovati nell'originale e la profondità crea un nuovo composto e quindi inserisce le copie degli oggetti trovati nell'originale.