我正在尝试使用 python 的
openpyxl
将一组 Excel 单元格移动到工作簿中的另一个位置,并偏移一些列。 源工作表有一些使用条件格式的单元格。
好消息是,
move_range
完成了大部分工作。 但我一生都无法弄清楚如何复制/移动条件格式;它只是完全迷失了。
有人有想法吗? 谢谢你, /YGA
很不幸,
openpyxl
没有提供复制单个单元格条件格式的直接方法。
move_range
方法主要用于移动单元格内容和样式,但它并不总是能正确地处理条件格式,尤其是在涉及到偏移和不同目标区域的情况下。
不过,你可以尝试以下两种方法来实现你的目标:
方法一:使用
copy()
方法和循环
这种方法需要你遍历源单元格范围,并将每个单元格的条件格式复制到目标单元格。
from copy import copy
from openpyxl import load_workbook
# 加载工作簿
wb = load_workbook("your_file.xlsx")
ws = wb["Sheet1"]
# 定义源和目标区域
source_range = ws["A1:A10"]
target_range = ws["B1:B10"]
# 遍历单元格并复制条件格式
for source_row, target_row in zip(source_range, target_range):
for source_cell, target_cell in zip(source_row, target_row):
# 复制条件格式
target_cell.conditional_formatting = copy(source_cell.conditional_formatting)
# 保存工作簿
wb.save("your_file.xlsx")
方法二:使用
conditional_formatting
属性
这种方法需要你直接访问和操作单元格的
conditional_formatting
属性。
from openpyxl import load_workbook
# 加载工作簿
wb = load_workbook("your_file.xlsx")
ws = wb["Sheet1"]
# 获取源单元格的条件格式
source_cell = ws["A1"]
cf = source_cell.conditional_formatting
# 将条件格式应用于目标单元格
target_cell = ws["B1"]
target_cell.conditional_formatting = cf
# 保存工作簿
wb.save("your_file.xlsx")
需要注意的是,这两种方法都需要你根据实际情况修改代码,例如调整单元格范围、偏移量等。
希望这些信息能帮到你!
标签:python,openpyxl From: 78795597