"},スプレッドシートデータの可視化,Office Interop なしの Excel,ExcelとSQL Serverの統合"> フッターコンテンツにスキップ
IRONXLの使用

IronXLを使用して.NET CSVライターを作成する方法

なぜ.NET開発者にはより良いCSVソリューションが必要なのか?

CSVファイルは無数の.NETアプリケーション間でデータ交換を可能にします。 財務報告書から在庫システムに至るまで、数行のコードでプログラム的にCSVファイルを作成する自由があります。 CsvHelperのようなライブラリが基本的なCSV操作をカバーしていますが、現代の開発者はより複雑なシナリオに直面しています:Excelワークブックの変換、エクスポート時のデータ型の保持、エンタープライズ規模のスプレッドシートワークフローの処理。 IronXL addresses these challenges by combining robust CSV writing with comprehensive Excel functionality in a single, handling multiple columns with ease in a single,dependency-free library that follows RFC 4180規格に従って依存性のない状態で複数の列を簡単に扱います。

これは、複数の列をサポートするカスタム.NET CSVライターや.NET CSVパーサを構築する開発者に理想的です。行固有の機能が処理中の行のみに影響し、自動的に推論されたセパレータをサポートします。

IronXL の旅を始めるには、ほんの数ステップが必要です。

IronXLのインストールはNuGet Package Managerを通じて数秒で完了します。

Install-Package IronXL.Excel

インストールしたら、IronXLネームスペースを追加し、効率的にCSVファイルを作成し、区切られた値を操作し始めることができます。

