IRONSOFTWAREHOME
IRONXLの使用

C# CSV ファイル リーダー: IronXLで CSV データを解析および処理する

Curtis Chau
Curtis Chau
Updated: 2026年6月28日

CSV(カンマ区切り値)ファイルは、財務報告書から顧客データのエクスポートまで、ビジネスアプリケーションのあらゆる場面で使用されています。 CSV形式は一見すると非常にシンプルですが、引用符で囲まれたフィールド、複数の区切り文字の種類、埋め込まれた改行、そして生のテキストを厳密に型付けされた.NETオブジェクトに変換する必要性などを考慮すると、本番環境のコードで解析するのはすぐに難しくなります。 IronXLは、エンタープライズレベルのCSV処理機能を提供する.NETライブラリであり、開発者は最小限のコードでCSVデータをExcel、XML、またはその他の形式に変換できます。

このガイドでは、 IronXLがC#のCSVファイルリーダーとしてどのように機能するか、そしてそれを.NET 10アプリケーションに実装する方法について説明します。 無料トライアルライセンスを使ってIronXLを実際に試してみて、CSVファイルやExcelファイルの処理方法を一緒に学んでみましょう。

CSVファイルを読み込むためのIronXLのインストール方法を教えてください

IronXLをプロジェクトに組み込むのはほんの一瞬で済みます。 Visual Studio のNuGetパッケージ マネージャーを使用するか、 .NET CLI または PowerShell のNuGetパッケージ マネージャー コンソールを使用してコマンドラインからインストールできます。 どちらの方法も同じパッケージをインストールし、あらゆる.NET 10プロジェクトタイプで動作します。

dotnet add package IronXL.Excel

インストールオプションおよび設定の詳細については、IronXLのインストールドキュメントを参照してください。

インストールが完了すれば、最初のCSVファイルを読み込むのに必要なコードは非常に少ない。 以下の例では、 .NET 10 のトップレベルステートメントを使用しています。

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 all rows and cells
foreach (var row in sheet.Rows)
{
    foreach (var cell in row)
    {
        Console.WriteLine(cell.StringValue);
    }
}

このWorkBook.LoadCSVメソッドはヘッダーの識別を処理し、内部データ構造を作成し、メモリ効率の良い解析を行うことで、最初のコードからデータ管理を簡素化します。

C# CSVファイルリーダーチュートリアル: IronXLでCSVデータを解析・変換: 画像1 - IronXL NuGetインストール

カスタム区切り文字を含むCSVファイルを読み込むにはどうすればよいですか?

実際のCSVファイルでは、必ずしもカンマが使われるとは限りません。 国際的なデータセットでは、特にセミコロン、パイプ、タブが一般的な代替品であり、カンマが小数点区切りとして機能しています。 IronXLは、柔軟な読み込みオプションにより、あらゆる区切り文字に対応します。

using IronXL;

// Load CSV with semicolon delimiter (common in European data exports)
WorkBook workbook = WorkBook.LoadCSV("european-data.csv",
    fileFormat: ExcelFileFormat.XLSX,
    listDelimiter: ";");

// Load tab-separated values (TSV)
WorkBook tsvWorkbook = WorkBook.LoadCSV("export_data.tsv",
    fileFormat: ExcelFileFormat.XLSX,
    listDelimiter: "\t");

// Load pipe-delimited file
WorkBook pipeWorkbook = WorkBook.LoadCSV("log_export.csv",
    fileFormat: ExcelFileFormat.XLSX,
    listDelimiter: "|");

// Access data normally after loading
WorkSheet sheet = workbook.DefaultWorkSheet;
decimal totalSales = sheet["B2:B10"].Sum();

Console.WriteLine($"Total sales: {totalSales}");

listDelimiterパラメーターは任意の文字列を受け入れ、解析動作を完全に制御できるようにします。 IronXLは解析中に列の値やデータ型を保持します — 数値は数のまま、日付はDateTimeオブジェクトのまま、数式はその関係を維持します。

フォーマットが不整合なファイルの場合、IronXLのエラー処理機能は、アプリケーションをクラッシュさせることなく不正な形式の行を処理するため、個々の行に問題があっても、有効なデータは引き続き処理されます。

C# CSVファイルリーダーチュートリアル: IronXLでCSVデータを解析・変換: 画像2 - はじめにサンプル出力

サポートされているファイル形式と区切り文字

IronXLは、CSVファイルを読み込む際に、以下の区切り文字タイプをサポートしています。

