python xlutils / xlwt / xlrd / excel – 不能修改复制的工作表

我正在使用xlutils和复制工作表。 下面的代码成功复制第一个工作表并添加2个副本,但是当我写入到每个工作表时,它会将更改应用于所有工作表副本以及原始。

所以下面的例子中,所有3个工作表中第3行,第0/1列的值是“test2”。

有谁知道我在这里做错了吗? 我也尝试添加每个克隆,然后尝试一个workbook.get_sheet(id).write(x,x,x)和完全相同的事情发生。

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) 

利用深度拷贝。 将插入引用复制到在原始对象中find的对象,deepcopy将构造一个新的复合物,然后将副本插入到原始对象中。