Microsoft OfficeをインストールせずにC#でExcelファイルを作成する

Microsoft OfficeをインストールせずにC#でExcelファイルを作成する
Microsoft OfficeをインストールせずにC#でExcelファイルを作成する

C# で Excel ファイルをシームレスに生成

C# で Excel ファイル (.XLS および .XLSX) を作成することは、多くのアプリケーションにとって重要な要件となる場合があります。ただし、サーバーまたはクライアント マシンへの Microsoft Office のインストールに依存するのは非現実的で面倒な場合があります。

幸いなことに、開発者が Microsoft Office を必要とせずに C# で Excel スプレッドシートをプログラム的に生成できる強力なライブラリとツールが利用可能です。この記事では、これを効率的に実現するためのさまざまなメソッドとライブラリについて説明します。

指示 説明
ExcelPackage.LicenseContext = LicenseContext.NonCommercial; EPPlus のライセンス コンテキストを非営利使用に設定します。
var worksheet = package.Workbook.Worksheets.Add("Sheet1"); EPPlus を使用して Excel パッケージに「Sheet1」という名前の新しいワークシートを作成します。
worksheet.Cells[1, 1].Value = "Hello"; EPPlus を使用して、行 1、列 1 のセルの値を「Hello」に設定します。
IWorkbook workbook = new XSSFWorkbook(); NPOI を使用して .XLSX ファイルを作成するための新しいワークブック インスタンスを初期化します。
ISheet sheet = workbook.CreateSheet("Sheet1"); NPOI を使用して、ブック内に「Sheet1」という名前の新しいシートを作成します。
IRow row = sheet.CreateRow(0); NPOI を使用して、シートのインデックス 0 に新しい行を作成します。
row.CreateCell(0).SetCellValue("Hello"); NPOI を使用して、行 0、列 0 のセルの値を「Hello」に設定します。

C# での Excel ファイルの作成について理解する

上記のスクリプトは、EPPlus と NPOI という 2 つの一般的なライブラリを利用して、Microsoft Office をインストールせずに C# で Excel ファイル (.XLS および .XLSX) を作成する方法を示しています。最初のスクリプトは EPPlus ライブラリを利用します。まず、コマンドを使用して EPPlus のライセンス コンテキストを非営利使用に設定します。 ExcelPackage.LicenseContext = LicenseContext.NonCommercial;。これにより、EPPlus ライセンス条項への準拠が保証されます。次に、次を使用して新しい Excel パッケージ インスタンスを作成します。 using (var package = new ExcelPackage())を使用して、「Sheet1」という名前の新しいワークシートを追加します。 var worksheet = package.Workbook.Worksheets.Add("Sheet1");。データは、セルの値を直接設定することによってセルに追加されます。たとえば、 worksheet.Cells[1, 1].Value = "Hello"; 最初の行の最初のセルに値「Hello」を割り当てます。ファイルは次のコマンドでディスクに保存されます。 package.SaveAs(new FileInfo("example.xlsx"));, これで Excel ファイルの作成プロセスは完了です。

2 番目のスクリプトは、NPOI ライブラリを利用して Excel ファイルを作成します。まず、.XLSX ファイルを作成するための新しいワークブック インスタンスを初期化します。 IWorkbook workbook = new XSSFWorkbook();。次を使用して、ワークブック内に「Sheet1」という名前の新しいシートが作成されます。 ISheet sheet = workbook.CreateSheet("Sheet1");。行とセルは、呼び出しによって作成され、データが設定されます。 IRow row = sheet.CreateRow(0); そして row.CreateCell(0).SetCellValue("Hello");、 それぞれ。作成されたワークブックはファイル ストリームに書き込まれ、 FileStream に包まれた using 適切なリソース管理のためのステートメント。ついに、 Console.WriteLine("Excel file created successfully!"); 成功メッセージをコンソールに出力します。これらのスクリプトは、Microsoft Office のインストールを必要とせずに C# で Excel ファイルを生成する場合に、これらのライブラリがいかに強力で多用途であるかを示しています。

C# で EPPlus を使用して Excel ファイルを生成する

このスクリプトは、C# で EPPlus ライブラリを使用して Excel ファイルを作成する方法を示します。

using System;
using System.IO;
using OfficeOpenXml;

namespace ExcelCreationExample
{
    class Program
    {
        static void Main(string[] args)
        {
            ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
            using (var package = new ExcelPackage())
            {
                var worksheet = package.Workbook.Worksheets.Add("Sheet1");
                worksheet.Cells[1, 1].Value = "Hello";
                worksheet.Cells[1, 2].Value = "World";
                var file = new FileInfo("example.xlsx");
                package.SaveAs(file);
                Console.WriteLine("Excel file created successfully!");
            }
        }
    }
}

C# で NPOI を使用して Excel ファイルを作成する

このスクリプトは、NPOI ライブラリを使用して C# で Excel ファイルを作成する方法を示します。

