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

IronXLを使用してC#でCSVファイルを読み取る方法

ビジネスアプリケーションにおいて、カンマ区切り値(CSV)ファイルは、財務報告から顧客データのエクスポートまで、どこにでも存在します。 単純に見えるものの、異なる列区切りや引用符で囲まれたフィールド(二重引用符)、様々なデータ型の変換を扱う場合、CSVの解析はすぐに複雑になります。 IronXLは、エンタープライズ対応のCSV処理を提供する堅牢な.NETライブラリです。 開発者がCSVデータをXMLやExcel、その他のフォーマットに簡単に変換できます。

本日は、IronXLをC#でCのCSVファイルリーダーとして使用し、.NETアプリケーション内で簡単に実装する方法を解説します。 無料トライアルでIronXLを自ら試してみて、.NETのCSVおよびExcelタスクをどのように改善できるかを学びましょう。

なぜCSV読み取りにIronXLを選ぶのか?

IronXLはCSVファイルの読み取りを解析の煩雑さから単純な操作に変えます。 手動の分割操作や基本的な新しいStreamReaderアプローチとは異なり、IronXLは埋め込まれたカンマ、新しい行、そして珍しい区切り記号で分けられた列などの隅々のケースを自動的に処理します。

このライブラリはMicrosoft Officeから独立して動作し、サーバ環境やクラウドデプロイメントに最適です。 Windows、Linux、macOS、Azure、またはAWSへのデプロイであっても、IronXLはすべてのプラットフォームで一貫した結果を提供します。 このクロスプラットフォームの互換性と直感的なAPIを組み合わせることで、信頼性の高いCSV解析を必要とする現代のC#アプリケーションに最適の選択肢となっています。

IronXLはCSVファイルをExcelフォーマットと同等に扱い、ファイルタイプ間のシームレスな移行をデータの損失やフォーマットの問題なく行えます。 簡単なCSV読み取りを超えて、IronXLはC#を使って一からCSVファイルを書くことも可能です。 これについての詳細は、ハウツーガイドをチェックしてください。 このため、すべてのCSVニーズに完璧なライブラリであり、CSVファイルの読み取りや作成から、サポートされているフォーマットへの変換まで、すべてが可能です。

始めましょう: IronXLのインストール

IronXLのインストールはVisual StudioのNuGetパッケージマネージャーを介して数分で可能です。 プロジェクトを開き、ソリューションエクスプローラーの参照を右クリックして「NuGetパッケージの管理」を選択します。「IronXL.Excel」を検索し、「インストール」をクリックします。

C#でIronXLを使用してCSVファイルを読む方法:図1 - IronXL NuGet インストール

詳細なインストールガイダンスについては、IronXLのインストールドキュメントをご覧ください。

インストール後、最初のCSVファイルを読むのに必要なのは最小限のソースコードだけで、以下の例のように可能です。

