ヘッダー行のスタイルを設定するには、次のコードを使用します。
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 was unhandled. . .Message=Can't set color when patterntype is not set. 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 を設定する場合とまったく同じです (使用される色と、コードが適用されるセルの範囲を除く)。