書式設定は、Excel スプレッドシートを読みやすく、分析しやすく、見やすくするために重要な役割を果たします。レポート、請求書、財務諸表、ダッシュボードなどを作成する場合、生データはエンドユーザーと共有する前に適切なスタイルを適用する必要があります。 C# における Excel の書式設定には、フォントの変更、色の適用、コンテンツの配置、数値や日付の書式設定、罫線の追加、テーブルの作成、ページレイアウトの設定などが含まれます。特に大量のスプレッドシートを扱う場合、これらの作業を手動で行うと多くの時間がかかります。 Spire.XLS for .NET は、Microsoft Excel をインストールすることなく、Excel ドキュメントの作成、編集、書式設定、および変換を行うための包括的な API を提供します。この記事では、Spire.XLS for .NET を使用して、C# で さまざまな種類の Excel 書式設定を適用する方法 を学びます。 目次: Excel の書式設定用に C# プロジェクトを準備する パート 1. セルの外観を書式設定する パート 2. セルの値を書式設定する パート 3. 範囲とレイアウトを書式設定する パート 4. 高度な書式設定を適用する パート 5. Excel テーブルとワークシートを書式設定する パート 6. プロフェッショナルなレポートを作成する例 まとめ よくある質問 Excel の書式設定用に C# プロジェクトを準備する Spire.XLS for .NET は、開発者が XLS、XLSX、XLSM、CSV などのスプレッドシート形式をプログラムから操作できる強力な Excel ライブラリです。書式設定機能に加えて、数式の計算、グラフの作成、ピボットテーブル、ワークシート管理、印刷、およびファイル変換もサポートしています。 Spire.XLS for .NET をインストールするには、次の NuGet コマンドを実行してください。 Install-Package Spire.XLS 書式設定を適用する前に、既存の Excel ブックを読み込む(または新規作成する)とともに、変更対象のワークシートを取得します。すべての書式設定が完了したら、SaveToFile() メソッドを使用して結果を新しい Excel ファイルとして保存します。 using Spire.Xls; using System.Drawing; // ワークブックオブジェクトを作成する Workbook workbook = new Workbook(); // 既存のExcelファイルを読み込む workbook.LoadFromFile("input.xlsx"); // 特定のワークシートを取得する Worksheet sheet = workbook.Worksheets[0]; // 書式設定を適用する ... // 結果を保存する workbook.SaveToFile("output.xlsx", ExcelVersion.Version2016); 注: 以下のサンプルでは、ワークブックがすでに読み込まれ、ワークシートオブジェクトが取得済みであることを前提としています。 パート 1. セルの外観を書式設定する セルの外観設定は、ワークシート内でデータをどのように表示するかを制御します。適切な書式設定を行うことで、可読性が大幅に向上し、ユーザーは重要な情報をすばやく識別できるようになります。 セルのフォントを書式設定する フォントの書式設定では、セル内のコンテンツの表示スタイルをカスタマイズできます。一般的な設定には、フォントファミリー、フォントサイズ、太字、斜体、下線、フォントカラーなどがあります。これらの設定は、レポートタイトル、セクション見出し、強調表示した値などでよく使用されます。 CellStyle style = workbook.Styles.Add("FontStyle"); style.Font.FontName = "Calibri"; style.Font.Size = 14; style.Font.IsBold = true; style.Font.IsItalic = true; style.Font.Underline = FontUnderlineType.Single; style.Font.Color = Color.Blue; sheet.Range["A1"].Text = "Formatted Text"; sheet.Range["A1"].Style = style; セルの背景色を設定する 背景色を使用すると、ワークシート内の異なるセクションを区別したり、重要なセルを目立たせたりできます。たとえば、色付きのヘッダー行を使用したり、対照的な塗りつぶし色で集計データを強調表示したりできます。 sheet.Range["A2"].Text = "Background Color"; sheet.Range["A2"].Style.Color = Color.LightSkyBlue; セルの内容を配置する Excel では、水平方向の配置、垂直方向の配置、インデント、文字の回転などの設定が可能です。適切な配置により、ワークシート全体のレイアウトが改善され、表形式データが読みやすくなります。 sheet.Range["B2"].Text = "Centered Text"; CellStyle style = sheet.Range["B2"].Style; style.HorizontalAlignment = HorizontalAlignType.Center; style.VerticalAlignment = VerticalAlignType.Center; style.Rotation = 45; sheet.SetRowHeight(2, 40); sheet.SetColumnWidth(2, 20); セルに罫線を追加する 罫線は、行や列を区切り、表の構造を明確にするために役立ちます。用途に応じて、個々のセルまたはセル範囲全体に罫線を適用し、線種や色をカスタマイズできます。 CellRange range = sheet.Range["A4:D6"]; range.Text = "Border"; range.Style.Borders[BordersLineType.EdgeTop].LineStyle = LineStyleType.Thin; range.Style.Borders[BordersLineType.EdgeBottom].LineStyle = LineStyleType.Thin; range.Style.Borders[BordersLineType.EdgeLeft].LineStyle = LineStyleType.Thin; range.Style.Borders[BordersLineType.EdgeRight].LineStyle = LineStyleType.Thin; range.Style.Borders[BordersLineType.EdgeTop].Color = Color.Black; テキストを折り返す セルの内容が列幅を超える場合、テキストの折り返しを有効にすると、同じセル内に複数行で表示されるため、重要な情報が途中で切り捨てられるのを防ぐことができます。 sheet.Range["A8"].Text = "This is a very long sentence that will automatically wrap within the cell."; sheet.Range["A8"].Style.WrapText = true; sheet.SetColumnWidth(1, 20); sheet.SetRowHeight(8, 60); パート 2. セルの値を書式設定する 値の書式設定では、実際の値を変更することなく、データの表示方法のみを変更します。これは、ビジネスや財務関連のスプレッドシートにおいて特に重要です。 数値を書式設定する 数値書式では、小数点以下の桁数、3 桁区切り、指数表記など、さまざまな表示ルールを制御できます。適切な書式を選択することで、データの正確性と可読性が向上します。 sheet.Range["A10"].NumberValue = 1234567.891; sheet.Range["A10"].NumberFormat = "#,##0.00"; 通貨を書式設定する 通貨書式では、要件に応じて通貨記号や小数点以下の桁数を自動的に表示できます。これは請求書、予算表、財務レポートなどで一般的に使用されます。 sheet.Range["A11"].NumberValue = 5999.95; sheet.Range["A11"].NumberFormat = "$#,##0.00"; 日付を書式設定する 日付書式を使用すると、同じ日付値を短い日付形式、長い日付形式、またはカスタム形式など、さまざまなスタイルで表示できます。統一された日付形式により、レポートをより理解しやすくなります。 sheet.Range["A12"].DateTimeValue = DateTime.Now; sheet.Range["A12"].NumberFormat = "yyyy-MM-dd"; パート 3. 範囲とレイアウトを書式設定する セルを 1 つずつ書式設定する代わりに、ワークシート内の広い範囲に対してスタイルを適用することで、作業効率を向上させ、一貫性を維持できます。 セル範囲を書式設定する セル範囲には複数の行と列を含めることができます。セル範囲全体に書式を適用することで、すべてのセルを同じ外観に統一し、繰り返しコードを削減できます。 CellRange range = sheet.Range["A14:D18"]; range.Style.Color = Color.LightYellow; range.Style.Font.IsBold = true; range.Style.HorizontalAlignment = HorizontalAlignType.Center; セルを結合する 結合セルは、レポートのタイトルやセクション見出しでよく使用されます。セルを結合した後、内容を中央揃えにし、スタイルを適用することで、よりプロフェッショナルな見た目を実現できます。 sheet.Range["A20:D20"].Merge(); sheet.Range["A20"].Text = "Monthly Sales Report"; sheet.Range["A20"].Style.Font.Size = 18; sheet.Range["A20"].Style.Font.IsBold = true; sheet.Range["A20"].Style.HorizontalAlignment = HorizontalAlignType.Center; 行と列を書式設定する 特定の領域内のすべてのセルに同じスタイルを適用したい場合、行または列全体を書式設定すると便利です。たとえば、ヘッダー行や通貨列などが該当します。 sheet.Rows[21].Style.Font.IsBold = true; sheet.Rows[21].Style.Color = Color.LightGray; sheet.Columns[1].Style.NumberFormat = "$#,##0.00"; 行と列を自動調整する 自動調整(AutoFit)は、セルの内容に基づいて行の高さや列幅を自動的に調整します。これにより、テキストの切り欠けを防ぎ、生成されたスプレッドシートの見栄えを向上させることができます。 sheet.AllocatedRange.AutoFitColumns(); sheet.AllocatedRange.AutoFitRows(); パート 4. 高度な書式設定を適用する 条件付き書式を使用すると、セルの値に基づいて Excel が自動的にスタイルを適用できます。データを手動で強調表示する代わりに、ルールを設定することで、傾向、例外、または重要な値を自動的に識別できます。 たとえば、しきい値を超えた数値を強調表示したり、データバーを表示したり、カラースケールやアイコンセットを使用してパフォーマンス指標を可視化したりできます。これらの機能により、大規模なデータセットをより簡単に分析し、理解できるようになります。 sheet.Range["A25"].NumberValue = 1200; sheet.Range["A26"].NumberValue = 800; sheet.Range["A27"].NumberValue = 1500; XlsConditionalFormats formats = sheet.ConditionalFormats.Add(); formats.AddRange(sheet.Range["A25:A27"]); IConditionalFormat format = formats.AddCondition(); format.FormatType = ConditionalFormatType.CellValue; format.FirstFormula = "1000"; format.Operator = ComparisonOperatorType.Greater; format.BackColor = Color.LightGreen; パート 5. Excel テーブルとワークシートを書式設定する 書式設定はワークシート全体にも適用でき、ブック全体の構造や外観を改善できます。 Excel テーブルを書式設定する Excel テーブルには、ヘッダーの書式設定、交互の行の色、定義済みテーマなどの組み込みスタイルが用意されています。データ範囲をテーブルへ変換することで、可読性と整理性をすぐに向上させることができます。 sheet.Range["A30"].Text = "Product"; sheet.Range["B30"].Text = "Sales"; sheet.Range["A31"].Text = "Laptop"; sheet.Range["B31"].NumberValue = 5000; sheet.Range["A32"].Text = "Monitor"; sheet.Range["B32"].NumberValue = 2000; IListObject table = sheet.ListObjects.Create("SalesTable", sheet.Range["A30:B32"]); table.BuiltInTableStyle = TableBuiltInStyles.TableStyleMedium2; ページレイアウトを設定する ページレイアウト設定では、ワークシートを印刷またはエクスポートした際の表示方法を制御します。一般的な設定には、ページの向き、余白、印刷範囲、拡大縮小、およびタイトル行の繰り返しなどがあります。 適切なページ設定を行うことで、レポートを画面上でも印刷時でもプロフェッショナルな見た目に仕上げることができます。 sheet.PageSetup.Orientation = PageOrientationType.Landscape; sheet.PageSetup.LeftMargin = 0.5; sheet.PageSetup.RightMargin = 0.5; sheet.PageSetup.TopMargin = 0.75; sheet.PageSetup.BottomMargin = 0.75; sheet.PageSetup.FitToPagesWide = 1; sheet.PageSetup.FitToPagesTall = 1; パート 6. プロフェッショナルなレポートを作成する例 実際の業務では、複数の書式設定手法を組み合わせて使用することが一般的です。典型的なレポートには、結合されたタイトル、カスタムフォント、色付きのヘッダー、罫線、数値書式、条件付き書式、および最適化されたページ設定などが含まれます。 これらの機能を組み合わせることで、手動で編集することなく、そのまま配布できる洗練された Excel ドキュメントを作成できます。 using Spire.Xls; using Spire.Xls.Core.Spreadsheet.Collections; using Spire.Xls.Core; using System.Drawing; class Program { static void Main() { // 新しいワークブックを作成する Workbook workbook = new Workbook(); Worksheet sheet = workbook.Worksheets[0]; sheet.Name = "売上サマリーレポート"; // タイトル行 CellRange title = sheet.Range["A1:E1"]; title.Merge(); title.Text = "売上サマリーレポート"; title.Style.Font.FontName = "Arial"; title.Style.Font.Size = 16; title.Style.Font.Color = Color.White; title.Style.Color = Color.DarkBlue; title.Style.HorizontalAlignment = HorizontalAlignType.Center; title.Style.VerticalAlignment = VerticalAlignType.Center; sheet.Rows[0].RowHeight = 30; // ヘッダー string[] headers = { "注文ID", "製品", "地域", "注文日", "売上金額" }; for (int i = 0; i < headers.Length; i++) { CellRange cell = sheet.Range[2, i + 1]; cell.Text = headers[i]; cell.Style.Font.IsBold = true; cell.Style.Color = Color.LightGray; cell.Style.Borders[BordersLineType.EdgeBottom].LineStyle = LineStyleType.Medium; cell.Style.Borders[BordersLineType.EdgeBottom].Color = Color.DarkBlue; } // データ object[][] data = { new object[] { 1001, "ノートパソコン", "北部", "2024-01-15", 15000 }, new object[] { 1002, "モニター", "西部", "2024-02-10", 12000 }, new object[] { 1003, "キーボード", "東部", "2024-03-05", 13500 }, new object[] { 1004, "マウス", "南部", "2024-04-12", 16000 } }; for (int r = 0; r < data.Length; r++) { for (int c = 0; c < data[r].Length; c++) { CellRange cell = sheet.Range[r + 3, c + 1]; var value = data[r][c]; // 行の交互背景色 cell.Style.Color = (r % 2 == 0) ? Color.LightYellow : Color.LightCyan; if (c == 3) // 注文日 { cell.DateTimeValue = DateTime.Parse(value.ToString()); cell.NumberFormat = "yyyy-MM-dd"; } else if (c == 4) // 売上金額 { cell.NumberValue = Convert.ToDouble(value); cell.NumberFormat = ""¥"#,##0.00"; } else { cell.Text = value.ToString(); } } } // 罫線 CellRange range = sheet.Range["A2:E6"]; range.BorderAround(LineStyleType.Medium, Color.Black); range.BorderInside(LineStyleType.Thin, Color.Gray); // 列の自動調整 for (int i = 1; i <= 5; i++) { sheet.AutoFitColumn(i); } // 条件付き書式 XlsConditionalFormats formats = sheet.ConditionalFormats.Add(); formats.AddRange(sheet.Range["E3:E6"]); IConditionalFormat condition = formats.AddCondition(); condition.FormatType = ConditionalFormatType.CellValue; condition.Operator = ComparisonOperatorType.Greater; condition.FirstFormula = "14000"; condition.FontColor = Color.Red; condition.IsBold = true; // 配置 + レイアウト書式設定 CellRange all = sheet.AllocatedRange; for (int r = 1; r < all.RowCount; r++) { all.Rows[r].HorizontalAlignment = HorizontalAlignType.Center; all.Rows[r].VerticalAlignment = VerticalAlignType.Center; all.Rows[r].RowHeight = 20; } for (int c = 0; c < all.ColumnCount; c++) { all.Columns[c].ColumnWidth = (c == 1) ? 19 : 14; } // 保存 workbook.SaveToFile("売上サマリーレポート.xlsx", ExcelVersion.Version2016); workbook.Dispose(); } } 出力: まとめ 書式設定は、プロフェッショナルな Excel ドキュメントを作成する上で欠かせない重要なステップです。Spire.XLS for .NET を使用すると、セルの外観のカスタマイズ、数値や日付の書式制御、ワークシートレイアウトの管理、条件付き書式の適用、そして視覚的に魅力的なレポートの作成を、すべて C# だけで効率的に行うことができます。 このガイドで紹介した手法を活用することで、Excel の書式設定作業を自動化し、ビジネス、レポート作成、データ分析などのシナリオに適した、高品質なスプレッドシートを生成できます。 よくある質問 Microsoft Excel がインストールされていなくても Excel ファイルを書式設定できますか? はい。Spire.XLS for .NET は Microsoft Excel に依存せず、コードから直接スプレッドシートの作成、編集、および書式設定を行うことができます。 書式設定によって実際のセルの値は変更されますか? いいえ。ほとんどの書式設定操作はデータの表示方法のみを変更します。明示的に値を変更しない限り、元の値は変更されません。 同じスタイルを複数のセルに一度に適用できますか? はい。スタイルはセル範囲、行、列、またはワークシート全体に適用できるため、一貫した書式設定を簡単に維持できます。 Spire.XLS は条件付き書式をサポートしていますか? はい。ライブラリは、強調表示ルール、データバー、カラースケール、アイコンセットなど、一般的な条件付き書式機能をサポートしています。 どの Excel ファイル形式をサポートしていますか? Spire.XLS は、XLS、XLSX、XLSM、CSV、およびその他の複数のスプレッドシート形式の読み込みと書き込みをサポートしています。