为什么 EPPlus 在我设置 PatternType 后告诉我 "Can't set color when patterntype is not set"?
Why is EPPlus telling me that I "Can't set color when patterntype is not set" when I have set PatternType?
我有这段代码来尝试设置 header 行的样式:
worksheet.Cells["A32:D32"].Style.Font.Name = "Georgia";
worksheet.Cells["A32:D32"].Style.Font.Bold = true;
worksheet.Cells["A32:D32"].Style.Font.Size = 16;
worksheet.Cells["A32:D32"].Style.Fill.PatternType = ExcelFillStyle.Solid;
worksheet.Cells["A32:D33"].Style.Fill.BackgroundColor.SetColor(Color.CornflowerBlue);
上面最后一行失败,显示“System.ArgumentException 未处理...消息=未设置模式类型时无法设置颜色。
来源=EPPlus。 . ."
真正的问题是什么?我是做它声称我不是的事情,对吧?
更多背景信息:
worksheet.Cells["A32"].LoadFromCollection(bookDataList, true);
// style header row
worksheet.Cells["A32:D32"].Style.Font.Name = "Georgia";
worksheet.Cells["A32:D32"].Style.Font.Bold = true;
worksheet.Cells["A32:D32"].Style.Font.Size = 16;
worksheet.Cells["A32:D32"].Style.Fill.PatternType = ExcelFillStyle.Solid;
worksheet.Cells["A32:D33"].Style.Fill.BackgroundColor.SetColor(Color.CornflowerBlue);
// style the rest
worksheet.Cells["A33:D59"].Style.Font.Name = "Candara";
worksheet.Cells["A33:D59"].Style.Fill.PatternType = ExcelFillStyle.Solid;
worksheet.Cells["A33:D59"].Style.Fill.BackgroundColor.SetColor(Color.Cornsilk);
请注意,在添加 "style header row" 之前我有 "style the rest" 代码,但没有 运行 解决这个问题。代码与设置 PatternType 然后设置 BackgroundColor 完全相同(除了使用的颜色和应用代码的单元格范围)。
仔细看这两行:
worksheet.Cells["A32:D32"].Style.Fill.PatternType = ExcelFillStyle.Solid;
worksheet.Cells["A32:D33"].Style.Fill.BackgroundColor.SetColor(Color.CornflowerBlue);
第二行有 D33 而不是 D32 所以如果 D33 还没有设置它会抛出那个错误。
我有这段代码来尝试设置 header 行的样式:
worksheet.Cells["A32:D32"].Style.Font.Name = "Georgia";
worksheet.Cells["A32:D32"].Style.Font.Bold = true;
worksheet.Cells["A32:D32"].Style.Font.Size = 16;
worksheet.Cells["A32:D32"].Style.Fill.PatternType = ExcelFillStyle.Solid;
worksheet.Cells["A32:D33"].Style.Fill.BackgroundColor.SetColor(Color.CornflowerBlue);
上面最后一行失败,显示“System.ArgumentException 未处理...消息=未设置模式类型时无法设置颜色。 来源=EPPlus。 . ."
真正的问题是什么?我是做它声称我不是的事情,对吧?
更多背景信息:
worksheet.Cells["A32"].LoadFromCollection(bookDataList, true);
// style header row
worksheet.Cells["A32:D32"].Style.Font.Name = "Georgia";
worksheet.Cells["A32:D32"].Style.Font.Bold = true;
worksheet.Cells["A32:D32"].Style.Font.Size = 16;
worksheet.Cells["A32:D32"].Style.Fill.PatternType = ExcelFillStyle.Solid;
worksheet.Cells["A32:D33"].Style.Fill.BackgroundColor.SetColor(Color.CornflowerBlue);
// style the rest
worksheet.Cells["A33:D59"].Style.Font.Name = "Candara";
worksheet.Cells["A33:D59"].Style.Fill.PatternType = ExcelFillStyle.Solid;
worksheet.Cells["A33:D59"].Style.Fill.BackgroundColor.SetColor(Color.Cornsilk);
请注意,在添加 "style header row" 之前我有 "style the rest" 代码,但没有 运行 解决这个问题。代码与设置 PatternType 然后设置 BackgroundColor 完全相同(除了使用的颜色和应用代码的单元格范围)。
仔细看这两行:
worksheet.Cells["A32:D32"].Style.Fill.PatternType = ExcelFillStyle.Solid;
worksheet.Cells["A32:D33"].Style.Fill.BackgroundColor.SetColor(Color.CornflowerBlue);
第二行有 D33 而不是 D32 所以如果 D33 还没有设置它会抛出那个错误。