DatatableをCSVに変換するためにC#を使用する方法。

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

IronXLを使ってC#でDataTableをCSVに変換するには、WまたはkBookを作成し、DataTableの行を入力し、SaveAsCsv()メソッドを呼び出します。

クイックスタート: DataTableからCSVへの一行エクスポート

IronXLを使用して、充填されたDataTableを1つのメソッド呼び出しでCSVファイルに変換します。 必要なのは、WまたはkBookとそのDefaultWまたはkSheetだけで、SaveAsCsvを使って数秒でエクスポートできます。

Nuget Icon今すぐ NuGet で PDF を作成してみましょう:

  1. NuGet パッケージ マネージャーを使用して IronXL をインストールします

    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パッケージ

チュートリアル

データテーブルを作成して CSV にエクスポートするには?

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

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

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

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を作成し、その所有者として'OJ'を指定して新しいワークブックを作成し、fまたはeachループを使ってDataTableからExcelワークシートにデータを挿入しています。 最後に、SaveAsCsv メソッドは、データテーブルを CSV にエクスポートします。

プロセスの内訳

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

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

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

4.Cell Population: 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を扱う場合、IronXL.Excelは優れたパフォーマンスを維持します。 ライブラリは、大量のデータセットを効率的に処理します。 本番環境では、ライセンスキーを適用して、透かしを削除し、すべての機能を有効にしてください。

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

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

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 ダウンロード 1,846,091 | バージョン: 2026.2 リリース