使用OpenPyXL复制工作表时无法保留数据验证规则的问题求助
问题原因
OpenPyXL 的 Workbook.copy_worksheet() 方法当前版本仅支持复制单元格值、单元格样式、行高列宽等基础工作表属性,数据验证、条件格式、工作表保护等扩展规则不在默认复制范围内,你没有遗漏配置步骤,该现象属于工具本身的功能限制。
解决方法
完成工作表复制操作后,手动将原工作表的所有数据验证规则批量添加到新工作表即可,修改后的完整代码如下:
from openpyxl import load_workbook wb = load_workbook(filename='BRI.xlsx') templateSheet = wb["1"] print(templateSheet.data_validations) newSheet = wb.copy_worksheet(templateSheet) # 手动同步数据验证规则 for dv in templateSheet.data_validations.dataValidation: newSheet.data_validations.append(dv) print(newSheet.data_validations)
运行后输出的新工作表数据验证计数将和原工作表保持一致,所有下拉列表、校验规则都会正常生效。
如果需要同时同步条件格式规则,可追加以下代码:
# 同步条件格式(可选) for cf in templateSheet.conditional_formatting: newSheet.conditional_formatting.append(cf)
内容的提问来源于stack exchange,提问作者LlamaSkot
相关产品推荐
相关产品推荐

