この記事では、MS OfficeをインストールせずにC#でプログラムによってExcel XLS/XLSXファイルを作成する方法を学習します。
今日のスプレッドシートは、データの保持、整理、分析に欠かせない要素になっています。 MS Excelなどのスプレッドシートは、計算と並べ替え、グラフまたはチャートの生成、予算の作成、およびその他の多くの会計またはデータ分析タスクを実行できます。最近では自動化されたソリューションのビジネスが進んでいるため、Excelドキュメント(XLS / XLSX)を作成および操作する傾向が現れ、急速に成長しています。このユースケースにより、Excel自動化ソリューションが必要になりました。
上記のシナリオに従って、この包括的な記事は、C#.NETアプリケーションでのExcel自動化のいくつかの基本的な機能を紹介することを目的としています。
- C#Excel Automation API
- C#を使用してExcelXLSまたはXLSXファイルを動的に作成する
- C#を使用して既存のExcelファイルにデータを書き込む
- C#を使用してExcelファイルにチャートまたはグラフを作成する
- C#を使用してExcelファイルにテーブルを作成する
Excelファイルを作成するためのC#API
Excelドキュメントを操作するために、XLSおよびXLSXファイルを含むスプレッドシートドキュメントを作成、読み取り、操作するための強力なAPIであるAspose.Cells for .NETを使用します。 ダウンロードするか、次のいずれかの方法でAPIをインストールできます。
NuGetパッケージマネージャーの使用
パッケージマネージャーコンソールの使用
PM> Install-Package Aspose.Cells
C#でExcelXLSまたはXLSXを作成する
Excelファイルは、データを保持するための行と列を含む単一または複数のワークシートで構成されるワークブックとも呼ばれます。したがって、ブックはExcelファイルのワークシートのコンテナとして機能します。したがって、Excelファイルを作成するには、最初にブックを作成し、次にそのブック内にワークシートを作成します。以下は、Aspose.Cells for .NETを使用してExcelファイルを作成する手順です。
- Workbookクラスのインスタンスを作成します。
- ブックの最初のワークシート(デフォルトで作成)にアクセスします。
- ワークシートの目的のセルにアクセスし、セルに値を入力します。
- ブックをXLSまたはXLSXファイルとして保存します。
次のコードサンプルは、C#を使用してExcelXLSXファイルを作成する方法を示しています。
// Excelファイルを表すWorkbookオブジェクトをインスタンス化します。
Workbook wb = new Workbook();
// 新しいワークブックを作成すると、デフォルトの「Sheet1」がワークブックに追加されます。
Worksheet sheet = wb.Worksheets[0];
// シートの「A1」セルにアクセスします。
Cell cell = sheet.Cells["A1"];
// 「HelloWorld!」を入力します「A1」セルにテキストを入力します。
cell.PutValue("Hello World!");
// Excelを.xlsxファイルとして保存します。
wb.Save("Excel.xlsx", SaveFormat.Xlsx);
出力
C#でExcelXLSXファイルにデータを書き込む
データを編集して既存のExcelファイルに書き込む場合は、同様の方法で行うこともできます。 Workbookオブジェクトを使用してソースExcelスプレッドシートドキュメントをロードし、目的のワークシートとセルにアクセスするだけです。以下は、既存のExcelファイルを編集する手順です。
- FileStreamオブジェクトでExcelファイルを開きます。
- Workbookのインスタンスを作成し、FileStreamオブジェクトで初期化します。
- WorksheetクラスとCellクラスをそれぞれ使用して、ワークシートとセルにアクセスします。
- ブックをExcelの.xlsxファイルとして保存します。
次のコードサンプルは、C#で既存のExcelXLSXファイルにデータを編集および書き込む方法を示しています。
// Excelファイルを表すWorkbookオブジェクトをインスタンス化します。
Workbook wb = new Workbook("Excel.xlsx");
// ブックから「Sheet1」にアクセスします。
Worksheet sheet = wb.Worksheets[0];
// シートの「A1」セルにアクセスします。
Cell cell = sheet.Cells["A1"];
// 「HelloWorld!」を入力します「A1」セルにテキストを入力します。
cell.PutValue("The cell's value is updated.");
// Excelファイルを.xlsxとして保存します。
wb.Save("Excel_updated.xlsx", SaveFormat.Xlsx);
C#を使用してExcelXLSXファイルでチャートまたはグラフを作成する
Excelスプレッドシートは、グラフやチャートを使用してデータを視覚的に分析または表示するための優れた方法を提供します。 Aspose.Cells for .NETは、Excelスプレッドシートでさまざまなグラフを作成および操作するためのクラスの完全なセットを提供します。各クラスは特定のタスクを実行するために使用されます。
Excelファイルでグラフを作成するには、次の手順に従う必要があります。
- ワークシートのセルにアクセスして、データ(データソースとして使用する)をワークシートに追加します。
- ChartType列挙を使用してグラフのタイプを渡すことにより、Worksheet.Chartsコレクションを使用して新しいグラフオブジェクトをワークシートに追加します。
- Chartオブジェクトのコレクションから新しく作成されたチャートを取得します。
- グラフオブジェクトにデータソースを提供するセルの範囲を指定します。
- ブックをExcelの.xlsxファイルとして保存します。
次のコードサンプルは、C#でExcelXLSXファイルにグラフを作成する方法を示しています。
// Excelファイルを表すWorkbookオブジェクトをインスタンス化します。
Workbook wb = new Workbook();
// 新しいワークシートをExcelオブジェクトに追加します。
int sheetIndex = wb.Worksheets.Add();
// シートインデックスを渡して、新しく追加されたワークシートの参照を取得します。
Worksheet worksheet = wb.Worksheets[sheetIndex];
// セルにダミー値を追加します。
worksheet.Cells["A1"].PutValue(50);
worksheet.Cells["A2"].PutValue(100);
worksheet.Cells["A3"].PutValue(150);
worksheet.Cells["B1"].PutValue(4);
worksheet.Cells["B2"].PutValue(20);
worksheet.Cells["B3"].PutValue(50);
// ワークシートにグラフを追加します。
int chartIndex = worksheet.Charts.Add(Charts.ChartType.Pyramid, 5, 0, 15, 5);
// 新しく追加されたチャートのインスタンスにアクセスします。
Charts.Chart chart = worksheet.Charts[chartIndex];
// SeriesCollection(グラフデータソース)を「A1」セルから「B3」までの範囲のグラフに追加します。
chart.NSeries.Add("A1:B3", true);
// Excelファイルを保存します。
wb.Save("Excel_Chart.xlsx", SaveFormat.Xlsx);
出力
詳細C#を使用したExcelワークシートでのグラフの作成について。
C#でExcelXLSXファイルにテーブルを作成する
Excelワークシートのセルの範囲からテーブルを作成し、テーブルの合計(合計、カウントなど)の行を追加することもできます。 Aspose.Cells for .NETを使用してExcel(XLSX)ファイルにテーブルを作成する手順は次のとおりです。
- Excelブックをロードするか、Workbookクラスを使用して新しいブックを作成します。
- ワークシートのセルにデータを追加します。
- 新しいListObjectをワークシートに追加します。
- ListObject.ShowTotalsプロパティをtrueに設定します。
- 合計を計算し、ブックをExcel.xlsxファイルとして保存します。
次のコードサンプルは、C#でExcelワークシートにテーブルを作成する方法を示しています。
// Excelファイルを表すWorkbookオブジェクトをインスタンス化します。
Workbook wb = new Workbook();
// 最初のワークシートを入手します。
Worksheet sheet = wb.Worksheets[0];
// ワークシートのセルコレクションの取得
Cells cells = sheet.Cells;
// セルに値を設定する
Aspose.Cells.Cell cell = cells["A1"];
cell.PutValue("Employee");
cell = cells["B1"];
cell.PutValue("Quarter");
cell = cells["C1"];
cell.PutValue("Product");
cell = cells["D1"];
cell.PutValue("Continent");
cell = cells["E1"];
cell.PutValue("Country");
cell = cells["F1"];
cell.PutValue("Sale");
cell = cells["A2"];
cell.PutValue("David");
cell = cells["A3"];
cell.PutValue("David");
cell = cells["A4"];
cell.PutValue("David");
cell = cells["A5"];
cell.PutValue("David");
cell = cells["A6"];
cell.PutValue("James");
cell = cells["B2"];
cell.PutValue(1);
cell = cells["B3"];
cell.PutValue(2);
cell = cells["B4"];
cell.PutValue(3);
cell = cells["B5"];
cell.PutValue(4);
cell = cells["B6"];
cell.PutValue(1);
cell = cells["C2"];
cell.PutValue("Maxilaku");
cell = cells["C3"];
cell.PutValue("Maxilaku");
cell = cells["C4"];
cell.PutValue("Chai");
cell = cells["C5"];
cell.PutValue("Maxilaku");
cell = cells["C6"];
cell.PutValue("Chang");
cell = cells["D2"];
cell.PutValue("Asia");
cell = cells["D3"];
cell.PutValue("Asia");
cell = cells["D4"];
cell.PutValue("Asia");
cell = cells["D5"];
cell.PutValue("Asia");
cell = cells["D6"];
cell.PutValue("Europe");
cell = cells["E2"];
cell.PutValue("China");
cell = cells["E3"];
cell.PutValue("India");
cell = cells["E4"];
cell.PutValue("Korea");
cell = cells["E5"];
cell.PutValue("India");
cell = cells["E6"];
cell.PutValue("France");
cell = cells["F2"];
cell.PutValue(2000);
cell = cells["F3"];
cell.PutValue(500);
cell = cells["F4"];
cell.PutValue(1200);
cell = cells["F5"];
cell.PutValue(1500);
cell = cells["F6"];
cell.PutValue(500);
// ワークシートに新しいリストオブジェクトを追加する
Tables.ListObject listObject = sheet.ListObjects[sheet.ListObjects.Add("A1", "F6", true)];
// テーブルにデフォルトスタイルを追加する
listObject.TableStyleType = Tables.TableStyleType.TableStyleMedium10;
// 合計を表示
listObject.ShowTotals = true;
// Quarterフィールドの計算タイプを設定します
listObject.ListColumns[1].TotalsCalculation = Tables.TotalsCalculation.Count;
// Excelファイルを保存します。
wb.Save("Excel_Table.xlsx", SaveFormat.Xlsx);
出力
詳細C#を使用したExcelワークシートのテーブルの操作について。
結論
この記事では、C#を使用してExcelファイルを最初から作成する方法を学習しました。さらに、シートにデータを挿入する方法、グラフを生成する方法、Excelファイルに表を挿入する方法を見てきました。 Aspose.Cells for .NETのドキュメントを参照して、C#でExcelファイルを操作するための高度な機能を学ぶことができます。