C# で一般的に使用される Excel エクスポートのいくつかの一般的な方法と実装手順

目次

一般的に使用される Excel エクスポート方法

1. Microsoft Office Interop Excel コンポーネントを使用して Excel ファイルをエクスポートする

2. NPOI コンポーネントを使用して Excel ファイルをエクスポートする

 3. EPPlus コンポーネントを使用して Excel ファイルをエクスポートする

4. ClosedXML コンポーネントを使用して Excel ファイルをエクスポートする


一般的に使用される Excel エクスポート方法

C# では、一般的に使用される Excel ファイルのエクスポート方法は次のとおりです。

  1. Microsoft Office Interop Excel コンポーネントの使用: これは、Microsoft Excel アプリケーション オブジェクト モデルを使用して Excel ファイルを作成および編集する方法です。強力な機能を提供しますが、Microsoft Excel または Microsoft Office スイートがインストールされている必要があります。

  2. NPOI コンポーネントを使用する: NPOI は C#/.NET プラットフォーム上のオープン ソース コンポーネントであり、Excel、Word、PowerPoint などの Microsoft Office 形式のドキュメントを読み書きできます。Interop Excel コンポーネントと比較して、NPOI は軽量であり、Microsoft Excel アプリケーションに依存する必要がありません。

  3. EPPlus コンポーネントの使用: EPPlus は、Excel ファイルを作成および読み取ることができる無料のオープン ソース コンポーネントです。セルの書式設定、グラフ、数式などを操作するための便利なメソッドがいくつか提供されています。EPPlus は .NET Framework 3.5 以降をサポートしており、Microsoft Excel アプリケーションに依存する必要はありません。

  4. ClosedXML コンポーネントの使用: ClosedXML は、Excel ファイルの読み取り、作成、変更ができる使いやすいオープン ソース コンポーネントです。EPPlus と同様に、Excel ファイルを操作するための便利な方法もいくつか提供されています。ClosedXML は .NET Framework 4.0 以降をサポートします。

C# で Excel ファイルをエクスポートする一般的な方法をいくつか紹介しますが、それぞれの方法に特徴やメリット・デメリットがありますので、開発のニーズに合わせて方法を選択してください。エクスポート方法ごとに、具体的な手順とデモを以下に示します。

1. Microsoft Office Interop Excel コンポーネントを使用して Excel ファイルをエクスポートする

Microsoft Office Interop Excel コンポーネントを使用して Excel ファイルをエクスポートする手順は次のとおりです。

  1. Microsoft.Office.Interop.Excel 名前空間を参照する: プロジェクトに Microsoft.Office.Interop.Excel への参照を追加するか、NuGet パッケージ マネージャーを使用してインストールします。

  2. Excel アプリケーション オブジェクトを作成する:Applicationクラスを使用して Excel アプリケーション オブジェクトを作成します。

  3. ワークブック オブジェクトの作成:Application.Workbooks.Add()メソッドを使用して、新しいワークブック オブジェクトを作成します。

  4. シート オブジェクトの取得:Workbook.Worksheetsプロパティを使用してシート コレクションを取得し、インデックスまたは名前を使用してシート オブジェクトを取得します。

  5. セルにデータを書き込む:Worksheet.Cellsプロパティを使用してセル オブジェクトを取得し、プロパティを使用してRange.ValueセルRange.Formulaにデータを書き込みます。

  6. Excel ファイルの保存: Workbook.SaveAs()Excel ファイルをディスクに保存するメソッドを使用します。

  7. Excel アプリケーションとワークブック オブジェクトを閉じます。Workbook.Close()メソッドを使用してワークブック オブジェクトを閉じ、Application.Quit()メソッドを使用して Excel アプリケーション オブジェクトを閉じます。

  8. リソースの解放: 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.Valueorプロパティを使用してRange.Formulaセルにデータを書き込みます。最後に、Workbook.SaveAs()メソッドを使用して Excel ファイルをディスクに保存し、ワークブック オブジェクトと Excel アプリケーション オブジェクトを閉じて、それらのリソースを解放します。 

2. NPOI コンポーネントを使用して Excel ファイルをエクスポートする

