How to Use C# to Convert Datatable to CSV

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronXL を使用して C# で DataTable を CSV に変換するには、WまたはkBook を作成し、DataTable 行でデータを埋めて、SaveAsCsv() メソッドを呼び出します。複雑なループや Interop は不要です。

DataTableをCSVに1行でエクスポート@@--AH2EG--@@

Using IronXL, you can convert the filled DataTable into a CSV file with one method call. No loops, no Interop, no complex processing is required. WまたはkBookDefaultWまたはkSheet さえあれば、SaveAsCsv を使って数秒でエクスポートできます。

  1. IronXL をNuGetパッケージマネージャでインストール

    PM > Install-Package IronXL.Excel
  2. このコード スニペットをコピーして実行します。

    IronXl.WまたはkBook.Create().DefaultWまたはkSheet.SaveAsCsv("output.csv", ",");
  3. 実際の環境でテストするためにデプロイする

    今日プロジェクトで IronXL を使い始めましょう無料トライアル

    arrow pointer

ステップ1

プロジェクトにIronXLをインストールするには?

アプリケーションで使用する前にIronXLをインストールする必要があります。 IronXLはあなたのプロジェクトに複数のインストールオプションを提供します。 IronXLは、Microsoft ExcelやInteropのインストールを必要とせず、C# でExcelファイルを扱うことを簡素化するライブラリです。

どのインストール方法を使用すべきですか?

以下のリンクから公式サイトからダウンロードしてください:https://ironsoftware.com/csharp/excel/docs/

または

  • Visual Studioで、プロジェクトメニューを選択
  • NuGetパッケージの管理をクリック
  • IronXl.Excel を検索
  • インストールをクリックします

どの NuGet コマンドを使用すればよいですか?

Install-Package IronXL.Excel

なぜNuGetパッケージマネージャを選ぶのですか?

NuGetは、依存関係を自動的に管理し、ライブラリを最新の状態に保つため、.NET開発者に好まれる方法です。 IronXL パッケージには、スプレッドシートファイル形式の変換や、さまざまな Excel 形式の操作に必要なすべてのコンポーネントが含まれています。

IronXl.Excel NuGetパッケージのインストール画面で、パッケージの詳細、バージョン情報、Visual Studioパッケージマネージャのインストールボタンを表示
図1 - IronXl.Excel NuGetパッケージ

チュートリアル

DataTable を CSV 形式で作成・エクスポートするにはどうすればよいですか?

WまたはkBookの作成、データへの入力、およびIronXLに組み込まれたCSV書き込み機能の使用が含まれます。 このアプローチは、手作業でCSV文字列を構築したり、従来のファイルストリーミング手法を使用したりするよりも効率的です。

どの名前空間をインポートする必要がありますか?

まず、IronXL 名前空間をインポートします。 IronXLは、DataSetおよび@@--CODE-860--@@オブジェクトのインポートとエクスポートを包括的にサポートしており、データベース駆動型アプリケーションに最適です。

using IronXL;
using IronXL;
Imports IronXL
$vbLabelText   $csharpLabel

完全なコード例は何ですか?

以下のコードを追加してください:

:path=/static-assets/excel/content-code-examples/how-to/csharp-database-to-csv-datatable.cs
using IronXL;
using System;
using System.Data;

// Create a new DataTable object
DataTable table = new DataTable();

// Add a single column named "Example_DataSet" of type string
table.Columns.Add("Example_DataSet", typeof(string));

// Add rows to the DataTable
table.Rows.Add("0");
table.Rows.Add("1");
table.Rows.Add("2");
table.Rows.Add("3");
table.Rows.Add("1");
table.Rows.Add("2");
table.Rows.Add("3");

// Create a new Excel workbook and set its author metadata
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
wb.Metadata.Author = "OJ";

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

// Initialize rowCounter for Excel sheet rows
int rowCount = 1;

