IRONXLの使用

C# で DataTable を Excel に変換する (コード例チュートリアル)

リーガン・パン
リーガン・パン
2022年6月26日
更新済み 2024年1月7日
共有:

プログラムを使ってExcelスプレッドシートを変更することは、主に2つの理由で難しいことがあります。 まず、スプレッドシートを扱う際には、一貫したインターフェースと文書構造を維持する必要がありますが、これは常に簡単ではありません。 第二に、特に高度な計算が関わる場合、特定の状況でどのコードが機能するのかが必ずしも明確ではありません。 プログラムによってExcelファイルを作成することが難しい理由は数多くあります。 プログラマーはまずExcelドキュメント内のデータを読み取り可能な形式に変換し、その後そのデータを解析して再度解析し直す必要があるため、さらに困難です。 私はこの問題の解決策を考え出しました。 IronXL .NET Excel ライブラリを使用して、問題なくExcelファイルを作成し、プログラムでDataTableをExcelシートにエクスポートする方法を教えます。 始めましょう:

IronXLの機能

  • IronXLはWindows、LinuxmacOSを含むさまざまなオペレーティングシステムで動作します。
  • IronXLは、コンソール、Windowsフォームアプリケーション、Webアプリケーションを含むほぼすべての.NETフレームワークをサポートしています。
  • IronXLはExcelファイルの読み取りを簡単かつ容易にします。
  • IronXLを使用して、Datatablesを読み込んで編集し、エクスポートできます。データセットをエクスポートしたり、XLSXファイル、XLS、CSV、TSV、XLST、XLSMファイルなどのExcelファイル形式を読み取ることができます
  • IronXLを使用すると、XLS、CSV、TSV、JSON、XLSXなど、さまざまな拡張子でファイルを保存し、エクスポートできます。
  • Excel の数式は IronXL によって作成できます。
  • テキスト、数値、数式、日付、通貨、パーセンテージ、その他のExcelセルデータフォーマットはIronXLでサポートされています。
  • それはまた、範囲、列、および行などの多くの並べ替えオプションを提供します。
  • IronXLでのセルのスタイリングには、フォント、サイズ、背景パターン、境界線、配置などが含まれます。
  • IronXL を使用して、Excel ファイルからデータを読み取り、エクスポートすることができます。
  • IronXLは、サーバーにExcelやInteropをインストールする必要はありません。 IronXL APIは、Microsoft Office、Interop、およびExcelよりも速く、使いやすいです。

Visual Studioで新しいプロジェクトを作成する

IronXLライブラリを使用するには、Visual Studioで.NETプロジェクトを作成する必要があります。 Visual Studioの任意のバージョンを使用できますが、最新バージョンを推奨します。 要件に応じて、Windows Forms のようなアプリケーションやさまざまなプロジェクトテンプレートを作成することができます。 このチュートリアルでは、簡潔さのためにコンソール アプリケーションを使用します。

C#で大量のデータをデータテーブルからExcelにエクスポートする方法、図1: Visual Studioで新しいプロジェクトUIを作成

Visual Studioで新しいプロジェクトUIを作成する

次に、プロジェクト名とプロジェクトの場所を入力してください。

C#でDatatableからExcelに大規模データをエクスポートする方法、図2: 新しいプロジェクトを作成する際の構成ステップ

新しいプロジェクトを作成する際の設定手順

次に、以下のフレームワークを選択してください。 このプロジェクトでは、.NET Core 6を使用します。