using IronXL;
class Program
{
    static void Main(string[] args)
    {
        // Create a new workbook and worksheet
        WorkBook workBook = WorkBook.Create();
        WorkSheet workSheet = workBook.CreateWorkSheet("data");
        // Add headers
        workSheet["A1"].Value = "Product";
        workSheet["B1"].Value = "Quantity";
        workSheet["C1"].Value = "Price";
        // Add data
        workSheet["A2"].Value = "Widget";
        workSheet["B2"].Value = 100;
        workSheet["C2"].Value = 19.99;
        // Save as CSV with comma delimiter
        workBook.SaveAsCsv("inventory.csv", ",");
    }
}
using IronXL;
class Program
{
    static void Main(string[] args)
    {
        // Create a new workbook and worksheet
        WorkBook workBook = WorkBook.Create();
        WorkSheet workSheet = workBook.CreateWorkSheet("data");
        // Add headers
        workSheet["A1"].Value = "Product";
        workSheet["B1"].Value = "Quantity";
        workSheet["C1"].Value = "Price";
        // Add data
        workSheet["A2"].Value = "Widget";
        workSheet["B2"].Value = 100;
        workSheet["C2"].Value = 19.99;
        // Save as CSV with comma delimiter
        workBook.SaveAsCsv("inventory.csv", ",");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

このシンプルなコンソールテスタープログラムは、C#コードから直接CSVコンテンツを作成し、データを含むWorkbookオブジェクトを作成する方法を示しています。 SaveAsCsvメソッドはデフォルトのセパレータ(カンマ)を使用しますが、異なるロケールに対してsepを定義することも可能です; これは特に小数点セパレータや代替列セパレータ文字を扱う際に非常に便利です。 内部的には、sepは出力バッファの配列割り当てを処理します。 前述のsepパラメータを使用することで、この文字を定義できます。

また、静的エントリポイントを提供する方法や、複数の行にわたって高性能を実現するための静的に定義されたリソースプールを使用して効率的にメモリ管理を行う方法も示しました。

高度なCSVファイル作成技術

IronXLを使用して.NET CSVライターを作成する方法: 図1 - IronXLによるCSV出力例

高度なCSVファイル作成技術

ExcelワークブックをCSVに変換する

IronXLは既存のExcelファイルをCSVに変換し、式を評価し、データの整合性を保持するのに優れています。 これはヘッダ行と動的に生成されたデータを含むCSVファイルを作成する際に不可欠です。

// Load an Excel file with formulas and formatting
WorkBook workBook = WorkBook.Load("financial_report.xlsx");
// IronXL evaluates formulas before export
workBook.EvaluateAll();
// Export to CSV - each worksheet creates a separate CSV file
workBook.SaveAsCsv("report.csv", ",");
// Creates: report.Sheet1.csv, report.Sheet2.csv, etc.
// Load an Excel file with formulas and formatting
WorkBook workBook = WorkBook.Load("financial_report.xlsx");
// IronXL evaluates formulas before export
workBook.EvaluateAll();
// Export to CSV - each worksheet creates a separate CSV file
workBook.SaveAsCsv("report.csv", ",");
// Creates: report.Sheet1.csv, report.Sheet2.csv, etc.
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

複数のシートのワークブックを変換する際、IronXLは各ワークシートごとに個別のCSVファイルを自動的に生成します。 式の計算はエクスポート前に実行され、最終CSV出力に正確なデータを保証します。 しかし、これは唯一の機能ではありません。 デフォルトの自動推論されたセパレータは地域間での互換性を保証し、複数の行や複数の列がシームレスに処理されます。

デフォルトのサポートされるセパレータが異なる動的な環境で使用するためのnullable sepも使用可能です。

出力

まず、こちらで、我々のマルチシートExcelファイルから生成されたCSVファイルを見ることができます:

IronXLを使用して.NET CSVライターを作成する方法: 図2 - CSVファイル

そして、これはExcelシートの1つと対応するCSVファイルの例の比較です:

IronXLを使用して.NET CSVライターを作成する方法: 図3 - 出力例

DataTableをCSVにエクスポートする

データベース駆動のアプリケーションのために、IronXLはDataTableエクスポートを簡素化します。 より明確にするために、通常のref var vの代わりにDatarowにvarを設定しています。

// Assume dataTable contains query results
DataTable dataTable = GetSalesData();
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("sales");
// Import DataTable directly
var row = 1;
foreach (var dataRow in dataTable.Rows)
{
    for (var col = 0; col < dataTable.Columns.Count; col++)
    {
        workSheet.SetCellValue(row, col, dataRow[col].ToString());
    }
    row++;
}
// Export with custom delimiter if needed
workBook.SaveAsCsv("sales_data.csv", ";");
// Assume dataTable contains query results
DataTable dataTable = GetSalesData();
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("sales");
// Import DataTable directly
var row = 1;
foreach (var dataRow in dataTable.Rows)
{
    for (var col = 0; col < dataTable.Columns.Count; col++)
    {
        workSheet.SetCellValue(row, col, dataRow[col].ToString());
    }
    row++;
}
// Export with custom delimiter if needed
workBook.SaveAsCsv("sales_data.csv", ";");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

インポート時には、dataTable.Rowsコレクションからの各行の水平データセットがワークシートの新しい行になります。 IronXLは変換中にデータ型を保存し、数値は数値のまま、日付は書式を保持し、テキストは特別な文字を追加の構成なしで正しく処理します。

出力

ここでは、モックデータソースの横にある出力されたCSVファイルを見ることができます:

IronXLを使用して.NET CSVライターを作成する方法: 図4 - DataTableをCSV出力にエクスポートする

IronXLとCsvHelperの比較:CSVファイル作成の比較

この従業員データエクスポートシナリオを考えてみましょう。CSVの解析と出力ワークフローを示しています。

CsvHelperの実装:

using (var writer = new StreamWriter("employees.csv"))
using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
{
    csv.WriteRecords(employees);
}
using (var writer = new StreamWriter("employees.csv"))
using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
{
    csv.WriteRecords(employees);
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronXLの実装:

WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("employees");
// Add data with automatic type handling
int rowIndex = 1;
foreach (var emp in employees)
{
    workSheet[$"A{rowIndex}"].Value = emp.Name;
    workSheet[$"B{rowIndex}"].Value = emp.Salary;
    workSheet[$"C{rowIndex}"].Value = emp.StartDate;
    rowIndex++;
}
workBook.SaveAsCsv("employees.csv", ",");
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("employees");
// Add data with automatic type handling
int rowIndex = 1;
foreach (var emp in employees)
{
    workSheet[$"A{rowIndex}"].Value = emp.Name;
    workSheet[$"B{rowIndex}"].Value = emp.Salary;
    workSheet[$"C{rowIndex}"].Value = emp.StartDate;
    rowIndex++;
}
workBook.SaveAsCsv("employees.csv", ",");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

機能

CsvHelper

IronXL

基本的なCSV書き込み

ExcelからCSVへの変換

式評価

複数シートの処理

データ型の保持

手動

自動

Excel形式サポート

XLSX, XLS, XLSM

MS Office不要

CsvHelperは単純な書き込み操作を効率的に処理しますが、IronXLは複数行、補間文字列、動的コード生成シナリオの活用、さらには構造体リンクのような低レベルの最適化を可能にする柔軟性を提供します。

開発者は特定の条件に一致する行を列挙したり、デフォルトの自動推論されたセパレータを管理したり、行固有の機能を汎用のコンソールプログラムでテストし、デバッグのためにエントリのキーだけを公開することもできます。

エンタープライズ機能とベストプラクティス

IronXLのSaveAsCsvメソッドはエンタープライズ規模の機能を含みます:

  • カスタムデリミタ: カンマ、セミコロン、タブまたは任意の文字(セパレータsepでデフォルトのセパレータを上書き可能)
  • エンコードオプション: UTF-8、UTF-16、およびカスタムエンコード
  • 式評価: エクスポート前にExcel式を計算
  • クロスプラットフォームサポート: Windows、Linux、およびmacOSで動作

開発者はまた、拡張メソッドを適用して複数の列を効率的に処理したり、テキストラッピングが必要な場合に複数行にわたるCSV行を書いたりすることもできます。

一般的な問題と解決策

CSVエクスポートを扱う際、開発者はよく以下のような課題に直面します:

  • データ内の特殊文字: IronXLは引用符、カンマ、改行を自動的にエスケープします
  • 大容量ファイルの処理: ワークシート範囲を使用して、データをチャンクで処理します。
  • エンコーディングの問題: 国際文字のためにUTF-8エンコーディングを指定します
  • データ型の欠落: IronXLはデフォルトで数値と日付形式を保持します

For detailed troubleshooting, visit IronXL's CSV documentation, API reference, and support resources.

あなたのCSVライターの構築を今日始めよう

IronXLはCSV作成を解析の課題から簡単な操作に変えます。 CSV機能をExcelワークブックサポート、式評価、そして自動型処理と組み合わせることで、複数のライブラリの管理や手動のデータ変換の複雑さを排除します。

あなたのCSVワークフローを合理化する準備はできましたか? 無料トライアルを開始し、$liteLicenseから始めましょう。

よくある質問

IronXLは何に使用されますか?

IronXLは、Excelファイルを操作するために設計された.NETライブラリであり、開発者がExcel文書を作成、読み取り、修正できるようにし、データ型を保持し、複雑なスプレッドシートシナリオを管理しながら、CSVなどのさまざまな形式にエクスポートできます。

IronXLは.NETでのCSVライティングにどのように役立ちますか?

IronXLは、ExcelワークブックをCSV形式にエクスポートする機能を提供し、データ型が保持され、複雑なスプレッドシートシナリオが効果的に処理されることを保証します。これにより、堅牢なCSV書き込みソリューションを必要とする.NET開発者にとって理想的な選択肢となります。

なぜ開発者はCSV操作のためにIronXLの使用を検討すべきですか?

開発者は、IronXLを使用することで、ExcelファイルをCSVにシームレスにエクスポートできる能力、大規模データセットを処理する能力、およびデータ型の整合性を維持する能力を考慮すべきであり、.NETアプリケーションにおけるCSV操作のための優れたソリューションを提供します。

スプレッドシート管理のためにIronXLを使用する利点は何ですか?

スプレッドシート管理のためにIronXLを使用する利点には、Excelドキュメントの簡単な操作、CSVなどのさまざまなエクスポート形式へのサポート、および.NETアプリケーションにおける複雑なデータ構造や大規模なデータセットの効率的な処理が含まれます。

IronXLはCSVにエクスポートする際に大規模なExcelファイルを処理できますか?

はい、IronXLは大規模なExcelファイルを効率的に処理するように設計されており、パフォーマンスやデータの整合性を損なうことなく大量のデータをCSVにエクスポートすることを可能にします。

IronXLはCSVにエクスポートする際のデータ型保持をどのように保証していますか?

IronXLは元のデータ型と構造を維持しつつ、Excelデータを正確にCSV形式に変換することで、データ型の保持を確保します。これは正確なデータ処理を必要とするアプリケーションにとって重要です。

IronXLは複雑なスプレッドシートのシナリオに適していますか?

IronXLは複雑なスプレッドシートのシナリオに非常に適しており、複雑なExcelドキュメントを管理および操作するための高度な機能を提供し、データを正確にCSVまたは他の形式にエクスポートできることを確信させます。

Curtis Chau
テクニカルライター

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

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