请有人给我一个例子,如何复制 带有样式的整个工作表(来自行和列) 到同一工作簿中的第二个工作表? (也可以在新的工作簿中)
谢谢你。
P.S.:我尝试进行深度复制,但未能保存更改的数据单元格。
目的是:我尝试用我的数据填充一些工作表,第一个工作表是我的模板。
我成功复制了值但只有一些样式。 我使用的是最新版本的 openpyxl,所以请不要使用 1.x 方法。
版本 2.4 将允许您执行此操作:copy_worksheet
>>> source = wb.active
>>> target = wb.copy_worksheet(source)
对于较旧的,您可以从这里
复制源代码更新:您不能简单地将这段代码移植到旧版本库中
你不能轻易做到这一点。最好的方法可能是bug 171
中描述的方法请注意,
copy_worksheet
方法不会复制数据验证。您可以使用 openpyxl 的 add_data_validation
手动执行此操作。一个完整的工作示例:
# Copy worksheet
workbook = openpyxl.load_workbook(source_excel)
sheet_to_copy = workbook[sheet_name]
new_sheet = workbook.copy_worksheet(sheet_to_copy)
new_sheet.title = new_sheet_name
# Copy data validations
for data_validation in sheet_to_copy.data_validations.dataValidation:
new_sheet.add_data_validation(data_validation)
# Save result
workbook.save(source_excel)
我也有同样的问题。我解决了使用复制而不是深度复制。我在这个网站
上找到了解决方案我希望这对你有用!
关于 @charlie-clark 和 @sam 答案上 Openpyxl 存储库的链接,自从存储库从 Bitbucket 移至 Gitlab 以来,这些链接不再起作用。
第 171 期的更新链接是 https://foss.heptapod.net/openpyxl/openpyxl/-/issues/171