using IronXL;
// Load CSV file
WorkBook workbook = WorkBook.LoadCSV("data.csv");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Read a specific cell
string cellValue = sheet["A1"].StringValue;
// Iterate through rows
foreach (var row in sheet.Rows)
{
    foreach (var cell in row)
    {
        Console.WriteLine(cell.StringValue);
    }
}
using IronXL;
// Load CSV file
WorkBook workbook = WorkBook.LoadCSV("data.csv");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Read a specific cell
string cellValue = sheet["A1"].StringValue;
// Iterate through rows
foreach (var row in sheet.Rows)
{
    foreach (var cell in row)
    {
        Console.WriteLine(cell.StringValue);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

本例では、varリーダーがCSVデータに文字列配列としてアクセスします。 WorkBook.LoadCSVメソッドはヘッダーの識別を行い、新しいデータテーブルを作成し、メモリ効率の良い解析を実施し、データ構造の管理を簡素化します。

C#でIronXLを使用してCSVファイルを読む方法:図2 - 始めのサンプル出力

異なる区切り文字付きのCSVファイルからデータを読み取る方法は?

実際のCSVファイルは常にカンマを使用するとは限りません。 国際的なデータセットでは、特にセミコロン、パイプ、タブが一般的な代替品であり、カンマが小数点区切りとして機能しています。 IronXLは柔軟な読み込みオプションを通じて任意の区切り文字を優雅に処理します。

using IronXL;
// Load CSV with semicolon delimiter
WorkBook workbook = WorkBook.LoadCSV("european-data.csv", 
    fileFormat: ExcelFileFormat.XLSX, 
    listDelimiter: ";");
// Load tab-separated values
WorkBook tsvWorkbook = WorkBook.LoadCSV("export_data.tsv", 
    fileFormat: ExcelFileFormat.XLSX, 
    listDelimiter: "\t");
// Access data normally
WorkSheet sheet = workbook.DefaultWorkSheet;
decimal totalSales = sheet["B2:B10"].Sum();
using IronXL;
// Load CSV with semicolon delimiter
WorkBook workbook = WorkBook.LoadCSV("european-data.csv", 
    fileFormat: ExcelFileFormat.XLSX, 
    listDelimiter: ";");
// Load tab-separated values
WorkBook tsvWorkbook = WorkBook.LoadCSV("export_data.tsv", 
    fileFormat: ExcelFileFormat.XLSX, 
    listDelimiter: "\t");
// Access data normally
WorkSheet sheet = workbook.DefaultWorkSheet;
decimal totalSales = sheet["B2:B10"].Sum();
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

listDelimiterパラメーターは任意の文字列を受け入れ、解析の動作を完全にコントロールできます。 IronXLは解析中に列の値とデータ型を保持します。 数値は数値のままであり、日付はDateTimeオブジェクトとして保持され、数式はその関係を維持します。 この自動型の保持により、手動変換コードを排除し、エラーを減らします。

不整合なフォーマットのファイルに対しては、IronXLのエラーハンドリングが不正な行をクラッシュせずに優雅に処理し、有効なデータの処理を続けながらレビュー用に問題をログします。

C#での異なる区切り文字の読み取りにIronXLを使用する方法:図3 - 異なる区切り文字の読み取り出力

CSVデータをC#オブジェクトに解析する方法は?

CSV行を強く型付けされたオブジェクトへ変換することは、データ処理を合理化し、LINQ操作を可能にします。 IronXLは、そのセルアクセスメソッドを通じてこのマッピングを簡単にします。 以下のコードはこれを処理するためのシンプルなCSVパーサーの作成方法を示しています。

using IronXL;
public class Product
{
    public string Name { get; set; }
    public decimal Price { get; set; }
    public int Stock { get; set; }
    public DateTime? LastUpdated { get; set; }
}
class Program
{
    static void Main(string[] args)
    {
        // Parse CSV into objects
        var products = new List<Product>();
        WorkBook workbook = WorkBook.LoadCSV("inventory.csv");
        WorkSheet sheet = workbook.DefaultWorkSheet;
        // Skip first line (header), parse remaining lines
        for (int row = 2; row <= sheet.RowCount; row++)
        {
            products.Add(new Product
            {
                Name = sheet[$"A{row}"].StringValue,
                Price = sheet[$"B{row}"].DecimalValue,
                Stock = sheet[$"C{row}"].IntValue,
                LastUpdated = sheet[$"D{row}"].DateTimeValue
            });
        }
        // Use LINQ for analysis
        var lowStock = products.Where(p => p.Stock < 10).ToList();
    }
}
using IronXL;
public class Product
{
    public string Name { get; set; }
    public decimal Price { get; set; }
    public int Stock { get; set; }
    public DateTime? LastUpdated { get; set; }
}
class Program
{
    static void Main(string[] args)
    {
        // Parse CSV into objects
        var products = new List<Product>();
        WorkBook workbook = WorkBook.LoadCSV("inventory.csv");
        WorkSheet sheet = workbook.DefaultWorkSheet;
        // Skip first line (header), parse remaining lines
        for (int row = 2; row <= sheet.RowCount; row++)
        {
            products.Add(new Product
            {
                Name = sheet[$"A{row}"].StringValue,
                Price = sheet[$"B{row}"].DecimalValue,
                Stock = sheet[$"C{row}"].IntValue,
                LastUpdated = sheet[$"D{row}"].DateTimeValue
            });
        }
        // Use LINQ for analysis
        var lowStock = products.Where(p => p.Stock < 10).ToList();
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronXLの型付き値プロパティ(StringValue, DecimalValue, IntValue, DateTimeValue)は変換を安全に処理し、例外を出す代わりに無効なデータにはデフォルト値を返します。 これは、解析後に各プロパティのために新しい文字列を作成するなどの煩雑な手作業を避けることができます。 この防御的なアプローチは、不完全なデータを優雅に処理する堅牢なアプリケーションを保証します。

ライブラリは、必要に応じてヌラブルな型とカスタム解析ロジックをサポートし、シンプルさを損なうことなく複雑なビジネスルールに対応することができます。

C#でのCSVデータ解析にIronXLを使用する方法: 図4 - CSVデータの解析出力

CSVをExcel形式に変換する方法は?

多くのビジネスワークフローでは、CSVデータを分析、高度なフォーマット、または利害関係者への配布のためにExcel形式にする必要があります。 IronXLにより、この変換はデータの完全性を保持しつつ簡単に行えます。

// Load CSV file
WorkBook csvWorkbook = WorkBook.LoadCSV("monthly-report.csv");
// Save as Excel with single method call
csvWorkbook.SaveAs("monthly-report.xlsx");
// Add formatting before saving
WorkSheet sheet = csvWorkbook.DefaultWorkSheet;
sheet["A1:D1"].Style.Font.Bold = true;
sheet["B:B"].FormatString = "$#,##0.00";  // Currency format
// Load CSV file
WorkBook csvWorkbook = WorkBook.LoadCSV("monthly-report.csv");
// Save as Excel with single method call
csvWorkbook.SaveAs("monthly-report.xlsx");
// Add formatting before saving
WorkSheet sheet = csvWorkbook.DefaultWorkSheet;
sheet["A1:D1"].Style.Font.Bold = true;
sheet["B:B"].FormatString = "$#,##0.00";  // Currency format
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

変換は数値の精度、日付フォーマット、特別な文字を保持し、手動変換方法による問題を引き起こすことはありません。 IronXLは、生成されるExcelファイルの構造を自動的に最適化し、大きなデータセットでもすばやく開く効率的なファイルを作成します。

このシームレスな変換能力により、CSVデータがさまざまなソースから取り込まれ、エグゼクティブレビューに向けた仕上げられたExcelレポートに変換される自動化されたレポートパイプラインが可能となります。

C#でのCSVをExcelフォーマットに変換する方法: 図5 - CSVからExcel形式への変換

ベストプラクティスと高度な機能

IronXLは、CSV処理の信頼性を向上させるいくつかの高度な機能を備えています。 ライブラリは様々なテキストエンコーディング(UTF-8, UTF-16, ASCII)を自動的に処理し、国際的な文字列値と列が正しく表示されるようにします。 メモリ効率の良いストリーミングにより、大きなCSVファイルをすべてのデータをRAMに同時に読み込むことなく処理します。

信頼されていないソースからCSVファイルを処理する際には、追加の安全性のためにTry-catch (Exception ex) ブロックで操作をラップします。 包括的なエラーハンドリングストラテジーについては、IronXLトラブルシューティングガイドを参照してください。

大規模なデータセットで最適なパフォーマンスを得るためには、シート["A1:Z1000"]のような範囲操作を使用し、個々のデータテーブル行や文字列列のセルを1つずつアクセスするのではなく、使用してください。 IronXLの数式エンジンはCSVデータでも機能し、Excelに変換することなく計算を可能にします。ライブラリのクロスプラットフォームサポートは基本的な互換性を超えています。 DockerコンテナやLinuxサーバー、クラウド関数は、設定変更なしでIronXLを実行でき、マイクロサービスアーキテクチャに最適です。

ライブラリのクロスプラットフォームのサポートは基本的な互換性を超えています。 DockerコンテナやLinuxサーバー、クラウド関数は、設定変更なしでIronXLを実行でき、マイクロサービスアーキテクチャに最適です。

結論

IronXLは、C#のCSVファイルの読み取りを面倒なタスクから信頼性のあるエンタープライズ対応のソリューションに変えます。 自動CSV解析、データ構造管理、シームレスなExcel変換機能により、CSVファイル、データテーブルdt、または現代の.NETアプリケーションでCSVデータを取り扱う開発者にとって最上の選択肢になります。

CSV処理を簡略化する準備はできましたか? 今すぐIronXLを入手し、自分のアプリケーションでエンタープライズクラスのデータ処理を体験しましょう。

よくある質問

CSVファイルの主な用途は何ですか?

CSVファイルは、金融レポートや顧客データのエクスポートのような表形式のデータを、さまざまなアプリケーションによって簡単に読み取られ、処理されるシンプルなテキスト形式で保存するために一般的に使用されます。

C#でのCSVファイル処理にIronXLはどのように役立ちますか?

IronXLは、C#内でCSVデータを解析、変換、処理するための強力な機能を提供することで、CSVファイルの処理を簡素化する.NETライブラリです。それはCSVデータをXMLやExcelのような他の形式に変換することができ、ビジネスアプリケーションに最適です。

CSVファイルを解析する際に開発者が直面する可能性のある課題は何ですか?

開発者は、異なる列セパレータの処理、引用フィールドの管理、さまざまなデータ型変換の実行中に、CSVファイルを解析する際に課題に遭遇する可能性があります。

IronXLはCSVファイルの異なる列セパレータを処理できますか?

はい、IronXLは異なる列セパレータを持つCSVファイルを処理でき、多様なCSV形式の処理に柔軟性を提供します。

IronXLを使用してCSVデータをExcelに変換することは可能ですか?

もちろん、IronXLを使用すれば、開発者はCSVデータを簡単にExcel形式に変換でき、Excelベースのワークフローへのシームレスな統合が可能になります。

IronXLはエンタープライズレベルのCSV処理に適している理由は何ですか?

IronXLは、効率的なデータ処理と大規模なビジネスアプリケーションに重要な変換タスクを可能にするエンタープライズ対応のCSV処理を含む強力な機能セットを提供します。

IronXLはCSVデータをXML形式に変換できますか?

はい、IronXLはCSVデータをXMLに変換でき、XML形式を利用するシステムとのデータ交換と統合を容易にします。

IronXLはCSVファイル内のデータ型変換をサポートしていますか?

IronXLはさまざまなデータ型変換を促進し、CSVファイルから抽出されたデータが.NETアプリケーション内で正確に変換され利用されることを保証します。

CSV解析が複雑とされている理由は何ですか?

CSV解析は、さまざまな列セパレータ、引用フィールド、および正確なデータ型変換の必要性の存在によって複雑になり、注意深い処理を必要とします。

Curtis Chau
テクニカルライター

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

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