フッターコンテンツにスキップ
IRONXLの使用

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

IronXL は、開発者が C# .NET テクノロジーで Microsoft Excel ドキュメントや CSV ファイルとやり取りするのを可能にする人気のライブラリで、Microsoft Excel のインストールを必要としません。 登録済みの型を CSV ファイルに自動変換し、カスタム構造を持つ CSV ファイルを作成することができます。

IronXL ライブラリの機能

C# IronXL .NET ライブラリを使用して、Microsoft Excel ドキュメントを読み取って CSV ファイルに変換することができます。 IronXL は、さまざまなスプレッドシート形式を読み取ることができるスタンドアロンの .NET ソフトウェアライブラリです。 Microsoft.Office.Interop.Excel に依存せず、Microsoft Excel のインストールも必要ありません。

ユーザーフレンドリーな IronXL の C# API を使用すると、.NET 環境で Excel スプレッドシートファイルを迅速に読み取り、変更し、作成することができます。 .NET Core、.NET Framework、Xamarin、モバイル、Linux、macOS、Azure のすべてが IronXL によって完全にサポートされています。

  • C# 用の .NET Core および .NET Framework の主要な Excel スプレッドシートライブラリには IronXL が含まれます。
  • Console、Windows Forms、Web を含むほとんどすべての .NET Framework を IronXL がサポートしています。
  • IronXL は、Windows、Linux、macOS を含むさまざまなオペレーティングシステムで動作します。
  • IronXL を使用すると、Excel ファイルの読み取りが簡単かつ迅速に行えます。
  • IronXL は、XLSX、XLS、CSV、TSV、XLST、XLSM など、さまざまな Excel ファイル形式の読み取りに対応しています。 また、データテーブルのエクスポート、データセットのエクスポートなども可能です。
  • IronXL は、XLS、CSV、TSV、JSON など、幅広い拡張子のファイルの出力と保存が可能です。
  • IronXL はExcel 計算を生成できます。
  • IronXL は、テキスト、数字、数式、日付、通貨、パーセンテージなどさまざまなExcel 列データ形式をサポートしています。

詳しくはこちらをご覧ください。

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

Visual Studio で IronXL フレームワークを使用する前に .NET プロジェクトを作成する必要があります。 Visual Studio のバージョンはどれでも利用可能ですが、最新のものをお勧めします。 ニーズに応じて、Windows Forms のようなアプリケーションやさまざまなプロジェクトテンプレートを作成できます。 シンプルにするために、このレッスンではコンソールアプリケーションを使用します。

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

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

C# でデータテーブルを CSV にエクスポートする方法、図 2: 新しいプロジェクトを構成 新しいプロジェクトの設定

次に、次の構造を選択します。 .NET Core 6 をこの作業で使用します。

C# でデータテーブルを CSV にエクスポートする方法、図 3: .NET フレームワークのバージョンを選択 .NET Frameworkのバージョンを選択

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

C# でデータテーブルを CSV にエクスポートする方法、図 4: 新しく作成されたコンソールアプリケーションプロジェクト 新しく作成されたコンソールアプリケーションプロジェクト

その後、ライブラリを追加してコードを評価するために使用することができます。

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

IronXL ライブラリをダウンロードしてインストールする方法は 4 つあります。

それらは次のとおりです。

  • Visual Studio からインストール
  • Visual Studio パッケージ マネージャー コンソールを使用してインストール
  • NuGet ウェブサイトから直接ダウンロード
  • IronXL ウェブサイトから直接ダウンロード

Visual Studio を使用して IronXL をインストールする

NuGet パッケージ マネージャーを使用して、IronXL モジュールをインストールできます。 IronXL を見つけるには、まず NuGet パッケージ マネージャーを起動し、ブラウズ ペインで探します。 検索結果から選択して IronXL をインストールします。 その後、このアプリで IronXL ライブラリを使用できるようになります。

以下の画像は、Visual Studio の NuGet パッケージ マネージャーを起動する方法を示しています。

C# でデータテーブルを CSV にエクスポートする方法、図 5: NuGet パッケージ マネージャーに移動 NuGetパッケージマネージャへのナビゲート

C# でデータテーブルを CSV にエクスポートする方法、図 6: NuGet パッケージ マネージャー UI で IronXL パッケージをインストール NuGet パッケージ マネージャー UI で IronXL パッケージをインストール

Visual Studio NuGet パッケージ マネージャー コンソールを使用して IronXL をインストールする

多くの人はタスクを実行するのにコンソールを利用するのが好きです。 したがって、ターミナルインストールもオプションです。 コマンドラインを使用して IronXL をインストールするには、以下の手順に従ってください。

  • Visual Studio の ツール > NuGet パッケージ マネージャー > パッケージ マネージャー インターフェイスに移動します。
  • パッケージ マネージャーのコンソールタブに次のコマンドを入力します。

    Install-Package IronXL.Excel
  • IronXL がアクティブなプロジェクトにダウンロードおよびインストールされるのを待ちます。