IronXLのLoadCSVメソッドでサポートされている一般的な区切り文字の種類
デリミタキャラクター一般的な使用例
コンマ,標準CSV、米国ロケールエクスポート
セミコロン;ヨーロッパ地域からのエクスポート(小数点区切り文字はカンマ)
タブ\tタブ区切り値(TSV)、データベースエクスポート
パイプ|ログファイル、システムエクスポート
カスタム文字列どれでも独自のデータ形式、複数文字の区切り文字

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

CSV行を厳密に型付けされたオブジェクトに変換することで、データ処理が簡素化され、LINQ操作が可能になります。 IronXLは、そのセルアクセスメソッドを通じて、このマッピングを簡単に行えます。 以下のコードは、 .NET 10 のトップレベルステートメントを使用して、CSV ファイルを型付きオブジェクトのリストにマッピングする方法を示しています。

using IronXL;

// Define a typed model matching your CSV structure
public record Product(string Name, decimal Price, int Stock, DateTime? LastUpdated);

// Load and parse CSV file
WorkBook workbook = WorkBook.LoadCSV("inventory.csv");
WorkSheet sheet = workbook.DefaultWorkSheet;

var products = new List<Product>();

// Start from row 2 to skip the header row
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 after loading
var lowStock = products.Where(p => p.Stock < 10).ToList();
var highValue = products.Where(p => p.Price > 100m).OrderByDescending(p => p.Price).ToList();

Console.WriteLine($"Products with low stock: {lowStock.Count}");
Console.WriteLine($"High-value products: {highValue.Count}");

IronXLの型付き値プロパティ — StringValue, DecimalValue, IntValue, DateTimeValue — は変換を安全に処理し、無効なデータの場合は例外をスローする代わりにデフォルト値を返します。 この防御的なアプローチにより、アプリケーションは不完全なデータでも中断なく処理できるようになります。 これは、C# 9で導入されたC#レコード型と自然に組み合わせることができ、マッピングされたCSV行に対して簡潔で不変なデータモデルを提供します。

IronXLの機能ページでは、セルデータの読み取りに使用できる値アクセサの種類について、詳細な概要が提供されています。

C# CSVファイルリーダーチュートリアル: IronXLでCSVデータを解析・変換: 画像3 - 異なる区切り文字の読み取り出力

LINQを使ってCSVデータをフィルタリングおよびクエリするにはどうすればよいですか?

CSVデータがWorkSheetにロードされると、範囲セレクタを使って作業を行ったり、LINQクエリ用にオブジェクトに変換したりできます。 単純な列操作の場合、範囲ベースのアクセスが最も直接的な方法です。

using IronXL;

WorkBook workbook = WorkBook.LoadCSV("sales-data.csv");
WorkSheet sheet = workbook.DefaultWorkSheet;

// Read entire columns using range notation
var productNames = sheet["A2:A100"]
    .Select(cell => cell.StringValue)
    .Where(name => !string.IsNullOrEmpty(name))
    .ToList();

// Aggregate numeric columns directly
decimal totalRevenue = sheet["C2:C100"].Sum();
decimal averageOrder = sheet["C2:C100"].Avg();

Console.WriteLine($"Products loaded: {productNames.Count}");
Console.WriteLine($"Total revenue: {totalRevenue:C}");
Console.WriteLine($"Average order value: {averageOrder:C}");

この範囲ベースのアプローチは、単純な集計において行ごとの反復処理を回避するため、大きなファイルでのパフォーマンスが向上します。 サポートされている範囲操作の全リストについては、 IronXLのドキュメントを参照してください。

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

多くのビジネスワークフローでは、高度な分析、書式設定、または配布のために、Excel形式のCSVデータが必要となります。 IronXL を使用すれば、データの整合性を完全に維持したまま、この変換を簡単に行うことができます。

using IronXL;

// Load CSV file
WorkBook csvWorkbook = WorkBook.LoadCSV("monthly-report.csv");
WorkSheet sheet = csvWorkbook.DefaultWorkSheet;

// Apply formatting before saving
sheet["A1:D1"].Style.Font.Bold = true;
sheet["A1:D1"].Style.BackgroundColor = "#4472C4";
sheet["A1:D1"].Style.Font.Color = "#FFFFFF";

// Apply currency format to price column
sheet["B2:B1000"].FormatString = "$#,##0.00";

// Apply date format to date column
sheet["D2:D1000"].FormatString = "yyyy-MM-dd";