// Loop through each row in the DataTable and add the data to the Excel worksheet
foreach (DataRow row in table.Rows)
{
    // Populate worksheet cells with data from DataTable
    ws["A" + (rowCount)].Value = row[0].ToString();
    rowCount++;
}

// Save the workbook as a CSV file
wb.SaveAsCsv("Save_DataTable_CSV.csv", ";"); // Will be saved as: Save_DataTable_CSV.Sheet1.csv
Imports IronXL
Imports System
Imports System.Data

' Create a new DataTable object
Dim table As New DataTable()

' Add a single column named "Example_DataSet" of type string
table.Columns.Add("Example_DataSet", GetType(String))

' Add rows to the DataTable
table.Rows.Add("0")
table.Rows.Add("1")
table.Rows.Add("2")
table.Rows.Add("3")
table.Rows.Add("1")
table.Rows.Add("2")
table.Rows.Add("3")

' Create a new Excel workbook and set its author metadata
Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
wb.Metadata.Author = "OJ"

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

' Initialize rowCounter for Excel sheet rows
Dim rowCount As Integer = 1

' Loop through each row in the DataTable and add the data to the Excel worksheet
For Each row As DataRow In table.Rows
    ' Populate worksheet cells with data from DataTable
    ws("A" & rowCount).Value = row(0).ToString()
    rowCount += 1
Next

' Save the workbook as a CSV file
wb.SaveAsCsv("Save_DataTable_CSV.csv", ";") ' Will be saved as: Save_DataTable_CSV.Sheet1.csv
$vbLabelText   $csharpLabel

コードはどのようにステップバイステップで動作しますか?

上記のコードは、DataTableのデータをExcelワークシートに挿入します。 最後に、SaveAsCsv メソッドはデータテーブルを CSV 形式でエクスポートします。

プロセスの内訳

  1. DataTablesの作成: 新しいDataTableを初期化し、列を追加してスキーマを定義します。 これは、データベースのテーブル構造を定義することに似ています。

  2. データ入力DataTable メソッドを使用して、Rows.Add() にレコードを追加します。 各行は、CSVエクスポート用のレコードを表します。

  3. ワークブックの生成: IronXLのWまたはkBook.Create()メソッドは、新しいExcelワークブックを初期化します。 必要に応じて、複数のワークシートを持つスプレッドシートを作成することもできます

  4. セルの入力: fまたはeach ループは DataTable 行を反復処理し、セル参照構文(例: "A1"、"A2")を使用して各値を特定のワークシートセルに割り当てます。

  5. CSV エクスポート: SaveAsCsv() メソッドは、特殊文字の適切なエスケープや区切り文字の処理など、CSV フォーマットにおける複雑な処理を処理します。

高度なDataTableシナリオについてはどうですか?

複数列にわたる複雑な DataTable については、次のようにコードを拡張してください:

// Create a DataTable with multiple columns
DataTable advancedTable = new DataTable();
advancedTable.Columns.Add("ID", typeof(int));
advancedTable.Columns.Add("Name", typeof(string));
advancedTable.Columns.Add("Price", typeof(decimal));

--snip--
wまたはkbook.SaveAsCsv("products.csv", ",");
// Create a DataTable with multiple columns
DataTable advancedTable = new DataTable();
advancedTable.Columns.Add("ID", typeof(int));
advancedTable.Columns.Add("Name", typeof(string));
advancedTable.Columns.Add("Price", typeof(decimal));

--snip--
wまたはkbook.SaveAsCsv("products.csv", ",");
' Create a DataTable with multiple columns
Dim advancedTable As New DataTable()
advancedTable.Columns.Add("ID", GetType(Integer))
advancedTable.Columns.Add("Name", GetType(String))
advancedTable.Columns.Add("Price", GetType(Decimal))

' --snip--
wまたはkbook.SaveAsCsv("products.csv", ",")
$vbLabelText   $csharpLabel

出力はどのように見えますか?

出力されたExcelワークシートは次のように表示されます:

