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

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

IronXL を使用すると、Microsoft Excel をインストールしなくても、C# でDataTableから CSV へのシームレスな変換が可能になります。 このスタンドアロン .NET ライブラリは、カスタム構造と区切り文字を使用してDataTables CSV ファイルに自動的に変換するシンプルな API を提供し、開発者が簡単にデータをエクスポートできるようにします。

IronXL は、 Microsoft Excel をインストールしなくても、開発者が C# .NET テクノロジーで CSV ファイルなどの Microsoft Excel ドキュメントを操作できるようにする人気のライブラリです。 登録済みの型を CSV ファイルに自動変換し、カスタム構造を持つ CSV ファイルを作成することができます。

IronXL ライブラリはどのような機能を提供していますか?

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

IronXL のユーザーフレンドリーな C# APIを使用すると、.NET 環境でExcel スプレッドシート ファイルをすばやく読み取り、変更、作成できます。 .NET Core、.NET Framework、Xamarin、Mobile、 LinuxmacOSAzureはすべて IronXL で完全にサポートされています。

  • C# 用の .NET Core および .NET Framework の主要な Excel スプレッドシートライブラリには IronXL が含まれます。
  • コンソール、Windows フォーム、Web アプリケーションなど、ほぼすべての .NET Framework がサポートされています。
  • IronXL は、Windows、Linux、および macOS オペレーティング システムで動作します。
  • IronXL を使用すると、Excel ファイルの読み取りが簡単かつ迅速になります。
  • IronXL は、XLSX、XLS、CSV、TSV、XLST、XLSM ファイルなど、複数の Excel 形式をサポートしています。
  • IronXL は、XLS、CSV、TSV、JSON、XML などのさまざまな形式でファイルをエクスポートします。
  • IronXL は Excel 計算を生成し、数式をサポートします。
  • IronXL は、テキスト、数値、日付、通貨、パーセンテージなどの Excel 列データ形式をサポートしています。

詳細については、 IronXL ドキュメントの概要をご覧ください。

Visual Studio で新しいプロジェクトを作成するにはどうすればよいですか?

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

! Visual Studio の [新しいプロジェクトの作成] ダイアログには、コンソール アプリ、ASP.NET Core Web アプリ、Blazor サーバー アプリのオプションを含むさまざまな .NET プロジェクト テンプレートが表示されています。 Visual Studioで新しいプロジェクトを作成

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

! Visual Studio プロジェクト構成ダイアログには、コンソール出力を備えた Windows をターゲットとする、プロジェクト名が 'ConsoleApp1' の新しい C# コンソール アプリのセットアップが表示されています。 新しいプロジェクトの設定

次に、次の構造を選択します。 このプロジェクトでは .NET Core 6 が使用されます。

フレームワークとして .NET 6.0 (長期サポート) が選択されたコンソール アプリ構成を示す Visual Studio プロジェクト作成ダイアログ。 .NET Frameworkのバージョンを選択

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

! CSV エクスポート機能を実装するための初期コード構造を備えた IronXLConsole プロジェクトを表示する Visual Studio の空の C# コンソール アプリケーション ウィンドウ。 新しく作成されたコンソールアプリケーションプロジェクト

その後、ライブラリを追加してコードを評価するために使用することができます。 .NET MAUI アプリケーションVB.NET プロジェクトなどの他のプロジェクト タイプの場合、プロセスは同様ですが、フレームワーク固有の考慮事項があります。

どのようにIronXLライブラリをインストールしますか?

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

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

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

Visual Studio のインストールにはどの方法を使用すればよいですか?

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

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

! Visual Studio のツール メニューが展開され、[ツール] ドロップダウン メニューの下で [NuGet パッケージ マネージャー] オプションと [パッケージ マネージャー コンソール] が強調表示されています。 NuGetパッケージマネージャへのナビゲート

! NuGet パッケージ マネージャー インターフェイスには、バージョン 2022.3.0 の IronXL.Excel パッケージが表示され、ダウンロード数が 133,000 件であることと、簡単に統合できるようにインストール ボタンが表示されています。 NuGet パッケージ マネージャー UI で IronXL パッケージをインストール

パッケージ マネージャー コンソールはいつ使用すればよいですか?

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

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

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

! Visual Studio のパッケージ マネージャー コンソールに、コマンド 'Install-Package IronXL.Excel' とインストール成功の確認メッセージが表示されます。 パッケージ マネージャー コンソール UI で IronXL パッケージをインストール

NuGet Web サイトからダウンロードする理由は何ですか?

NuGet パッケージはウェブサイトから直接ダウンロードすることができます。 この方法は、インターネット アクセスが制限されている環境で作業する場合や、パッケージを手動で管理する必要がある場合に特に便利です。

*公式 NuGet リンクに移動します。

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