大量のデータをデータテーブルからExcelにエクスポートする方法(C#)、図3: .Net Framework選択UI

.Net Framework 選択UI

アプリケーションがソリューションを作成すると、program.csファイルが開かれ、コードを入力してアプリケーションをビルド/実行することができます。

C#でデータテーブルからExcelに大量データをエクスポートする方法、図4: 新しいプロジェクトの空のprogram.csファイル

新しいプロジェクトのprogram.csファイルが空です

次に、コードをテストするためにライブラリを追加します。

IronXLライブラリをインストールする

IronXLライブラリは、4つの方法でダウンロードおよびインストールできます。

これらは:

  • Visual Studio を使用して
  • Visual Studio コマンドラインの使用。
  • NuGetウェブサイトから直接ダウンロードします。
  • IronXLのウェブサイトからの直接ダウンロード。

2.1 Visual Studioの使用

私たちはNuGetパッケージマネージャーを使用してIronXLライブラリをインストールすることができます。 まず、NuGet パッケージ マネージャーを開き、ブラウズタブで IronXL を検索する必要があります。 検索結果からIronXLを選択してインストールしてください。 その後、プロジェクトはIronXLライブラリで使用できるようになります。

以下のスクリーンショットは、Visual StudioでNuGetパッケージマネージャーを開く方法を示しています。

C#でデータテーブルから大量のデータをExcelにエクスポートする方法、図5: Visual StudioでNuGetパッケージマネージャーに移動する

Visual StudioのNuGet パッケージ マネージャーに移動する

検索結果のIronXL:

大量データをデータテーブルからExcelにエクスポートする方法(C#):図6: IronXL ライブラリを検索

IronXLライブラリを検索

2.2 Visual Studio コマンドラインの使用

多くの人々は操作を行うためにコンソールを使用することを好みます。 したがって、コンソールからもインストールすることができます。 以下の手順に従って、コマンドラインからIronXLをインストールしてください。

  • Visual Studioで、ツール -> NuGet パッケージマネージャー -> パッケージマネージャーコンソールに移動します。
  • パッケージマネージャーコンソールタブに次の行を入力してください:
Install-Package IronXL.Excel

現在、パッケージは現在のプロジェクトにダウンロード/インストールされ、使用できるようになります。

C#でDataTableからExcelに大量のデータをエクスポートする方法、図7: コンソール経由でIronXLパッケージをインストールする

コンソールを介してIronXLパッケージをインストール

2.3 NuGetウェブサイトからの直接ダウンロード

3つ目の方法は、ウェブサイトから直接NuGetパッケージをダウンロードすることです。

  • NuGetの公式IronXLパッケージページに移動します。
  • 右側のメニューからダウンロードパッケージオプションを選択してください。
  • ダウンロードしたパッケージをダブルクリックしてください。 自動的にインストールされます。
  • 次に、ソリューションをリロードして、プロジェクトで使用を開始します。

IronXLのウェブサイトから直接ダウンロード

リンクをクリックして、最新のパッケージをウェブサイトから直接ダウンロードしてください。ダウンロードが完了したら、以下の手順に従ってプロジェクトにパッケージを追加します。

  • ソリューションウィンドウからプロジェクトを右クリックします。
  • 次に、オプションの参照を選択し、ダウンロードした参照の場所を参照してください。
  • 次に、参照を追加するために「OK」をクリックしてください。

IronXLを使用して3つのDatatableをExcelファイルにエクスポート

IronXLは、少ない手順でDatatablesをExcelファイルに簡単にエクスポートすることができます。

まず、以下のコード画面のようにIronXLの名前空間を含める必要があります。 追加されたら、IronXL のクラスとメソッドをコードで使用できます。

C#でDatatableからExcelへの大規模データのエクスポート方法、図8: ライブラリを使用する前にIronXLの名前空間を含める

ライブラリを使用する前にIronXLのnamespaceを含めます

IronXLを使用すると、Excelファイルを作成し、それらをワークブックオブジェクトに変換することができます。 オブジェクトに変換した後、さまざまな種類の操作を実行することができます。 以下のサンプルコードでは、Datatable を Excel ワークシートに変換し、その後 Excel ファイルを作成します。

public static void ExportToExcel(string filePath)
{
    DataTable table = new DataTable();
    table.Columns.Add("DataSet_Animal", typeof(string));
    table.Rows.Add("Lion");
    table.Rows.Add("Tiger");
    table.Rows.Add("Cat");
    table.Rows.Add("Goat");
    table.Rows.Add("Panther");
    table.Rows.Add("Fox");
    table.Rows.Add("Cheetah");
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
    WorkSheet ws = wb.DefaultWorkSheet;
    int rowCount = 1;
    foreach (DataRow row in table.Rows)
    {
        ws ["A" + (rowCount)].Value = row [0].ToString();
        rowCount++;
    }
    wb.SaveAsCsv(filePath, ";");
}
public static void ExportToExcel(string filePath)
{
    DataTable table = new DataTable();
    table.Columns.Add("DataSet_Animal", typeof(string));
    table.Rows.Add("Lion");
    table.Rows.Add("Tiger");
    table.Rows.Add("Cat");
    table.Rows.Add("Goat");
    table.Rows.Add("Panther");
    table.Rows.Add("Fox");
    table.Rows.Add("Cheetah");
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
    WorkSheet ws = wb.DefaultWorkSheet;
    int rowCount = 1;
    foreach (DataRow row in table.Rows)
    {
        ws ["A" + (rowCount)].Value = row [0].ToString();
        rowCount++;
    }
    wb.SaveAsCsv(filePath, ";");
}
Public Shared Sub ExportToExcel(ByVal filePath As String)
	Dim table As New DataTable()
	table.Columns.Add("DataSet_Animal", GetType(String))
	table.Rows.Add("Lion")
	table.Rows.Add("Tiger")
	table.Rows.Add("Cat")
	table.Rows.Add("Goat")
	table.Rows.Add("Panther")
	table.Rows.Add("Fox")
	table.Rows.Add("Cheetah")
	Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
	Dim ws As WorkSheet = wb.DefaultWorkSheet
	Dim rowCount As Integer = 1
	For Each row As DataRow In table.Rows
		ws ("A" & (rowCount)).Value = row (0).ToString()
		rowCount += 1
	Next row
	wb.SaveAsCsv(filePath, ";")
End Sub
$vbLabelText   $csharpLabel

上記のコードでは、データテーブルをExcelファイルにエクスポートしています。まず、DataTableを作成し、その後に列ヘッダーを作成しています。 列を作成した後、列を一つ一つ追加します。 列を追加したら、次にWorkBookオブジェクトを作成します。 オブジェクトを使用することにより、データをExcelシートに追加し、その後、データを指定の場所に保存することができます。 私たちはWorkSheetオブジェクトを作成しています。これはワークシートの作成を可能にし、その後、このワークシートをWorkBookオブジェクトに追加できます。

データテーブルの値を一つずつ読み込むためにforeachループを使用し、その後ワークシートに値を追加します。 すべての値がワークシートに追加されたら、SaveAsCSVというメソッドを使用してそれらをCSVファイルに保存します。パラメーターとして区切り文字とファイル名、場所を指定する必要があります。 区切り文字は、必要ない場合は無視できるオプションのパラメータです。

C#でDatatableからExcelへ大量データをエクスポートする方法、図9:Visual Studioでの完成したコード

Visual Studioで完成したコード

上記は、私たちが .NET Core 6 で使用しているコードの完全なスクリーンショットです。

結果:

C#でデータテーブルからExcelに大量のデータをエクスポートする方法、図10: Microsoft Excelでファイルを開いたときの結果

Microsoft Excelでファイルを開いたときの結果

上記は、実行されたコードサンプルの結果です。 スクリーンショットでは、データテーブルに存在するすべてのデータが、新しく作成されたExcelシートに一つずつ追加されています。

4 結論

IronXLは最も一般的に使用されるExcelライブラリの一つです。 他のサードパーティライブラリに依存しません。 それは独立しており、MS Excelをインストールする必要がありません。 複数のプラットフォームで動作します。 IronXLの導入価格は$749から始まります。 また、製品サポートと更新に対する1年間の料金オプションを提供しています。 IronXLは、追加費用でロイヤリティーフリーの再配布をカバーしています。価格の詳細については、ライセンスページをご覧ください。

リーガン・パン
ソフトウェアエンジニア
レーガンはリーディング大学で電子工学の学士号を取得しました。Iron Softwareに入社する前の仕事では、一つのタスクに集中して取り組んでいました。Iron Softwareでは、営業、技術サポート、製品開発、マーケティングのいずれにおいても広範な業務に携わることが最も楽しいと感じています。彼は、Iron Softwareライブラリを開発者がどのように使用しているかを理解し、その知識を使ってドキュメントを継続的に改善し、製品を開発することを楽しんでいます。
< 以前
C# でプログラムによって Excel ファイルを開く (コード例チュートリアル)
次へ >
エクセルで行を移動する方法