C# でデータテーブルを CSV にエクスポートする方法、図 7: パッケージ マネージャー コンソール UI で IronXL パッケージをインストール パッケージ マネージャー コンソール UI で IronXL パッケージをインストール

NuGet ウェブサイトから直接 IronXL をダウンロードする

NuGet パッケージはウェブサイトから直接ダウンロードすることができます。

  • 公式の NuGet リンク を確認してください。
  • ダウンロードパッケージの選択肢は右のメニューにあります。
  • 保存されたファイルを二回クリックします。それはすぐにインストールされます。
  • その後、ソリューションを再読み込みし、プロジェクトで利用を始めます。

IronXL ウェブサイトから直接入手する

ウェブサイトから最新のパッケージを直接ダウンロードするには、この IronXL ZIP ファイルのダウンロードリンク をクリックしてください。 このリンクは IronXL のライブラリ DLL の最新バージョンを含む ZIP ファイルをダウンロードします。 ダウンロードが終了したら、ZIP ファイルの内容を任意のディレクトリに抽出します。

ダウンロードしたファイルをプロジェクトに追加するには、以下の手順に従ってください。

  • ソリューションウィンドウから、プロジェクトを右クリックします。
  • 参照を選択し、IronXL DLLs を含む抽出されたフォルダーに移動します。
  • DLL を選択し、OK をクリックしてアクティブなプロジェクトに参照として追加します。

3. CSV ファイルへのエクスポート

データテーブルは IronXL を使用して簡単かつ迅速に CSV ファイルに作成することができます。 新しい CSV ファイルにデータを記述するのに役立ちます。

最初に、下のコード画像のように、IronXL ネームスペースを含めて IronXL クラスとメソッドを使用します。

C# でデータテーブルを CSV にエクスポートする方法、図 8: 一般的なネームスペースを追加 一般的なネームスペースを追加

Excel ファイルは IronXL を使用して作成され、その後 WorkBook オブジェクトに変換されます。 その後、オブジェクトに変換した後、それらに対してさまざまな操作を行います。 以下のサンプルコードは、DataTable を Excel ワークシートに変換して Excel ファイルをビルドします。

using IronXL;
using System.Data;

// Entry point of the application
static void Main(string[] args)
{
    // Specify the file path for the CSV file output
    ExportToExcel("H:\\test.csv");
}

// Exports the DataTable to an Excel file and saves it as CSV
public static void ExportToExcel(string filepath)
{
    // Create a DataTable and add columns and rows
    DataTable table = new DataTable();
    table.Columns.Add("DataSet_Fruits", typeof(string));
    table.Rows.Add("Apple");
    table.Rows.Add("Orange");
    table.Rows.Add("Strawberry");
    table.Rows.Add("Grapes");
    table.Rows.Add("Watermelon");
    table.Rows.Add("Bananas");
    table.Rows.Add("Lemons");

    // Create a new WorkBook and add the DataTable data to it
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
    var writer = wb.DefaultWorkSheet;
    int rowCount = 1;
    foreach (DataRow row in table.Rows)
    {
        // Write each item from the DataTable into the worksheet starting from cell A1
        writer["A" + (rowCount)].Value = row[0].ToString();
        rowCount++;
    }
    // Save the workbook as a CSV file with a specified delimiter
    wb.SaveAsCsv(filepath, ";");
}
using IronXL;
using System.Data;

// Entry point of the application
static void Main(string[] args)
{
    // Specify the file path for the CSV file output
    ExportToExcel("H:\\test.csv");
}

// Exports the DataTable to an Excel file and saves it as CSV
public static void ExportToExcel(string filepath)
{
    // Create a DataTable and add columns and rows
    DataTable table = new DataTable();
    table.Columns.Add("DataSet_Fruits", typeof(string));
    table.Rows.Add("Apple");
    table.Rows.Add("Orange");
    table.Rows.Add("Strawberry");
    table.Rows.Add("Grapes");
    table.Rows.Add("Watermelon");
    table.Rows.Add("Bananas");
    table.Rows.Add("Lemons");

    // Create a new WorkBook and add the DataTable data to it
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
    var writer = wb.DefaultWorkSheet;
    int rowCount = 1;
    foreach (DataRow row in table.Rows)
    {
        // Write each item from the DataTable into the worksheet starting from cell A1
        writer["A" + (rowCount)].Value = row[0].ToString();
        rowCount++;
    }
    // Save the workbook as a CSV file with a specified delimiter
    wb.SaveAsCsv(filepath, ";");
}
Imports IronXL
Imports System.Data

' Entry point of the application
Shared Sub Main(ByVal args() As String)
	' Specify the file path for the CSV file output
	ExportToExcel("H:\test.csv")
End Sub