IronXL Web サイトから直接インストールするにはどうすればよいですか?

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

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

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

デプロイメント シナリオでは、 Docker コンテナーに IronXL をセットアップしたり、 AWS LambdaAzure Functionsなどのクラウド プラットフォームにデプロイしたりすることもできます。

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

IronXL を使用すると、 DataTables CSV ファイルに簡単かつ迅速にエクスポートできます。 カスタム区切り文字とエンコード オプションをサポートし、新しい CSV ファイルにデータを書き込むのに役立ちます。

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

! C# コード エディターでは、DataTable から CSV へのエクスポート実装の構文が強調表示された 'using IronXL;' および 'using System.Data;' 名前空間宣言が表示されています。 一般的なネームスペースを追加

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ファイルに保存します。区切り文字とファイルの場所の両方をパラメータとして指定できます。

より複雑なシナリオでは、複数の DataTables を異なるワークシートとしてエクスポートしたり、 DataSetを操作してより構造化されたデータ編成を行ったりする必要がある場合があります。

さまざまなCSV形式の操作

IronXL は、CSV ファイルの操作時に柔軟性を提供します。 以下は、カスタム書式とエンコードを使用してDataTableをエクスポートする方法を示した例です。

// Export with custom delimiter and encoding
public static void ExportToCSVWithOptions(DataTable dataTable, string filepath)
{
    // Create workbook from DataTable
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
    WorkSheet ws = wb.CreateWorkSheet("DataExport");

    // Add headers
    for (int i = 0; i < dataTable.Columns.Count; i++)
    {
        ws[$"{(char)('A' + i)}1"].Value = dataTable.Columns[i].ColumnName;
    }

    // Add data rows
    for (int row = 0; row < dataTable.Rows.Count; row++)
    {
        for (int col = 0; col < dataTable.Columns.Count; col++)
        {
            ws[$"{(char)('A' + col)}{row + 2}"].Value = dataTable.Rows[row][col];
        }
    }

    // Save with custom delimiter (comma) and UTF-8 encoding
    wb.SaveAsCsv(filepath, ",", System.Text.Encoding.UTF8);
}
// Export with custom delimiter and encoding
public static void ExportToCSVWithOptions(DataTable dataTable, string filepath)
{
    // Create workbook from DataTable
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
    WorkSheet ws = wb.CreateWorkSheet("DataExport");

    // Add headers
    for (int i = 0; i < dataTable.Columns.Count; i++)
    {
        ws[$"{(char)('A' + i)}1"].Value = dataTable.Columns[i].ColumnName;
    }

    // Add data rows
    for (int row = 0; row < dataTable.Rows.Count; row++)
    {
        for (int col = 0; col < dataTable.Columns.Count; col++)
        {
            ws[$"{(char)('A' + col)}{row + 2}"].Value = dataTable.Rows[row][col];
        }
    }

    // Save with custom delimiter (comma) and UTF-8 encoding
    wb.SaveAsCsv(filepath, ",", System.Text.Encoding.UTF8);
}
Imports System.Text

' Export with custom delimiter and encoding
Public Shared Sub ExportToCSVWithOptions(dataTable As DataTable, filepath As String)
    ' Create workbook from DataTable
    Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
    Dim ws As WorkSheet = wb.CreateWorkSheet("DataExport")

    ' Add headers
    For i As Integer = 0 To dataTable.Columns.Count - 1
        ws($"{ChrW(AscW("A"c) + i)}1").Value = dataTable.Columns(i).ColumnName
    Next

    ' Add data rows
    For row As Integer = 0 To dataTable.Rows.Count - 1
        For col As Integer = 0 To dataTable.Columns.Count - 1
            ws($"{ChrW(AscW("A"c) + col)}{row + 2}").Value = dataTable.Rows(row)(col)
        Next
    Next

    ' Save with custom delimiter (comma) and UTF-8 encoding
    wb.SaveAsCsv(filepath, ",", Encoding.UTF8)
End Sub
$vbLabelText   $csharpLabel

このアプローチにより、エクスポート プロセスをより細かく制御できるようになり、セル データの形式を設定したり、出力構造をカスタマイズしたりできるようになります。

適切な CSV 形式で追加の区切り文字なしで、列 A に果物のリスト (リンゴ、オレンジ、イチゴ、ブドウ、スイカ、バナナ、レモン) を表示する Excel スプレッドシート。 出力されたCSVファイル

上記の実行結果のサンプル結果が示されています。 スクリーンショットでは、データテーブルの各データが新しく形成された Excel シートに個別に追加されています。 エクスポートする前にセルに書式を適用したり、計算値に数式を追加したりすることもできます。

より高度な CSV 操作を行うには、次の操作を実行できます。

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

CSV エクスポートに IronXL を使用する必要があるのはなぜですか?

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

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