C# で DataTable を CSV に変換する方法: Excelエクスポート対応ガイド
IronXLを使ってC#でDataTableをCSVに変換するには、WorkBookを作成し、DataTableの行を入力し、SaveAsCsv()メソッドを呼び出します。xlsxファイルからCSVへのExcelエクスポートも同様の方法で実現できます。
クイックスタート: DataTableからCSVへの一行エクスポート
IronXLを使用して、充填されたDataTableを1つのメソッド呼び出しでCSVファイルに変換します。 必要なのは、WまたはkBookとそのDefaultWまたはkSheetだけで、SaveAsCsvを使って数秒でエクスポートできます。
- DataTable を CSV に変換する C# ライブラリをダウンロードしてインストールします。
- Utilize `DataTable` class to stまたはe new data
- 新しいスプレッドシートを作成するか、既存のスプレッドシートをインポートします
- 表の行をループし、それに応じてワークシートのセルに入力します。
- Expまたはt to CSV file with `SaveAsCsv` C# function
ステップ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フォーマットでの作業に必要なコンポーネントがすべて含まれています。
チュートリアル
データテーブルを作成して CSV にエクスポートするには?
DataTableをCSVに変換するプロセスでは、WまたはkBookを作成し、そこにデータを入力し、IronXL組み込みのCSV書き込み機能を使用します。 このアプローチは、手作業でCSV文字列を構築したり、従来のファイルストリーミング手法を使用したりするよりも効率的です。
どの名前空間をインポートする必要がありますか?
まず、IronXL名前空間をインポートしてください。 IronXLはDataSetとDataTableオブジェクトのインポートとエクスポートを包括的にサポートしており、データベース駆動型のアプリケーションに最適です。
using IronXL;
using IronXL;
Imports IronXL
完全なコード例は何ですか?
以下のコードを追加してください:
: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
コードはどのようにステップバイステップで動作しますか?
上記のコードは、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", ",")
出力はどのように見えますか?
出力された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
ライブラリのクイックアクセス
IronXL APIリファレンスドキュメント
便利な IronXL API リファレンス ドキュメントを使用して、Excel スプレッドシートでセルを結合、結合解除、操作する方法の詳細を学び、共有します。
IronXL APIリファレンスドキュメントよくある質問
複雑なループを書かずに、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()メソッドではカスタムの区切り文字を指定できます。例のコードではコンマ (",") を区切り文字として使用していますが、あなたの要求に合う任意の文字に変更することができます。