' Exports the DataTable to an Excel file and saves it as CSV
Public Shared Sub ExportToExcel(ByVal filepath As String)
	' Create a DataTable and add columns and rows
	Dim table As New DataTable()
	table.Columns.Add("DataSet_Fruits", GetType(String))
	table.Rows.Add("Apple")
	table.Rows.Add("Orange")
	table.Rows.Add("Strawberry")
	table.Rows.Add("Grapes")
	table.Rows.Add("Watermelon")
	table.Rows.Add("Bananas")
	table.Rows.Add("Lemons")

	' Create a new WorkBook and add the DataTable data to it
	Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
	Dim writer = wb.DefaultWorkSheet
	Dim rowCount As Integer = 1
	For Each row As DataRow In table.Rows
		' Write each item from the DataTable into the worksheet starting from cell A1
		writer("A" & (rowCount)).Value = row(0).ToString()
		rowCount += 1
	Next row
	' Save the workbook as a CSV file with a specified delimiter
	wb.SaveAsCsv(filepath, ";")
End Sub
$vbLabelText   $csharpLabel

上述のコードは、DataTable を Excel ファイルにエクスポートします。DataTable が作成されると、列見出しが作成されます。 次に、最初の列を設立した後、一行ずつ追加します。 DataTable オブジェクトに列や行を追加した後に、それらのデータを保持するための WorkBook オブジェクトが作成されます。 その後、WorkBook オブジェクトに追加されるWorkSheet オブジェクトが構築されます。

DataTable からの各値が読み取られ、WorkSheet に値を追加する前に foreach ループが使用されます。 ワークシートにすべての値が追加された後、SaveAsCsv メソッドを使用してそれらを CSV ファイルに保存します。同時に、区切り文字と場所を指定してファイル名を引数として渡すことができます。

C# でデータテーブルを CSV にエクスポートする方法、図 9: 出力の CSV ファイル 出力されたCSVファイル

上記の実行結果のサンプル結果が示されています。 スクリーンショットでは、データテーブルの各データが新しく形成された Excel シートに個別に追加されています。

IronXL チュートリアルの詳しい情報については、Excel フォーマットへのエクスポート方法をクリックしてください。

結論

IronXL は最も人気のある Excel ツールの一つです。 それは外部ソースからのいかなる他のライブラリにも依存しません。 それは自立しており、Microsoft Excel のインストールを必要としません。 それは多くのチャネルで動作します。

IronXL はプログラムで実装されるすべての Microsoft Excel ドキュメント関連タスクのためのオールインワンソリューションを提供します。 数式の計算、文字列または数字の並べ替え、トリミングおよび追記、検索と置換、結合と結合解除、ファイルの保存などを実行できます。また、セルデータ形式を設定およびスプレッドシートデータを検証できます。 また、CSV ファイルの読み取りと書き込みもサポートしており、Excel データのように扱うことができます。

IronXL の開始価格は$799です。 また、製品サポートおよび更新のための 1 年間のサブスクリプション費用を支払う選択肢も提供しています。 追加料金で、IronXL は無制限の再配布のためのセキュリティを提供します。 より詳細な約価格情報を調べるには、このライセンスページをご覧ください。

よくある質問

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

IronXLを使用して、ワークブックを作成し、データをワークシートオブジェクトにエクスポートすることで、DataTableをCSVファイルにエクスポートできます。これにより、Microsoft Excelを必要とせずにスムーズな変換とエクスポートが可能になります。

このライブラリを使ってどんなファイル形式をエクスポートできますか?

IronXLは、XLS、CSV、TSV、JSONなどの様々な形式でデータをエクスポートでき、異なるデータニーズに柔軟に対応します。

このライブラリでExcelのような操作を行うことは可能ですか?

はい、IronXLは、数式計算、データソート、ファイル保存といったExcelに似た操作を可能にし、Excel関連のプログラミングタスクに包括的なツールです。

このライブラリを使用するためにMicrosoft Excelをインストールする必要がありますか?

いいえ、IronXLはスタンドアロンの.NETライブラリで、Microsoft Excelをインストールする必要がなく、開発者がC#アプリケーション内で直接Excel文書を操作できます。

このライブラリと互換性のあるプラットフォームは何ですか?

IronXLは、.NET Core、.NET Framework、Xamarin、およびWindows、Linux、macOSといったオペレーティングシステムを含む複数のプラットフォームと互換性があります。

プロジェクトにIronXLライブラリをインストールするにはどうすれば良いですか?

.NETプロジェクトにIronXLをインストールするには、Visual Studioを使用してNuGetパッケージマネージャーにアクセスするか、NuGetまたはIronXLウェブサイトから直接ダウンロードします。

このライブラリの利用できる価格オプションは何ですか?

IronXLは、製品のサポートとアップデートを含む1年のサブスクリプションオプションの開始価格を提供し、継続的なサポートと最新機能へのアクセスを提供します。

Curtis Chau
テクニカルライター

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

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