ClosedXML调整行高且行背景色与工作表一致时样式丢失问题
ClosedXML调整行高时同色行背景样式丢失异常
参考官方行高与样式相关使用示例时发现如下异常:当行被调整行高,且该行设置的背景色与所属工作表背景色完全一致时,行背景色会消失并回退为默认样式,该类行绑定的所有自定义样式都会完全丢失,异常效果如下图:
复现代码
场景1:工作表背景色(绿色)与行背景色(红色)不同+调整行高:运行结果正常
public void Main() { var document = new XLWorkbook(); var ws = document.Worksheets.Add("Row Settings"); ws.Style.Fill.BackgroundColor = XLColor.Green; var row1 = ws.Row(2); row1.Style.Fill.BackgroundColor = XLColor.Red; row1.Height = 30; var row2 = ws.Row(4); row2.Style.Fill.BackgroundColor = XLColor.DarkOrange; row2.Height = 3; document.SaveAs("Correct-Diff.xlsx"); }

场景2:工作表背景色(红色)与行背景色(红色)相同+不调整行高:运行结果正常
public void Main() { var document = new XLWorkbook(); var ws = document.Worksheets.Add("Row Settings"); ws.Style.Fill.BackgroundColor = XLColor.Red; var row1 = ws.Row(2); row1.Style.Fill.BackgroundColor = XLColor.Red; var row2 = ws.Row(4); row2.Style.Fill.BackgroundColor = XLColor.DarkOrange; row2.Height = 3; document.SaveAs("Correct-NoHeight.xlsx"); }

场景3:工作表背景色(红色)与行背景色(红色)相同+调整行高:运行结果异常
public void Main() { var document = new XLWorkbook(); var ws = document.Worksheets.Add("Row Settings"); ws.Style.Fill.BackgroundColor = XLColor.Red; var row1 = ws.Row(2); row1.Style.Fill.BackgroundColor = XLColor.Red; row1.Height = 30; var row2 = ws.Row(4); row2.Style.Fill.BackgroundColor = XLColor.DarkOrange; row2.Height = 3; document.SaveAs("Incorrect.xlsx"); }

问题
是否存在可行方案,能够在调整行高的同时,保留与工作表同色的行背景样式,实现场景3的预期正确效果?
注:该问题已同步提交至官方反馈渠道,供遇到相同问题的开发者参考。
内容的提问来源于stack exchange,提问作者Renat Zamaletdinov
相关产品推荐
相关产品推荐