// Save as Excel with a single method call
csvWorkbook.SaveAs("monthly-report.xlsx");

Console.WriteLine("Conversion complete: monthly-report.xlsx");

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

出力形式をさらに細かく制御したい場合は、エクスポート手順ガイドで、XLSX、XLS、CSV、PDF へのエクスポートなどのオプションについて説明しています。 また、Excelファイルの作成方法や、Excelファイルをゼロから作成する方法についても学ぶことができます。

C# CSVファイルリーダーチュートリアル: IronXLでCSVデータを解析・変換: 画像4 - CSVデータ解析出力

データベース操作のためにCSVをDataSetに変換する

CSVデータをDataSetにロードしてさらに処理を行ったり、データベースへの挿入を行いたい場合、IronXLは直接の変換サポートを提供します。 "ExcelからDataSetへの変換ガイド"では、これについて詳しく説明しています:

using IronXL;
using System.Data;

WorkBook workbook = WorkBook.LoadCSV("customer-export.csv");

// Convert entire workbook to DataSet
DataSet dataSet = workbook.ToDataSet();

// The first sheet becomes the first DataTable
DataTable customerTable = dataSet.Tables[0];

Console.WriteLine($"Rows loaded: {customerTable.Rows.Count}");
Console.WriteLine($"Columns: {customerTable.Columns.Count}");

// Process with standard ADO.NET
foreach (DataRow row in customerTable.Rows)
{
    string name = row["Name"]?.ToString() ?? string.Empty;
    string email = row["Email"]?.ToString() ?? string.Empty;
    Console.WriteLine($"Customer: {name} <{email}>");
}

このアプローチは.NETワークフローと直接統合されており、標準データアダプタを介してCSVデータをSQL Server、SQLite、またはその他のリレーショナルデータベースにプッシュする場合に役立ちます。 DataTableは.NETのコアタイプであるため、このパスにはIronXL以外の追加依存関係は必要ありません。

大容量のCSVファイルをどのように処理し、パフォーマンスを最適化していますか?

数万行以上の大規模なCSVファイルを処理するには、データのアクセス方法とメモリ管理方法に注意を払う必要があります。 IronXLには、大容量ファイルを扱う際に役立つ機能が含まれています。

パフォーマンス向上のための範囲演算の使用

大規模データセットで最適なパフォーマンスを得るには、個々のセルに1つずつアクセスするのではなく、範囲演算を使用してください。範囲演算は、IronXLの内部エンジンによってより効率的に処理されます。

using IronXL;

WorkBook workbook = WorkBook.LoadCSV("large-dataset.csv");
WorkSheet sheet = workbook.DefaultWorkSheet;

int rowCount = sheet.RowCount;
int colCount = sheet.ColumnCount;

Console.WriteLine($"Dataset dimensions: {rowCount} rows x {colCount} columns");

// Efficient: read entire range at once
var allData = sheet[$"A1:{GetColumnLetter(colCount)}{rowCount}"]
    .Select(cell => cell.StringValue)
    .ToList();

// Efficient: aggregate a column without row-by-row iteration
decimal columnSum = sheet[$"B2:B{rowCount}"].Sum();

Console.WriteLine($"Column B total: {columnSum}");

static string GetColumnLetter(int col)
{
    string result = string.Empty;
    while (col > 0)
    {
        col--;
        result = (char)('A' + col % 26) + result;
        col /= 26;
    }
    return result;
}

IronXLは、CSVファイルを読み込む際にテキストエンコーディングのバリエーション( UTF-8、UTF-16、ASCII )を自動的に処理し、追加の設定なしに列の値に含まれる国際文字が正しく表示されるようにします。 これは、UTF-8 BOMや代替エンコーディングが一般的な地域にあるシステムからエクスポートされたファイルにとって特に重要です。

信頼できないCSVソースのエラー処理

信頼できないソースや可変ソースからのCSVファイルを処理する場合、操作をtry-catchブロックで囲むことで、追加の安全層が確保されます。

using IronXL;

string filePath = "user-uploaded-data.csv";

try
{
    WorkBook workbook = WorkBook.LoadCSV(filePath);
    WorkSheet sheet = workbook.DefaultWorkSheet;

    Console.WriteLine($"Loaded {sheet.RowCount} rows from {filePath}");

    for (int row = 2; row <= sheet.RowCount; row++)
    {
        string value = sheet[$"A{row}"].StringValue;
        if (!string.IsNullOrWhiteSpace(value))
        {
            Console.WriteLine(value);
        }
    }
}
catch (IronXL.Exceptions.IronXLException ex)
{
    Console.WriteLine($"IronXL error reading {filePath}: {ex.Message}");
}
catch (IOException ex)
{
    Console.WriteLine($"File access error: {ex.Message}");
}

