C#で `DataTable` をCSVにエクスポートする方法
IronXL を使用すると、Microsoft Excel のインストールを必要とせずに、C# で DataTable から CSV へのシームレスな変換が可能になります。 このスタンドアロン for .NETライブラリは、DataTables をカスタム構造と区切り文字を持つCSVファイルに自動的に変換するシンプルなAPIを提供し、開発者にとってデータのエクスポートを容易にします。
IronXLは、Microsoft Excelをインストールすることなく、C# .NETテクノロジーでMicrosoft Excelドキュメント(CSVファイルを含む)を操作できる人気のライブラリです。 登録済みの型を CSV ファイルに自動変換し、カスタム構造を持つ CSV ファイルを作成することができます。
IronXLライブラリにはどのような機能がありますか?
C# IronXL .NETライブラリを使用すると、Microsoft Excelドキュメントを読み込み、 CSVファイルに変換できます。 IronXLは、さまざまなスプレッドシート形式を読み取ることができるスタンドアロン for .NETソフトウェアライブラリです。 これは Microsoft.Office.Interop.Excel に依存しておらず、Microsoft Excel のインストールも必要としません。
IronXLの使いやすいC# APIを利用すれば、 .NET環境でExcelスプレッドシートファイルを素早く読み込み、変更、作成できます。 IronXLは、 .NET Core、 .NET Framework 、Xamarin、モバイル、 Linux 、 macOS 、 Azureをすべて完全にサポートしています。
- C# 用の .NET Core および .NET Framework の主要な Excel スプレッドシートライブラリには IronXL が含まれます。 コンソールアプリケーション、Windowsフォームアプリケーション、Webアプリケーションなど、ほぼすべて for .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で新しいプロジェクトを作成
次に、プロジェクトの名前と場所を入力します。
新しいプロジェクトの設定
次に、以下の構造を選択してください。 このプロジェクトでは.NET Core 6を使用します。
.NET Frameworkのバージョンを選択
アプリケーションがソリューションを生成すると、program.cs ファイルが開かれ、プログラムコードを入力してアプリケーションをビルド/実行できるようになります。
新しく作成されたコンソールアプリケーションプロジェクト
その後、ライブラリを追加してコードを評価するために使用することができます。 .NET MAUIアプリケーションやVB .NETプロジェクトなどの他のプロジェクトタイプの場合も、プロセスは似ていますが、フレームワーク固有の考慮事項があります。
どのようにIronXLライブラリをインストールしますか?
IronXL ライブラリをダウンロードしてインストールする方法は 4 つあります。
それらは次のとおりです。
- Visual Studio からインストール
- Visual Studio パッケージ マネージャー コンソールを使用してインストール
- NuGet ウェブサイトから直接ダウンロード
- IronXL ウェブサイトから直接ダウンロード
Visual Studioのインストールにはどの方法を使用すべきですか?
NuGet パッケージ マネージャーを使用して、IronXL モジュールをインストールできます。 IronXL を見つけるには、まず NuGet パッケージ マネージャーを起動し、ブラウズ ペインで探します。 検索結果から選択して IronXL をインストールします。 その後、このアプリで IronXL ライブラリを使用できるようになります。
以下の画像は、Visual Studio の NuGet パッケージ マネージャーを起動する方法を示しています。
NuGetパッケージマネージャへのナビゲート
NuGet パッケージ マネージャー UI で IronXL パッケージをインストール
パッケージマネージャーコンソールはどのような場合に使用すべきですか?
多くの開発者は、タスクを実行する際にコンソールを使用することを好む。 したがって、ターミナルインストールもオプションです。 コマンドラインを使用して IronXL をインストールするには、以下の手順に従ってください。
- Visual Studio の ツール > NuGet パッケージ マネージャー > パッケージ マネージャー インターフェイスに移動します。
-
パッケージ マネージャーのコンソールタブに次のコマンドを入力します。
Install-Package IronXL.Excel
- IronXL がアクティブなプロジェクトにダウンロードおよびインストールされるのを待ちます。
パッケージ マネージャー コンソール UI で IronXL パッケージをインストール
なぜNuGetのウェブサイトからダウンロードする必要があるのですか?
NuGet パッケージはウェブサイトから直接ダウンロードすることができます。 この方法は、インターネットへのアクセスが制限されている環境で作業する場合や、パッケージを手動で管理する必要がある場合に特に役立ちます。
*公式のNuGetリンクにアクセスしてください。
- ダウンロードパッケージのオプションは、右側のメニューにあります。
- 保存されたファイルを二回クリックします。それはすぐにインストールされます。
- その後、ソリューションを再読み込みし、プロジェクトで利用を始めます。
IronXLのウェブサイトから直接インストールするにはどうすればよいですか?
ウェブサイトから最新のパッケージを直接ダウンロードするには、この IronXL ZIP ファイルのダウンロードリンク をクリックしてください。 このリンクは IronXL のライブラリ DLL の最新バージョンを含む ZIP ファイルをダウンロードします。 ダウンロードが終了したら、ZIP ファイルの内容を任意のディレクトリに抽出します。
ダウンロードしたファイルをプロジェクトに追加するには、以下の手順に従ってください。
- ソリューションウィンドウから、プロジェクトを右クリックします。
- 参照を選択し、IronXL DLLs を含む抽出されたフォルダーに移動します。
- DLL を選択し、OK をクリックしてアクティブなプロジェクトに参照として追加します。
デプロイシナリオでは、 IronXLをDockerコンテナ内にセットアップしたり、 AWS LambdaやAzure Functionsなどのクラウドプラットフォームにデプロイしたりすることもできます。
DataTable を CSV ファイルにエクスポートするにはどうすればよいですか?
DataTables はIronXLを使用してCSV ファイルに簡単かつ迅速にエクスポートできます。 カスタム区切り文字とエンコードオプションをサポートし、データを新しいCSVファイルに書き込むのに役立ちます。
最初に、下のコード画像のように、IronXL ネームスペースを含めて IronXL クラスとメソッドを使用します。
一般的なネームスペースを追加
IronXLを使用すると 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
上記のコードは、DataTable を Excel ファイルにエクスポートします。DataTable が作成されると、列見出しが作成されます。 次に、最初の列を設立した後、一行ずつ追加します。 WorkBook オブジェクトは、それらのデータを保持するために、DataTable オブジェクトに列と行を追加した後に作成されます。 次に、 WorkBook オブジェクトに追加されます。
DataTable の各値は、foreach ループを使用して読み取られ、WorkSheet に値が追加される前に加算されます。 すべての値がワークシートに追加されると、 SaveAsCsvメソッドはそれらをCSVファイルに保存します。区切り文字とファイル保存場所は、パラメータとして指定できます。
より複雑なシナリオでは、複数のデータテーブルを別々のワークシートとしてエクスポートしたり、データセットを使用してより構造化されたデータ整理を行うことをお勧めします。
さまざまな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
この方法を用いると、エクスポートプロセスをより詳細に制御でき、セルデータのフォーマットを設定したり、出力構造をカスタマイズしたりすることが可能になります。
出力されたCSVファイル
上記の実行結果のサンプル結果が示されています。 スクリーンショットでは、データテーブルの各データが新しく形成された Excel シートに個別に追加されています。 エクスポート前にセルに書式設定を適用したり、計算値のための数式を追加したりすることもできます。
より高度なCSV操作を行うには、以下の方法があります。
- カスタム区切り文字を使用したCSVファイルの読み込み
- 特定のエンコーディングでCSVファイルに書き込む -異なるスプレッドシート形式間で変換する JSONまたはXML形式でエクスポート
IronXL チュートリアルの詳しい情報については、Excel フォーマットへのエクスポート方法をクリックしてください。
CSVエクスポートにIronXLを使うべき理由は何ですか?
IronXL は最も人気のある Excel ツールの一つです。 それは外部ソースからのいかなる他のライブラリにも依存しません。 それは自立しており、Microsoft Excel のインストールを必要としません。 それは、数多くのチャネルを通じて動作します。
IronXLはすべてのMicrosoft Excelドキュメント関連タスクのオールインワンソリューションを提供します。 数式計算、文字列や数値の並べ替え、トリミングと追加、検索と置換、結合と結合解除、ファイルの保存などを行うことができます。また、セルのデータ形式を設定したり、スプレッドシートのデータを検証したりすることもできます。 また、CSV ファイルの読み取りと書き込みもサポートしており、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はスタンドアロン for .NETライブラリで、Microsoft Excelをインストールする必要がなく、開発者がC#アプリケーション内で直接Excel文書を操作できます。
このライブラリと互換性のあるプラットフォームは何ですか?
IronXLは、.NET Core、.NET Framework、Xamarin、およびWindows、Linux、macOSといったオペレーティングシステムを含む複数のプラットフォームと互換性があります。
プロジェクトにIronXLライブラリをインストールするにはどうすれば良いですか?
.NETプロジェクトにIronXLをインストールするには、Visual Studioを使用してNuGetパッケージマネージャーにアクセスするか、NuGetまたはIronXLウェブサイトから直接ダウンロードします。
このライブラリの利用できる価格オプションは何ですか?
IronXLは、製品のサポートとアップデートを含む1年のサブスクリプションオプションの開始価格を提供し、継続的なサポートと最新機能へのアクセスを提供します。



