29

我有这段代码来尝试设置标题行的样式:

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 未处理。..Message=未设置模式类型时无法设置颜色。Source=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);

请注意,在添加“样式标题行”之前,我有“样式其余部分”代码并且没有遇到这个问题。该代码与设置 PatternType 和 BackgroundColor 完全相同(除了使用的颜色和代码应用到的单元格范围)。

4

1 回答 1

44

仔细看这两行:

worksheet.Cells["A32:D32"].Style.Fill.PatternType = ExcelFillStyle.Solid;
worksheet.Cells["A32:D33"].Style.Fill.BackgroundColor.SetColor(Color.CornflowerBlue);

第二行有D33而不是D32,所以如果 D33 尚未设置,它会抛出该错误。

于 2016-08-01T15:34:39.710 回答