IronXLハウツーガイドでは、ファイル、ストリーム、バイト配列など、さまざまなソースからのデータインポートパターンについて解説しています。

C# CSVファイルリーダーチュートリアル: IronXLでCSVデータを解析・変換: 画像5 - CSVをExcel形式に変換

クロスプラットフォームデプロイメント

IronXLはMicrosoft Officeとは独立して動作するため、サーバー環境やクラウド環境への導入に適しています。 IronXLは、Windows、Linux、macOS、Dockerコンテナ、AzureやAWS上のクラウド機能など、どのプラットフォームにデプロイする場合でも、設定変更なしで一貫した結果を提供します。

このクロスプラットフォーム機能は、軽量コンテナがデータ処理タスクを処理するマイクロサービスアーキテクチャにとって非常に価値があります。 IronXLの機能概要には、サポートされている環境とランタイムターゲットの全リストが記載されています。

IronXLのライセンスはどのように取得できますか?

IronXLを本番環境で使用するには、ライセンスキーが必要です。 評価用の無料トライアルライセンスが利用可能で、個人開発者、チーム、組織向けの商用ライセンスも用意されています。

IronXLを呼び出す前に、アプリケーションにライセンスキーを適用してください。

using IronXL;

// Apply license key at application startup
IronXL.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";

// Verify the license is active
if (IronXL.License.IsValidLicense("YOUR-LICENSE-KEY-HERE"))
{
    Console.WriteLine("IronXL license is active.");
}

// Now use IronXL normally
WorkBook workbook = WorkBook.LoadCSV("data.csv");
WorkSheet sheet = workbook.DefaultWorkSheet;
Console.WriteLine($"Loaded {sheet.RowCount} rows.");

試用版およびライセンスオプションについては、 IronXLのライセンスページをご覧ください。

IronXLがCSV処理に最適な選択肢である理由とは?

IronXLは、C#におけるCSVファイルの読み込みを、面倒な解析作業から簡単な操作へと変えます。 このライブラリは、手動解析では誤ってしまう一般的なエッジケース(埋め込みカンマ、引用符で囲まれたフィールド内の改行、一貫性のない区切り文字、エンコードのバリエーション、不正な形式の行など)を、各シナリオごとにカスタムコードを作成することなく処理します。 一度限りの迅速なデータインポートが必要な場合でも、1日に数千ものファイルを処理する本番環境のパイプラインが必要な場合でも、同じAPIがどちらの状況でも機能します。

フィールドがデリミタ文字を含んでいる場合やフィールド値内に改行が発生した場合、StreamReaderでの手動CSV解析はすぐに失敗します。 IronXLは、引用符付きフィールドの処理とエスケープシーケンスに関するCSV仕様に従い、これらのケースをデフォルトで正しく処理します。

IronXLが.NET 10でのCSV処理において他社製品と一線を画す主な利点は以下のとおりです。

  • Officeへの依存なし:サーバーおよびクラウド展開は、Microsoft OfficeやCOM相互運用ツールをインストールしなくても動作します。
  • カスタムデリミタ: listDelimiterパラメーターを介して任意のデリミタ文字または文字列がサポートされています
  • 型安全なセルアクセス: StringValue, DecimalValue, IntValue, およびDateTimeValueアクセサーは不良データで例外をスローする代わりに安全なデフォルトを返します -範囲操作:行ごとの反復処理なしに、範囲をまたいでデータを集計およびクエリします。 -フォーマット変換:CSVファイルを読み込み、XLSX、XLS、PDFなどの形式で保存するワークフローを1つにまとめます。
  • DataSet統合: 読み込まれたワークブックをDataSet / DataTableに変換してADO.NETとデータベース操作に使用します -クロスプラットフォーム:Windows、Linux、macOS、Docker、クラウド環境で変更なしで動作します

IronXLのドキュメントおよびセル書式設定ガイドでは、書式設定、数式のサポート、およびワークブックの高度な操作についてさらに詳しく説明しています。

CSVファイルを自信を持って扱う準備はできていますか? 無料トライアルで始めて、 IronXLの全機能を体験してください。

Curtis Chau
テクニカルライター

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

...
詳しく読む

関連する記事

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
無料のライブデモを予約する
Booking Badge

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。