フッターコンテンツにスキップ
IRONXLの使用
データテーブルをExcelファイルに変換する方法

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

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

class="hsg-featured-snippet">

C#でDataTableをExcelにエクスポートする方法

  1. DataTableをExcelにエクスポートするためのC#ライブラリをインストール
  2. 新しいExcelワークブックを作成し、ワークシートにアクセス
  3. C#でDataTableDataRowを反復処理
  4. CellValueプロパティにアクセスし、DataRowからのデータでワークシートを埋める
  5. Excelスプレッドシートを希望する場所にエクスポート

IronXL の機能

  • IronXL runs on a variety of Operating Systems, including Windows, Linux, and macOS.
  • IronXLは、コンソール、Windowsフォームアプリケーション、およびWebアプリケーションを含む、ほぼすべての.NETフレームワークをサポートします。
  • IronXLはExcelファイルの読み取りを簡単かつ手軽にします。
  • We can load, edit, export Datatables, export datasets, and read Excel file formats such as XLSX files, XLS, CSV, TSV, XLST, XLSM files, and more with IronXL.
  • IronXLでは、XLS、CSV、TSV、JSON、XLSXなど、さまざまな拡張子のファイルを保存およびエクスポートすることができます。
  • IronXLではExcel数式を作成できます。
  • テキスト、数値、数式、日付、通貨、パーセンテージ、およびその他のExcelセルデータ形式がIronXLでサポートされています。
  • また、範囲、列、行など、さまざまな並べ替えオプションを提供します。
  • IronXLのセルスタイリングには、フォント、サイズ、背景パターン、ボーダー、整列などが含まれます。
  • IronXLを使用して、Excelファイルからデータを読み取り、エクスポートできます。
  • IronXLは、ExcelまたはInteropをサーバーにインストールする必要がありません。 IronXL APIは、Microsoft Office、Interop、およびExcelよりも高速かつ使いやすいです。

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

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

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

次に、プロジェクト名とプロジェクトの場所を入力します。

C#でのデータテーブルからの大量データエクスポート方法、図2:新しいプロジェクトの作成中の設定ステップ 新しいプロジェクトの設定ステップ

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

C#でのデータテーブルからの大量データエクスポート方法、図3:.Net Framework選択UI .Net Framework選択UI

アプリケーションがソリューションを作成すると、codeと実行/ビルドするためのprogram.csファイルが開かれます。

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

次に、ライブラリを追加してコードをテストできます。

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

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

以下のような方法です:

  • 10 プロジェクト
  • Visual Studioのコマンドラインを使用。
  • NuGet Webサイトからの直接ダウンロード。
  • IronXL Webサイトからの直接ダウンロード。

2.1 Visual Studio の使用

NuGetパッケージマネージャを使用してIronXLライブラリをインストールできます。 まず、NuGetパッケージマネージャを開き、ブラウズタブでIronXLを検索します。 検索結果からIronXLを選択し、インストールします。 その後、IronXLライブラリをプロジェクトで使用できるようになります。

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

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

検索結果のIronXL:

C#でのデータテーブルからの大量データエクスポート方法、図6:IronXLライブラリを検索 IronXLライブラリを検索

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

多くの人が操作を行うためにコンソールを好んで使用します。 そこで、コンソールでもインストールできます。 以下の手順に従ってコマンドラインでIronXLをインストールします。

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

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

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

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

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

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

2.4 IronXL Webサイトからの直接ダウンロード

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

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

3 IronXLを使用してDataTableをExcelファイルにエクスポートする

IronXLを使用すると、DataTableを簡単にExcelファイルにエクスポートできます。

まず、以下のコードスクリーンショットに示されているように、IronXLの名前空間を含める必要があります。 一度追加されれば、コード内でIronXLクラスとメソッドを使用できます。

C#でのデータテーブルからの大量データエクスポート方法、図8:ライブラリ使用前にIronXLの名前空間を含める ライブラリ使用前にIronXLのnamespaceを含める

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

using System;
using System.Data;
using IronXL;

public class ExcelExporter
{
    /// <summary>
    /// Exports a DataTable to an Excel file using IronXL.
    /// </summary>
    /// <param name="filePath">The file path where the Excel file will be saved.</param>
    public static void ExportToExcel(string filePath)
    {
        // Creating a DataTable with a single column
        DataTable table = new DataTable();
        table.Columns.Add("DataSet_Animal", typeof(string));

        // Adding some rows to the DataTable
        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");

        // Creating a new Excel Workbook
        WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);

        // Accessing the default worksheet
        WorkSheet ws = wb.DefaultWorkSheet;

        // Iterating through the DataTable rows
        int rowCount = 1;
        foreach (DataRow row in table.Rows)
        {
            // Adding each DataRow's first column value to the corresponding cell in the worksheet
            ws["A" + rowCount].Value = row[0].ToString();
            rowCount++;
        }

        // Saving the workbook to a CSV file at specified file path with ";" as delimiter
        wb.SaveAsCsv(filePath, ";");
    }
}
using System;
using System.Data;
using IronXL;