NPOI コンポーネントを使用して Excel ファイルをエクスポートする手順は次のとおりです。

  1. NPOI 名前空間を参照する: プロジェクトに NPOI への参照を追加するか、NuGet パッケージ マネージャーを使用してインストールします。

  2. ワークブック オブジェクトの作成:HSSFWorkbookまたはXSSFWorkbookクラスを使用して、それぞれ Excel の .xls および .xlsx 形式に対応する新しいワークブック オブジェクトを作成します。

  3. ワークシート オブジェクトの取得:CreateSheet()メソッドを使用して新しいワークシート オブジェクトを作成し、ワークシート名を設定します。

  4. セル スタイルの設定:CellStyleクラスとFontクラスを使用してセル スタイルを設定できます。

  5. セルにデータを書き込む:CreateRow()メソッドを使用して新しい行オブジェクトを作成し、CreateCell()メソッドを使用して新しいセル オブジェクトを作成し、SetValue()メソッドを使用してセルにデータを書き込みます。

  6. Excel ファイルの保存:FileStreamこのクラスを使用して、Excel ファイルをディスクに保存します。

  7. リソースの解放: 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()メソッドを使用してセルにデータを書き込みました。最後に、クラスを使用してFileStreamExcel ファイルをディスクに保存し、Dispose()メソッドを使用してワークブック オブジェクトのリソースを解放します。.xlsx 形式でファイルを生成する必要がある場合は、XSSFWorkbookclass の代わりに classを使用できますHSSFWorkbook

 3. EPPlus コンポーネントを使用して Excel ファイルをエクスポートする

EPPlus コンポーネントを使用して Excel ファイルをエクスポートする手順は次のとおりです。

  1. EPPlus 名前空間を参照する: プロジェクトに EPPlus への参照を追加するか、NuGet パッケージ マネージャーを使用してインストールします。

  2. ワークブック オブジェクトの作成:ExcelPackageクラスを使用して、新しいワークブック オブジェクトを作成します。

  3. ワークシート オブジェクトの取得:Workbook.Worksheets.Add()メソッドを使用して新しいワークシート オブジェクトを作成し、ワークシート名を設定します。

  4. セル スタイルの設定:ExcelRange.Styleプロパティを使用してセル スタイルを設定できます。

  5. セルにデータを書き込む:SetValue()メソッドを使用してセルにデータを書き込みます。

  6. Excel ファイルの保存: ExcelPackage.SaveAs()Excel ファイルをディスクに保存するメソッドを使用します。

  7. リソースの解放: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 ファイルをエクスポートする手順は次のとおりです。

  1. ClosedXML 名前空間を参照する: ClosedXML への参照をプロジェクトに追加するか、NuGet パッケージ マネージャーを使用してインストールします。

  2. ワークブック オブジェクトの作成:XLWorkbookクラスを使用して、新しいワークブック オブジェクトを作成します。

  3. ワークシート オブジェクトの取得:AddWorksheet()メソッドを使用して新しいワークシート オブジェクトを作成し、ワークシート名を設定します。

  4. セル スタイルの設定:IXLStyleインターフェイスとIXLFontインターフェイスを使用してセル スタイルを設定できます。

  5. セルにデータを書き込む:SetValue()メソッドを使用してセルにデータを書き込みます。

  6. Excel ファイルの保存: SaveAs()Excel ファイルをディスクに保存するメソッドを使用します。

  7. リソースの解放: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.horizo​​ntal = XLAligmenthorizo​​ntalValues.Right;

                    行++;
                }

                // Excel ファイルをディスクに保存します
                string fileName = @"C:\temp\MyExcelFile.xlsx";
                workbook.SaveAs(fileName);
            }

            // リソースを解放します
        } }
    }

 

このサンプル コードでは、XLWorkbookクラスを使用して新しいワークブック オブジェクトを作成し、それを使用して「MySheet」という名前のワークシート オブジェクトを作成します。次に、Cell()メソッドを使用してセル オブジェクトを取得し、SetValue()メソッドを使用してセルにデータを書き込みます。次に、IXLStyleインターフェイスとIXLFontインターフェイスを使用してセルのスタイルを設定します。最後に、SaveAs()メソッドを使用して Excel ファイルをディスクに保存し、Dispose()メソッドを使用してワークブック オブジェクトのリソースを解放します。 

おすすめ

転載: blog.csdn.net/beenles/article/details/129954858