目次
1. Microsoft Office Interop Excel コンポーネントを使用して Excel ファイルをエクスポートする
2. NPOI コンポーネントを使用して Excel ファイルをエクスポートする
3. EPPlus コンポーネントを使用して Excel ファイルをエクスポートする
4. ClosedXML コンポーネントを使用して Excel ファイルをエクスポートする
一般的に使用される Excel エクスポート方法
C# では、一般的に使用される Excel ファイルのエクスポート方法は次のとおりです。
-
Microsoft Office Interop Excel コンポーネントの使用: これは、Microsoft Excel アプリケーション オブジェクト モデルを使用して Excel ファイルを作成および編集する方法です。強力な機能を提供しますが、Microsoft Excel または Microsoft Office スイートがインストールされている必要があります。
-
NPOI コンポーネントを使用する: NPOI は C#/.NET プラットフォーム上のオープン ソース コンポーネントであり、Excel、Word、PowerPoint などの Microsoft Office 形式のドキュメントを読み書きできます。Interop Excel コンポーネントと比較して、NPOI は軽量であり、Microsoft Excel アプリケーションに依存する必要がありません。
-
EPPlus コンポーネントの使用: EPPlus は、Excel ファイルを作成および読み取ることができる無料のオープン ソース コンポーネントです。セルの書式設定、グラフ、数式などを操作するための便利なメソッドがいくつか提供されています。EPPlus は .NET Framework 3.5 以降をサポートしており、Microsoft Excel アプリケーションに依存する必要はありません。
-
ClosedXML コンポーネントの使用: ClosedXML は、Excel ファイルの読み取り、作成、変更ができる使いやすいオープン ソース コンポーネントです。EPPlus と同様に、Excel ファイルを操作するための便利な方法もいくつか提供されています。ClosedXML は .NET Framework 4.0 以降をサポートします。
C# で Excel ファイルをエクスポートする一般的な方法をいくつか紹介しますが、それぞれの方法に特徴やメリット・デメリットがありますので、開発のニーズに合わせて方法を選択してください。エクスポート方法ごとに、具体的な手順とデモを以下に示します。
1. Microsoft Office Interop Excel コンポーネントを使用して Excel ファイルをエクスポートする
Microsoft Office Interop Excel コンポーネントを使用して Excel ファイルをエクスポートする手順は次のとおりです。
-
Microsoft.Office.Interop.Excel 名前空間を参照する: プロジェクトに Microsoft.Office.Interop.Excel への参照を追加するか、NuGet パッケージ マネージャーを使用してインストールします。
-
Excel アプリケーション オブジェクトを作成する:
Application
クラスを使用して Excel アプリケーション オブジェクトを作成します。 -
ワークブック オブジェクトの作成:
Application.Workbooks.Add()
メソッドを使用して、新しいワークブック オブジェクトを作成します。 -
シート オブジェクトの取得:
Workbook.Worksheets
プロパティを使用してシート コレクションを取得し、インデックスまたは名前を使用してシート オブジェクトを取得します。 -
セルにデータを書き込む:
Worksheet.Cells
プロパティを使用してセル オブジェクトを取得し、プロパティを使用してRange.Value
セルRange.Formula
にデータを書き込みます。 -
Excel ファイルの保存:
Workbook.SaveAs()
Excel ファイルをディスクに保存するメソッドを使用します。 -
Excel アプリケーションとワークブック オブジェクトを閉じます。
Workbook.Close()
メソッドを使用してワークブック オブジェクトを閉じ、Application.Quit()
メソッドを使用して Excel アプリケーション オブジェクトを閉じます。 -
リソースの解放:
Marshal.ReleaseComObject()
Excel アプリケーション オブジェクトおよびワークブック オブジェクトのリソースを解放するメソッドを使用します。
Microsoft Office Interop Excel コンポーネントを使用して Excel ファイルをエクスポートする方法を示すサンプル コードを次に示します。
システムを使用する;
System.Data を使用します。
System.IO を使用します。
Microsoft.Office.Interop.Excel を使用します。namespace ExportExcelDemo
{ class Program { static void Main(string[] args) { // データを保存する DataTable オブジェクトを作成します DataTable dataTable = new DataTable("MyData");
// DataTable に列を追加
dataTable.Columns.Add("Name", typeof(string));
dataTable.Columns.Add("年齢", typeof(int));// DataTable にデータ行を追加します
dataTable.Rows.Add("John Doe", 30);
dataTable.Rows.Add("Jane Smith", 25);// Microsoft Office Interop Excel の集合体を使用 Excel 文件
Application ExcelApp = new Application();
ワークブック workbook = ExcelApp.Workbooks.Add();
ワークシート worksheet = (ワークシート)workbook.Worksheets[1];
int 行 = 1;
foreach (dataTable.Rows の DataRow dataRow)
{ worksheet.Cells[row, 1] = dataRow["Name"].ToString(); worksheet.Cells[row, 2] = dataRow["年齢"]; 行++; }// Excel ファイルをディスクに保存します
string fileName = @"C:\temp\MyExcelFile.xlsx";
workbook.SaveAs(fileName);// Excel アプリケーションとワークブック オブジェクトを閉じ、リソースを解放します
workbook.Close();
ExcelApp.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet);
System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook ) ;
System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp);
}
}
}
このサンプル コードでは、Application
クラスを使用して Excel アプリケーション オブジェクトを作成し、それを使用して新しいワークブック オブジェクトを作成します。次に、Workbook.Worksheets
プロパティを使用してシート コレクションを取得し、インデックスを使用して最初のシート オブジェクトを取得しました。次に、Worksheet.Cells
プロパティを使用してセル オブジェクトを取得し、Range.Value
orプロパティを使用してRange.Formula
セルにデータを書き込みます。最後に、Workbook.SaveAs()
メソッドを使用して Excel ファイルをディスクに保存し、ワークブック オブジェクトと Excel アプリケーション オブジェクトを閉じて、それらのリソースを解放します。
2. NPOI コンポーネントを使用して Excel ファイルをエクスポートする
NPOI コンポーネントを使用して Excel ファイルをエクスポートする手順は次のとおりです。
-
NPOI 名前空間を参照する: プロジェクトに NPOI への参照を追加するか、NuGet パッケージ マネージャーを使用してインストールします。
-
ワークブック オブジェクトの作成:
HSSFWorkbook
またはXSSFWorkbook
クラスを使用して、それぞれ Excel の .xls および .xlsx 形式に対応する新しいワークブック オブジェクトを作成します。 -
ワークシート オブジェクトの取得:
CreateSheet()
メソッドを使用して新しいワークシート オブジェクトを作成し、ワークシート名を設定します。 -
セル スタイルの設定:
CellStyle
クラスとFont
クラスを使用してセル スタイルを設定できます。 -
セルにデータを書き込む:
CreateRow()
メソッドを使用して新しい行オブジェクトを作成し、CreateCell()
メソッドを使用して新しいセル オブジェクトを作成し、SetValue()
メソッドを使用してセルにデータを書き込みます。 -
Excel ファイルの保存:
FileStream
このクラスを使用して、Excel ファイルをディスクに保存します。 -
リソースの解放:
Dispose()
Workbook オブジェクトと FileStream オブジェクトのリソースを解放するメソッドを使用します。
以下は、NPOI コンポーネントを使用して Excel ファイルをエクスポートする方法を示すサンプル コードです。
システムを使用する;
System.Data を使用します。
System.IO を使用します。
NPOI.HSSF.UserModel を使用します。
NPOI.SS.UserModel を使用します。namespace ExportExcelDemo
{ class Program { static void Main(string[] args) { // データを保存する DataTable オブジェクトを作成します DataTable dataTable = new DataTable("MyData");
// DataTable に列を追加
dataTable.Columns.Add("Name", typeof(string));
dataTable.Columns.Add("年齢", typeof(int));// DataTable にデータ行を追加します
dataTable.Rows.Add("John Doe", 30);
dataTable.Rows.Add("Jane Smith", 25);// NPOI 集合体を使用 Excel 文書
IWorkbook workbook = new HSSFWorkbook();
ISheet ワークシート = workbook.CreateSheet("MySheet");
int 行 = 0;
foreach (dataTable.Rows の DataRow dataRow)
{ IRow newRow = worksheet.CreateRow(row); newRow.CreateCell(0).SetCellValue(dataRow["Name"].ToString()); newRow.CreateCell(1).SetCellValue(Convert.ToInt32(dataRow["Age"])); 行++; }// Excel ファイルをディスクに保存します
string fileName = @"C:\temp\MyExcelFile.xls";
using (FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write))
{ workbook.Write(fs); }// リソースを解放
workbook.Dispose();
} }
}
このサンプル コードでは、HSSFWorkbook
クラスを使用して新しいワークブック オブジェクトを作成し、それを使用して「MySheet」という名前のワークシート オブジェクトを作成します。次に、CreateRow()
メソッドとメソッドを使用してCreateCell()
新しい行オブジェクトとセル オブジェクトを作成し、SetValue()
メソッドを使用してセルにデータを書き込みました。最後に、クラスを使用してFileStream
Excel ファイルをディスクに保存し、Dispose()
メソッドを使用してワークブック オブジェクトのリソースを解放します。.xlsx 形式でファイルを生成する必要がある場合は、XSSFWorkbook
class の代わりに classを使用できますHSSFWorkbook
。
3. EPPlus コンポーネントを使用して Excel ファイルをエクスポートする
EPPlus コンポーネントを使用して Excel ファイルをエクスポートする手順は次のとおりです。
-
EPPlus 名前空間を参照する: プロジェクトに EPPlus への参照を追加するか、NuGet パッケージ マネージャーを使用してインストールします。
-
ワークブック オブジェクトの作成:
ExcelPackage
クラスを使用して、新しいワークブック オブジェクトを作成します。 -
ワークシート オブジェクトの取得:
Workbook.Worksheets.Add()
メソッドを使用して新しいワークシート オブジェクトを作成し、ワークシート名を設定します。 -
セル スタイルの設定:
ExcelRange.Style
プロパティを使用してセル スタイルを設定できます。 -
セルにデータを書き込む:
SetValue()
メソッドを使用してセルにデータを書き込みます。 -
Excel ファイルの保存:
ExcelPackage.SaveAs()
Excel ファイルをディスクに保存するメソッドを使用します。 -
リソースの解放:
Dispose()
メソッドを使用して、ワークブック オブジェクトのリソースを解放します。
以下は、EPPlus コンポーネントを使用して Excel ファイルをエクスポートする方法を示すサンプル コードです。
システムを使用する;
System.Data を使用します。
System.IO を使用します。
OfficeOpenXml を使用します。namespace ExportExcelDemo
{ class Program { static void Main(string[] args) { // データを保存する DataTable オブジェクトを作成します DataTable dataTable = new DataTable("MyData");
// DataTable に列を追加
dataTable.Columns.Add("Name", typeof(string));
dataTable.Columns.Add("年齢", typeof(int));// DataTable にデータ行を追加します
dataTable.Rows.Add("John Doe", 30);
dataTable.Rows.Add("Jane Smith", 25);// EPPlus パッケージを使用して Excel 文書を出力します
using (ExcelPackageexcelPackage = new ExcelPackage())
{ ExcelWorksheet worksheet = ExcelPackage.Workbook.Worksheets.Add("MySheet"); int 行 = 1; foreach (dataTable.Rows の DataRow dataRow) { worksheet.Cells[row, 1].Value = dataRow["Name"].ToString(); worksheet.Cells[row, 2].Value = Convert.ToInt32(dataRow["Age"]); 行++; }
// Excel ファイルをディスクに保存します
string fileName = @"C:\temp\MyExcelFile.xlsx";
FileInfo fileInfo = new FileInfo(fileName);
ExcelPackage.SaveAs(fileInfo);
}// リソースを解放します
} }
}
このサンプル コードでは、ExcelPackage
クラスを使用して新しいワークブック オブジェクトを作成し、それを使用して「MySheet」という名前のワークシート オブジェクトを作成します。次に、Cells
プロパティを使用してセル オブジェクトを取得し、SetValue()
メソッドを使用してセルにデータを書き込みます。最後に、ExcelPackage.SaveAs()
メソッドを使用して Excel ファイルをディスクに保存し、Dispose()
メソッドを使用してワークブック オブジェクトのリソースを解放します。
4. ClosedXML コンポーネントを使用して Excel ファイルをエクスポートする
ClosedXML コンポーネントを使用して Excel ファイルをエクスポートする手順は次のとおりです。
-
ClosedXML 名前空間を参照する: ClosedXML への参照をプロジェクトに追加するか、NuGet パッケージ マネージャーを使用してインストールします。
-
ワークブック オブジェクトの作成:
XLWorkbook
クラスを使用して、新しいワークブック オブジェクトを作成します。 -
ワークシート オブジェクトの取得:
AddWorksheet()
メソッドを使用して新しいワークシート オブジェクトを作成し、ワークシート名を設定します。 -
セル スタイルの設定:
IXLStyle
インターフェイスとIXLFont
インターフェイスを使用してセル スタイルを設定できます。 -
セルにデータを書き込む:
SetValue()
メソッドを使用してセルにデータを書き込みます。 -
Excel ファイルの保存:
SaveAs()
Excel ファイルをディスクに保存するメソッドを使用します。 -
リソースの解放:
Dispose()
メソッドを使用して、ワークブック オブジェクトのリソースを解放します。
以下は、ClosedXML コンポーネントを使用して Excel ファイルをエクスポートする方法を示すサンプル コードです。
システムを使用する;
System.Data を使用します。
System.IO を使用します。
ClosedXML.Excel を使用します。namespace ExportExcelDemo
{ class Program { static void Main(string[] args) { // データを保存する DataTable オブジェクトを作成します DataTable dataTable = new DataTable("MyData");
// DataTable に列を追加
dataTable.Columns.Add("Name", typeof(string));
dataTable.Columns.Add("年齢", typeof(int));// DataTable にデータ行を追加します
dataTable.Rows.Add("John Doe", 30);
dataTable.Rows.Add("Jane Smith", 25);// ClosedXML 集合体を使用して Excel 文書を出力します
using (XLWorkbook workbook = new XLWorkbook())
{ IXLWorksheet worksheet = workbook.AddWorksheet("MySheet"); int 行 = 1; foreach (dataTable.Rows の DataRow dataRow) { worksheet.Cell(row, 1).Value = dataRow["Name"].ToString(); worksheet.Cell(row, 2).Value = Convert.ToInt32(dataRow["Age"]);
// セルのスタイルを設定します
worksheet.Cell(row, 2).Style.Font.Bold = true;
worksheet.Cell(row, 2).Style.Alignment.horizontal = XLAligmenthorizontalValues.Right;行++;
}// Excel ファイルをディスクに保存します
string fileName = @"C:\temp\MyExcelFile.xlsx";
workbook.SaveAs(fileName);
}// リソースを解放します
} }
}
このサンプル コードでは、XLWorkbook
クラスを使用して新しいワークブック オブジェクトを作成し、それを使用して「MySheet」という名前のワークシート オブジェクトを作成します。次に、Cell()
メソッドを使用してセル オブジェクトを取得し、SetValue()
メソッドを使用してセルにデータを書き込みます。次に、IXLStyle
インターフェイスとIXLFont
インターフェイスを使用してセルのスタイルを設定します。最後に、SaveAs()
メソッドを使用して Excel ファイルをディスクに保存し、Dispose()
メソッドを使用してワークブック オブジェクトのリソースを解放します。