public class ExcelExporter
{
    /// <summary>
    /// Exports a DataTable to an Excel file using IronXL.
    /// </summary>
    /// <param name="filePath">The file path where the Excel file will be saved.</param>
    public static void ExportToExcel(string filePath)
    {
        // Creating a DataTable with a single column
        DataTable table = new DataTable();
        table.Columns.Add("DataSet_Animal", typeof(string));

        // Adding some rows to the DataTable
        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");

        // Creating a new Excel Workbook
        WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);

        // Accessing the default worksheet
        WorkSheet ws = wb.DefaultWorkSheet;

        // Iterating through the DataTable rows
        int rowCount = 1;
        foreach (DataRow row in table.Rows)
        {
            // Adding each DataRow's first column value to the corresponding cell in the worksheet
            ws["A" + rowCount].Value = row[0].ToString();
            rowCount++;
        }

        // Saving the workbook to a CSV file at specified file path with ";" as delimiter
        wb.SaveAsCsv(filePath, ";");
    }
}
Imports System
Imports System.Data
Imports IronXL

Public Class ExcelExporter
	''' <summary>
	''' Exports a DataTable to an Excel file using IronXL.
	''' </summary>
	''' <param name="filePath">The file path where the Excel file will be saved.</param>
	Public Shared Sub ExportToExcel(ByVal filePath As String)
		' Creating a DataTable with a single column
		Dim table As New DataTable()
		table.Columns.Add("DataSet_Animal", GetType(String))

		' Adding some rows to the DataTable
		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")

		' Creating a new Excel Workbook
		Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)

		' Accessing the default worksheet
		Dim ws As WorkSheet = wb.DefaultWorkSheet

		' Iterating through the DataTable rows
		Dim rowCount As Integer = 1
		For Each row As DataRow In table.Rows
			' Adding each DataRow's first column value to the corresponding cell in the worksheet
			ws("A" & rowCount).Value = row(0).ToString()
			rowCount += 1
		Next row

		' Saving the workbook to a CSV file at specified file path with ";" as delimiter
		wb.SaveAsCsv(filePath, ";")
	End Sub
End Class
$vbLabelText   $csharpLabel

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

foreachループを使用して、DataTableの値を一つずつ読み取り、それをワークシートに追加しています。 すべての値がワークシートに追加されたら、メソッドSaveAsCsvを使用してCSVファイルに保存します。場所とファイル名をパラメーターとして渡す必要があります。 デリミタはオプションのパラメーターであり、必要ない場合は無視してもかまいません。

C#でのデータテーブルからの大量データエクスポート方法、図9:Visual Studioでの完成したコード Visual Studioでの完成したコード

上記は.NET Core 6で使用しているコードのフルスクリーンショットです。

結果:

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

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

4 結論

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

よくある質問

C#でDataTableをExcelファイルにエクスポートするにはどうすればよいですか?

IronXLのWorkBookとWorkSheetクラスを使用して、DataTableをExcelファイルにエクスポートできます。DataTableを作成し、その行を繰り返し処理して、IronXLのAPIを使用してデータをExcelファイルに埋め込むことができます。

Excel操作において、IronXLをInteropと比較して使用する利点は何ですか?

IronXLはMicrosoft Interopよりも高速かつ効率的であり、Microsoft Excelのインストールが不要で、複数のプラットフォームやファイル形式をサポートしています。

IronXLがサポートするExcelファイル形式にはどのようなものがありますか?

IronXLは、XLSX、XLS、CSV、TSV、XLST、XLSMなどのさまざまなExcelファイル形式をサポートしており、多様なファイル操作が可能です。

IronXLはデータをエクスポートする際、Excelの数式を扱うことができますか?

はい、IronXLはExcelの数式を扱うことができ、DataTableからExcelファイルにデータをエクスポートする際の複雑な計算を保持します。

IronXLはどのオペレーティングシステムと互換性がありますか?

IronXLは、Windows、Linux、macOSを含む複数のオペレーティングシステムと互換性があり、クロスプラットフォーム開発を可能にします。

IronXLを使用するのにMicrosoft Excelをインストールする必要がありますか?

いいえ、IronXLはMicrosoft Excelとは独立して動作するため、サーバーにExcelをインストールせずにExcelファイルを操作できます。

C#プロジェクトでIronXLをどのようにインストールすればよいですか?

IronXLはVisual StudioのNuGet Package Managerを経由で、コマンドラインを使用して、またはNuGetやIronXLのWebサイトから直接ダウンロードしてインストールできます。

IronXLはどの.NETフレームワークをサポートしていますか?

IronXLは、コンソール、Windowsフォームアプリケーション、Webアプリケーションなど、さまざまな.NETフレームワークをサポートしており、異なる種類のプロジェクトに対応可能です。

IronXLはExcelファイル内のセルのスタイル設定や書式設定をサポートしていますか?

はい、IronXLはフォントスタイル、色、境界線の設定など、Excelファイルの外観を向上させるさまざまなセルのスタイル設定とフォーマットオプションを提供します。

IronXLはプログラム的にExcelファイルを作成するプロセスをどのように簡素化しますか?

IronXLは、使いやすいAPIを提供することで、他の方法が必要とするインターフェースや構造の維持という複雑さを伴わずにExcelファイルの作成、修正、エクスポートを簡素化します。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。