IRONXLの使用 C# CSV ファイル リーダー: IronXLで CSV データを解析および処理する カーティス・チャウ 更新日:2026年2月27日 IronXL をダウンロード NuGet ダウンロード DLL ダウンロード 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる Grokで開く このページについてGrokに質問する 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る 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パッケージ マネージャー コンソールを使用してコマンドラインからインストールできます。 どちらの方法も同じパッケージをインストールし、あらゆるタイプ for .NET 10プロジェクトで動作します。 # .NET CLI dotnet add package IronXl.Excel # NuGet Package Manager Console Install-Package IronXl.Excel # .NET CLI dotnet add package IronXl.Excel # NuGet Package Manager Console Install-Package IronXl.Excel SHELL インストールオプションと設定の詳細については、 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); } } 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); } } Imports IronXL ' Load CSV file Dim workbook As WorkBook = WorkBook.LoadCSV("data.csv") Dim sheet As WorkSheet = workbook.DefaultWorkSheet ' Read a specific cell Dim cellValue As String = sheet("A1").StringValue ' Iterate through all rows and cells For Each row In sheet.Rows For Each cell In row Console.WriteLine(cell.StringValue) Next Next $vbLabelText $csharpLabel WorkBook.LoadCSVメソッドは、ヘッダーの識別、内部データ構造の作成、およびメモリ効率の良い解析処理を行い、コードの最初の行からデータ管理を簡素化します。 カスタム区切り文字を含む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}"); 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}"); Imports IronXL ' Load CSV with semicolon delimiter (common in European data exports) Dim workbook As WorkBook = WorkBook.LoadCSV("european-data.csv", fileFormat:=ExcelFileFormat.XLSX, listDelimiter:=";") ' Load tab-separated values (TSV) Dim tsvWorkbook As WorkBook = WorkBook.LoadCSV("export_data.tsv", fileFormat:=ExcelFileFormat.XLSX, listDelimiter:=vbTab) ' Load pipe-delimited file Dim pipeWorkbook As WorkBook = WorkBook.LoadCSV("log_export.csv", fileFormat:=ExcelFileFormat.XLSX, listDelimiter:="|") ' Access data normally after loading Dim sheet As WorkSheet = workbook.DefaultWorkSheet Dim totalSales As Decimal = sheet("B2:B10").Sum() Console.WriteLine($"Total sales: {totalSales}") $vbLabelText $csharpLabel listDelimiter パラメータは任意の文字列を受け入れるため、解析動作を完全に制御できます。 IronXL は解析時に列の値とデータ型を保持します。数値は数値のまま、日付はオブジェクトのまま、数式は関係性を維持します。 フォーマットが不整合なファイルの場合、IronXLのエラー処理機能は、アプリケーションをクラッシュさせることなく不正な形式の行を処理するため、個々の行に問題があっても、有効なデータは引き続き処理されます。 サポートされているファイル形式と区切り文字 IronXLは、CSVファイルを読み込む際に、以下の区切り文字タイプをサポートしています。 IronXLのLoadCSVメソッドでサポートされている一般的な区切り文字の種類 デリミタ キャラクター 一般的な使用例 コンマ `,` 標準CSV、米国ロケールエクスポート セミコロン `;` ヨーロッパ地域からのエクスポート(小数点区切り文字はカンマ) タブ `\t` タブ区切り値(TSV)、データベースエクスポート パイプ `|` ログファイル、システムエクスポート カスタム文字列 どれでも 独自のデータ形式、複数文字の区切り文字 CSVデータをC#オブジェクトに解析するにはどうすればよいですか? 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}"); 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}"); Imports IronXL ' Define a typed model matching your CSV structure Public Class Product Public Property Name As String Public Property Price As Decimal Public Property Stock As Integer Public Property LastUpdated As DateTime? Public Sub New(name As String, price As Decimal, stock As Integer, lastUpdated As DateTime?) Me.Name = name Me.Price = price Me.Stock = stock Me.LastUpdated = lastUpdated End Sub End Class ' Load and parse CSV file Dim workbook As WorkBook = WorkBook.LoadCSV("inventory.csv") Dim sheet As WorkSheet = workbook.DefaultWorkSheet Dim products As New List(Of Product)() ' Start from row 2 to skip the header row For row As Integer = 2 To sheet.RowCount products.Add(New Product( Name:=sheet($"A{row}").StringValue, Price:=sheet($"B{row}").DecimalValue, Stock:=sheet($"C{row}").IntValue, LastUpdated:=sheet($"D{row}").DateTimeValue )) Next ' Use LINQ for analysis after loading Dim lowStock = products.Where(Function(p) p.Stock < 10).ToList() Dim highValue = products.Where(Function(p) p.Price > 100D).OrderByDescending(Function(p) p.Price).ToList() Console.WriteLine($"Products with low stock: {lowStock.Count}") Console.WriteLine($"High-value products: {highValue.Count}") $vbLabelText $csharpLabel IronXL の型付き値プロパティ -- DateTimeValue -- は変換を安全に処理し、無効なデータに対して例外をスローするのではなくデフォルト値を返します。 この防御的なアプローチにより、アプリケーションは不完全なデータでも中断なく処理できるようになります。 これは、C# 9で導入されたC#レコード型と自然に組み合わせることができ、マッピングされたCSV行に対して簡潔で不変なデータモデルを提供します。 IronXLの機能ページでは、セルデータの読み取りに使用できる値アクセサの種類について、詳細な概要が提供されています。 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}"); 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}"); Imports IronXL Dim workbook As WorkBook = WorkBook.LoadCSV("sales-data.csv") Dim sheet As WorkSheet = workbook.DefaultWorkSheet ' Read entire columns using range notation Dim productNames = sheet("A2:A100") _ .Select(Function(cell) cell.StringValue) _ .Where(Function(name) Not String.IsNullOrEmpty(name)) _ .ToList() ' Aggregate numeric columns directly Dim totalRevenue As Decimal = sheet("C2:C100").Sum() Dim averageOrder As Decimal = sheet("C2:C100").Avg() Console.WriteLine($"Products loaded: {productNames.Count}") Console.WriteLine($"Total revenue: {totalRevenue:C}") Console.WriteLine($"Average order value: {averageOrder:C}") $vbLabelText $csharpLabel この範囲ベースのアプローチは、単純な集計において行ごとの反復処理を回避するため、大きなファイルでのパフォーマンスが向上します。 サポートされている範囲操作の全リストについては、 IronXLのドキュメントを参照してください。 C#でCSVを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"); 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"); Imports IronXL ' Load CSV file Dim csvWorkbook As WorkBook = WorkBook.LoadCSV("monthly-report.csv") Dim sheet As WorkSheet = 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") $vbLabelText $csharpLabel 変換は数値の精度、日付フォーマット、特別な文字を保持し、手動変換方法による問題を引き起こすことはありません。 IronXLは、生成されるExcelファイルの構造を自動的に最適化し、大きなデータセットでもすばやく開く効率的なファイルを作成します。 出力形式をより細かく制御するには、エクスポート方法ガイドでXLSX、XLS、CSV、PDFなどのエクスポートオプションについて説明しています。 Excelファイルの書き方や、 Excelファイルをゼロから作成する方法も学ぶことができます。 データベース操作のためにCSVをDataSetに変換する CSV データを DataSet にロードしてさらに処理したりデータベースに挿入したりする必要がある場合、 IronXL は直接変換をサポートします。 Excelからデータセットへの変換ガイドでは、この点について詳しく説明されています。 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}>"); } 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}>"); } Imports IronXL Imports System.Data Dim workbook As WorkBook = WorkBook.LoadCSV("customer-export.csv") ' Convert entire workbook to DataSet Dim dataSet As DataSet = workbook.ToDataSet() ' The first sheet becomes the first DataTable Dim customerTable As DataTable = dataSet.Tables(0) Console.WriteLine($"Rows loaded: {customerTable.Rows.Count}") Console.WriteLine($"Columns: {customerTable.Columns.Count}") ' Process with standard ADO.NET For Each row As DataRow In customerTable.Rows Dim name As String = If(row("Name")?.ToString(), String.Empty) Dim email As String = If(row("Email")?.ToString(), String.Empty) Console.WriteLine($"Customer: {name} <{email}>") Next $vbLabelText $csharpLabel このアプローチは.NETワークフローと直接統合されており、標準データアダプタを介してCSVデータをSQL Server、SQLite、またはその他のリレーショナルデータベースにプッシュする場合に役立ちます。 DataSet と 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; } 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; } Imports IronXL Dim workbook As WorkBook = WorkBook.LoadCSV("large-dataset.csv") Dim sheet As WorkSheet = workbook.DefaultWorkSheet Dim rowCount As Integer = sheet.RowCount Dim colCount As Integer = sheet.ColumnCount Console.WriteLine($"Dataset dimensions: {rowCount} rows x {colCount} columns") ' Efficient: read entire range at once Dim allData = sheet($"A1:{GetColumnLetter(colCount)}{rowCount}") _ .Select(Function(cell) cell.StringValue) _ .ToList() ' Efficient: aggregate a column without row-by-row iteration Dim columnSum As Decimal = sheet($"B2:B{rowCount}").Sum() Console.WriteLine($"Column B total: {columnSum}") Private Shared Function GetColumnLetter(col As Integer) As String Dim result As String = String.Empty While col > 0 col -= 1 result = ChrW(AscW("A"c) + col Mod 26) & result col \= 26 End While Return result End Function $vbLabelText $csharpLabel 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}"); } 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}"); } Imports IronXL Dim filePath As String = "user-uploaded-data.csv" Try Dim workbook As WorkBook = WorkBook.LoadCSV(filePath) Dim sheet As WorkSheet = workbook.DefaultWorkSheet Console.WriteLine($"Loaded {sheet.RowCount} rows from {filePath}") For row As Integer = 2 To sheet.RowCount Dim value As String = sheet($"A{row}").StringValue If Not String.IsNullOrWhiteSpace(value) Then Console.WriteLine(value) End If Next Catch ex As IronXl.Exceptions.IronXLException Console.WriteLine($"IronXL error reading {filePath}: {ex.Message}") Catch ex As IOException Console.WriteLine($"File access error: {ex.Message}") End Try $vbLabelText $csharpLabel IronXLの操作ガイドでは、ファイル、ストリーム、バイト配列など、さまざまなソースのデータインポートパターンについて解説しています。 クロスプラットフォームデプロイメント 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."); 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."); Imports 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") Then Console.WriteLine("IronXL license is active.") End If ' Now use IronXL normally Dim workbook As WorkBook = WorkBook.LoadCSV("data.csv") Dim sheet As WorkSheet = workbook.DefaultWorkSheet Console.WriteLine($"Loaded {sheet.RowCount} rows.") $vbLabelText $csharpLabel 試用版およびライセンスオプションについては、 IronXLのライセンスページをご覧ください。 IronXLがCSV処理に最適な選択肢である理由とは? IronXLは、C#におけるCSVファイルの読み込みを、面倒な解析作業から簡単な操作へと変えます。 このライブラリは、手動解析では誤ってしまう一般的なエッジケース(埋め込みカンマ、引用符で囲まれたフィールド内の改行、一貫性のない区切り文字、エンコードのバリエーション、不正な形式の行など)を、各シナリオごとにカスタムコードを作成することなく処理します。 一度限りの迅速なデータインポートが必要な場合でも、1日に数千ものファイルを処理する本番環境のパイプラインが必要な場合でも、同じAPIがどちらの状況でも機能します。 string.Split または StreamReader を使用した手動の CSV 解析は、引用符で囲まれたフィールドに区切り文字が含まれている場合、またはフィールド値内に改行がある場合にすぐに失敗します。 IronXLは、引用符付きフィールドの処理とエスケープシーケンスに関するCSV仕様に従い、これらのケースをデフォルトで正しく処理します。 IronXLが.NET 10でのCSV処理において他社製品と一線を画す主な利点は以下のとおりです。 Officeへの依存なし:サーバーおよびクラウド展開は、Microsoft OfficeやCOM相互運用ツールをインストールしなくても動作します。 -カスタム区切り文字: listDelimiter パラメータを介して、任意の区切り文字または文字列がサポートされます。 -型安全なセルアクセス: IntValue、および DateTimeValue アクセサは、不正なデータに対して例外をスローする代わりに、安全なデフォルト値を返します。 -範囲操作:行ごとの反復処理なしに、範囲をまたいでデータを集計およびクエリします。 -フォーマット変換:CSVファイルを読み込み、XLSX、XLS、PDFなどの形式で保存するワークフローを1つにまとめます。 DataSet 統合: 読み込まれたワークブックを ADO .NETおよびデータベース操作用に DataSet / DataTable に変換します -クロスプラットフォーム:Windows、Linux、macOS、Docker、クラウド環境で変更なしで動作します IronXLのドキュメントとセル書式設定ガイドには、書式設定、数式サポート、および高度なワークブック操作に関する詳細情報が記載されています。 CSVファイルを自信を持って扱う準備はできていますか? 無料トライアルで始めて、 IronXLの全機能を体験してください。 よくある質問 CSV ファイルとは何ですか? また、なぜよく使用されるのですか? CSVファイル(カンマ区切り値ファイル)は、表形式のデータを格納するためのシンプルなテキスト形式です。そのシンプルさと使いやすさから、ビジネスアプリケーションでは、異なるシステム間でのデータのエクスポートとインポートに広く使用されています。 IronXL はC# での CSV ファイル解析をどのように支援しますか? IronXL は、さまざまな列区切り、引用符で囲まれたフィールド、データ型の変換など、複雑な CSV 構造を処理するための強力なツールを提供することで、C# での CSV ファイル解析を簡素化します。 IronXL はCSV データを他の形式に変換できますか? はい、 IronXL を使用すると、開発者は CSV データを XML や Excel などのさまざまな形式に変換できるため、さまざまなデータ処理ニーズに柔軟に対応できます。 CSV ファイルの解析における一般的な課題は何ですか? よくある課題としては、異なる列区切り文字の扱い、引用符で囲まれたフィールドの管理、正確なデータ型変換の実行などが挙げられます。IronXLは、高度な解析機能によりこれらの問題を軽減します。 IronXL はエンタープライズ レベルの CSV 処理に適していますか? はい、 IronXLはエンタープライズ対応として設計されており、 .NETアプリケーション向けの堅牢でスケーラブルな CSV ファイル処理ソリューションを提供します。 IronXL は大きな CSV ファイルの効率的な処理をサポートしていますか? IronXLはパフォーマンスが最適化されており、速度や精度を損なうことなく、大きな CSV ファイルを効率的に処理できます。 IronXL はカスタム区切り文字付きの CSV ファイルを処理できますか? はい、 IronXL はカスタム区切り文字を使用した CSV ファイルをサポートしており、開発者は非標準の CSV 形式を柔軟に扱うことができます。 IronXLはCSVファイル内の引用符付きフィールドをどのように扱いますか? IronXL はCSV ファイル内の引用符で囲まれたフィールドを正確に解析し、読み取りプロセス中のデータの整合性と適切な変換を保証します。 IronXLで CSV 解析に使用できるプログラミング言語は何ですか? IronXLは.NETライブラリなので、C# や VB .NETなど、 .NET Frameworkでサポートされている言語で使用できます。 IronXL をCSV ファイルで使用するためのコード例はありますか? はい、 IronXLドキュメントには、C# アプリケーションで CSV ファイルを読み取り、解析、処理するための完全なコード例が記載されています。 カーティス・チャウ 今すぐエンジニアリングチームとチャット テクニカルライター Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。 関連する記事 更新日 2026年3月1日 ASP .NET C# で Excel ファイルをダウンロード: XLSX、CSV などにデータをエクスポート C#とIronXLを使用して、 ASP.NET CoreでExcelファイルをダウンロードします。MVCコントローラーからMemoryStreamとFile()を使用して、XLSX、CSV、XML形式でデータをエクスポートします。コード例も含まれています。 詳しく読む 更新日 2026年3月1日 IronXLを使用してBlazorで Excel ファイルをエクスポートする方法 IronXLを使用してBlazor Server アプリケーションから Excel にデータをエクスポートする方法を学びます。このガイドでは、プロジェクトのセットアップ、サービス設計、条件付き書式、複数シートのレポート、エラー処理について、完全な C# コード例とともに説明します。 詳しく読む 更新日 2026年2月27日 StreamReader の代わりに C# で Excel ファイルを読み取る方法 StreamReader が Excel ファイルを読み取れない理由と、 IronXL を使用して C# .NETのディスクまたはメモリ ストリームから XLSX および XLS ワークブックを読み込む方法について説明します。 詳しく読む Microsoft Officeを使わずにC#でExcelファイルを開く方法C# CSVパーサーでデータ処...
更新日 2026年3月1日 ASP .NET C# で Excel ファイルをダウンロード: XLSX、CSV などにデータをエクスポート C#とIronXLを使用して、 ASP.NET CoreでExcelファイルをダウンロードします。MVCコントローラーからMemoryStreamとFile()を使用して、XLSX、CSV、XML形式でデータをエクスポートします。コード例も含まれています。 詳しく読む
更新日 2026年3月1日 IronXLを使用してBlazorで Excel ファイルをエクスポートする方法 IronXLを使用してBlazor Server アプリケーションから Excel にデータをエクスポートする方法を学びます。このガイドでは、プロジェクトのセットアップ、サービス設計、条件付き書式、複数シートのレポート、エラー処理について、完全な C# コード例とともに説明します。 詳しく読む
更新日 2026年2月27日 StreamReader の代わりに C# で Excel ファイルを読み取る方法 StreamReader が Excel ファイルを読み取れない理由と、 IronXL を使用して C# .NETのディスクまたはメモリ ストリームから XLSX および XLS ワークブックを読み込む方法について説明します。 詳しく読む