大規模な DataTable をどのように処理すればよいですか?

数千行に及ぶ大規模な DataTable を扱う場合でも、IronXL は優れたパフォーマンスを維持します。 ライブラリは、大量のデータセットを効率的に処理します。 本番環境では、ライセンスキーを適用して、透かしを削除し、すべての機能を有効にしてください。

エラー処理についてはどうですか?

ファイル操作の際には、常に適切なエラー処理を実装してください:

try 
{
    // Your DataTable to CSV conversion code
    WまたはkBook wb = WまたはkBook.Create();
    // ... rest of the code
    wb.SaveAsCsv("output.csv", ",");
    Console.WriteLine("CSV file created successfully!");
}
catch (Exception ex)
{
    Console.WriteLine($"Errまたは creating CSV: {ex.Message}");
}
try 
{
    // Your DataTable to CSV conversion code
    WまたはkBook wb = WまたはkBook.Create();
    // ... rest of the code
    wb.SaveAsCsv("output.csv", ",");
    Console.WriteLine("CSV file created successfully!");
}
catch (Exception ex)
{
    Console.WriteLine($"Errまたは creating CSV: {ex.Message}");
}
Imports System

Try
    ' Your DataTable to CSV conversion code
    Dim wb As WまたはkBook = WまたはkBook.Create()
    ' ... rest of the code
    wb.SaveAsCsv("output.csv", ",")
    Console.WriteLine("CSV file created successfully!")
Catch ex As Exception
    Console.WriteLine($"Errまたは creating CSV: {ex.Message}")
End Try
$vbLabelText   $csharpLabel

ライブラリのクイックアクセス

IronXL APIリファレンスドキュメント

便利な IronXL API リファレンス ドキュメントを使用して、Excel スプレッドシートでセルを結合、結合解除、操作する方法の詳細を学び、共有します。

IronXL APIリファレンスドキュメント
Documentation related to ライブラリのクイックアクセス

よくある質問

複雑なループを書かずに、C#でDataTableをCSVに変換するにはどうすればよいですか?

IronXLはDataTableをCSVに変換するシンプルな1行ソリューションを提供します。WorkBookを作成し、DataTableデータを入力した後、SaveAsCsv()メソッドを使用することで、ループを記述したりInteropを使用することなく、CSV形式に直接エクスポートすることができます。

DataTableからCSVへの変換ライブラリのインストールオプションは何ですか?

IronXLはVisual StudioのNuGetパッケージマネージャから'IronXL.Excel'を検索するか、NuGetコマンドラインを使ってインストールできます。これは自動的に依存関係を管理し、ライブラリを最新の状態に保つため、望ましい方法です。

DataTable を CSV に変換するには、Microsoft Excel がインストールされている必要がありますか?

IronXLはMicrosoft ExcelやInteropのインストールを必要とせず、単独で動作します。IronXLはC#アプリケーションでExcelファイルやCSVエクスポートの作業を簡素化するスタンドアロン・ライブラリです。

DataTableからCSVへの変換には、どの名前空間をインポートする必要がありますか?

C#ファイルの先頭に'using IronXL;'を追加してIronXL名前空間をインポートする必要があります。これにより、DataSetとDataTableオブジェクトのインポートとエクスポートの包括的なサポートにアクセスできるようになる。

CSVにエクスポートする際に、カスタム区切り文字を指定できますか?

はい、IronXLのSaveAsCsv()メソッドではカスタムの区切り文字を指定できます。例のコードではコンマ (",") を区切り文字として使用していますが、あなたの要求に合う任意の文字に変更することができます。

カーティス・チャウ
テクニカルライター

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

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

準備はできましたか?
Nuget ダウンロード 2,041,325 | バージョン: 2026.6 just released
Still Scrolling Icon

まだスクロールしていますか?

すぐに証拠が欲しいですか? PM > Install-Package IronXL.Excel
サンプルを実行する あなたのデータがスプレッドシートになるのを見る。