using System;
using System.IO;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;

namespace ExcelCreationExample
{
    class Program
    {
        static void Main(string[] args)
        {
            IWorkbook workbook = new XSSFWorkbook();
            ISheet sheet = workbook.CreateSheet("Sheet1");
            IRow row = sheet.CreateRow(0);
            row.CreateCell(0).SetCellValue("Hello");
            row.CreateCell(1).SetCellValue("World");
            using (var file = new FileStream("example.xlsx", FileMode.Create, FileAccess.Write))
            {
                workbook.Write(file);
            }
            Console.WriteLine("Excel file created successfully!");
        }
    }
}

C# で ClosedXML を使用して Excel ファイルを作成する

Microsoft Office を必要とせずに C# で Excel ファイルを作成するためのもう 1 つの優れたライブラリは、ClosedXML です。 ClosedXML は、Excel 2007 以降 (.XLSX) ファイルの読み取り、操作、書き込みを行うための .NET ライブラリです。直感的で使いやすいため、開発者の間で人気があります。 ClosedXML を使用すると、セルの書式設定、数式の追加、表の作成などの豊富な機能を備えた Excel ファイルを作成できます。 ClosedXML の使用を開始するには、NuGet 経由でインストールする必要があります。セットアップ後は、わずか数行のコードで新しい Excel ワークブックを作成できます。たとえば、新しいワークブックを開始し、次のコマンドを使用して「Sheet1」という名前のワークシートを追加します。 var workbook = new XLWorkbook(); そして var worksheet = workbook.Worksheets.Add("Sheet1"); コマンド。

次のようなコマンドを使用してデータをセルに追加できます。 worksheet.Cell(1, 1).Value = "Hello";を使用すると、シンプルで読みやすいコマンドを使用して、セルの書式設定、枠線の追加、フォント スタイルの設定を行うことができます。データを設定したら、次を使用してワークブックをファイルに保存します。 workbook.SaveAs("example.xlsx");。 ClosedXML は、ピボット テーブル、条件付き書式設定、グラフなどの幅広い機能をサポートしており、複雑な Excel ドキュメントをプログラムで作成するための強力なツールとなっています。この柔軟性により、開発者は Microsoft Office のインストールに依存せずに、特定のニーズに合わせた Excel ファイルを生成できるため、アプリケーションの展開と配布が簡素化されます。

C# での Excel ファイルの作成に関するよくある質問

  1. EPPlus をプロジェクトにインストールするにはどうすればよいですか?
  2. 次のコマンドで NuGet パッケージ マネージャーを使用して EPPlus をインストールできます。 Install-Package EPPlus
  3. EPPlus と NPOI の違いは何ですか?
  4. EPPlus は使いやすさと .XLSX ファイルのみのサポートで知られていますが、NPOI は .XLS 形式と .XLSX 形式の両方をサポートしていますが、学習曲線がより急です。
  5. ClosedXML は大きな Excel ファイルを効率的に処理できますか?
  6. はい、ClosedXML は大きな Excel ファイルを処理できますが、パフォーマンスはデータの複雑さや実行される操作によって異なる場合があります。
  7. ClosedXML を使用して Excel ファイルにグラフを作成することはできますか?
  8. はい、ClosedXML は Excel ファイル内でのさまざまなタイプのグラフの作成をサポートしています。
  9. ClosedXML を使用してセルをフォーマットするにはどうすればよいですか?
  10. 次のようなコマンドを使用してセルを書式設定できます。 worksheet.Cell(1, 1).Style.Font.Bold = true; フォントを太字に設定します。
  11. EPPlus を使用してセルに数式を追加できますか?
  12. はい、次のようなコマンドを使用して、EPPlus のセルに数式を追加できます。 worksheet.Cells[1, 1].Formula = "SUM(A1:A10)";
  13. NPOI はどのようなファイル形式をサポートしていますか?
  14. NPOI は、.XLS と .XLSX の両方のファイル形式をサポートします。
  15. EPPlus を使用して Excel ファイルを保存するにはどうすればよいですか?
  16. コマンドを使用して Excel ファイルを保存できます。 package.SaveAs(new FileInfo("example.xlsx"));
  17. ClosedXML は無料で使用できますか?
  18. はい、ClosedXML は無料で使用でき、MIT ライセンスに基づいてライセンスが付与されています。

C# で Excel ファイルを作成する場合の最終的な考え方

Microsoft Office のインストールを必要とせずに C# で Excel ファイルを作成することは、開発者にとって非常に実用的なアプローチです。 EPPlusNPOIClosedXML などのライブラリを使用すると、Excel スプレッドシートを簡単に生成でき、幅広い機能とカスタマイズ オプションが提供されます。これらのソリューションは、開発プロセスを簡素化するだけでなく、アプリケーションの移植性を高め、さまざまな環境への展開を容易にします。