他のコンポーネントと比較する IronXLとCsvHelperの比較 Curtis Chau 更新日:7月 28, 2025 Download IronXL NuGet Download テキストの検索と置換 Start Free Trial Copy for LLMs Copy for LLMs Copy page as Markdown for LLMs Open in ChatGPT Ask ChatGPT about this page Open in Gemini Ask Gemini about this page Open in Grok Ask Grok about this page Open in Perplexity Ask Perplexity about this page Share Share on Facebook Share on X (Twitter) Share on LinkedIn Copy URL Email article CSVファイルの操作は、挑戦的な作業になることがあります。 今日では、多くのライブラリが開発者をこのタスクからMicrosoft Excelをインストールする必要なしに支援するために利用可能です。 この記事では、C# .NET技術を使用して、CSV形式または標準のXLSX形式のMicrosoft Excel文書をプログラム的に操作する方法を、IronXLとCsvHelperという2 つの最も人気のあるライブラリを使用して比較しながら説明します。 まずは両方のライブラリが提供するものを見てみましょう。 IronXLライブラリ IronXLは、C#でMicrosoft Excel文書の読み取りと編集を容易にする.NETのライブラリです。 IronXL.Excelは、さまざまなスプレッドシート形式を読み取るためのスタンドアローンの.NETソフトウェアライブラリです。 Microsoft Excelのインストールは不要であり、Interopにも依存しません。CSVファイルととてもスムーズに動作します。 IronXLは直感的なC# APIであり、Excelスプレッドシートファイルを.NETで超高速で読み取り、編集、作成できます。 IronXLは、.NET Core、.NET Framework、Xamarin、モバイル、Linux、macOS、およびAzureを完全にサポートしています。 IronXLは、C#向けのリーディング.NET Coreおよび.NETフレームワークのExcelスプレッドシートライブラリです。 IronXLの機能セット データをロード、読み取り、編集 — XLS/XLSX/CSV/TSV から 保存とエクスポート — XLS/XLSX/CSV/TSV/JSON へ 範囲 — 使いやすい WorkSheet["A1:B10"] 構文。 直感的に範囲を結合・作成します。 ソート — 範囲、列、行のソート。 スタイリング — セルの視覚スタイル、フォント、サイズ、背景パターン、境界、配置、番号フォーマット。 CsvHelper CSVファイルの読み取りと書き込みを行う.NETライブラリ。 非常に高速で柔軟、かつ使いやすい。 カスタムクラスオブジェクトの読み書きをサポート。 すべてのサンプルコードはCsvHelperのドキュメント内にあります。 class="hsg-featured-snippet"> C#でのCsvHelperの使い方 CSVファイルを読み込むためにCsvHelper C#ライブラリをインストール CsvConfiguration クラスを利用してCSVの設定を行う C#の組込み StreamReader でファイルを開く ステップ2 & 3で作成したインスタンスを CsvReader クラスに入力して読み込む CsvHelper DefaultTypeConverterクラスを継承してCSV内のデータを変換 CsvHelperの特徴 高速: クラスをフライでコンパイルして極めて高速なパフォーマンスを実現 柔軟: 書き込みは保守的、読み込みは自由 簡単: GetRecords<T>() と WriteRecords(records) のように簡単 高度に設定可能 Linux対応モード メモリ使用量が少ない 1. コンソールアプリケーションを作成 コンソールアプリケーションを作成する手順は以下の通りです: Visual Studio 2022 IDE を開始します。 「新しいプロジェクトを作成」をクリックします。 「新しいプロジェクトを作成」ページで、言語ドロップダウンリストから C# を選択し、プラットフォーム リストから Windows を、そしてプロジェクトタイプリストから コンソール を選択します。 表示されるプロジェクトテンプレートから Console App (.NET Framework) を選択します。 class="content-img-align-center"> class="center-image-wrapper">プロジェクトを作成 - コンソールアプリケーション 次へをクリックします。 追加情報画面で使用したいフレームワークバージョンを指定します。 この例では.NET Framework 4.8を使用します。 class="content-img-align-center"> class="center-image-wrapper">プロジェクトを作成 - .NET Framework 作成をクリックしてプロセスを完了します。 プロジェクトが作成され、ライブラリのテストの準備がほぼ整いました。 ただし、ライブラリをプロジェクトにインストールして統合する必要があります。 まずIronXLをインストールしましょう。 2. IronXL C#ライブラリのインストール IronXLライブラリをダウンロードしてインストールする方法としては以下のものがあります: Visual StudioでNuGetパッケージを使用します NuGet パッケージを直接ダウンロードします DLLで手動インストールします それぞれを詳しく見ていきましょう。 2.1. Visual StudioでNuGetパッケージを使用します Visual Studioは、NuGetパッケージをプロジェクトにインストールするNuGetパッケージマネージャーを提供しています。 これにアクセスするには、プロジェクトメニューを通じて、またはソリューションエクスプローラでプロジェクトを右クリックして行います。 class="content-img-align-center"> class="center-image-wrapper">NuGet パッケージの管理を選択 今度は、ブラウズ タブから、IronXL.Excel を検索 -> インストールします class="content-img-align-center"> class="center-image-wrapper">IronXLを検索 完了しました。 2.2. NuGetパッケージを直接ダウンロード これはNuGetサイトに直接アクセスしてパッケージをダウンロードすることによって行うことが可能です。 手順は次の通りです: https://www.nuget.org/packages/IronXL.Excel に移動します 「パッケージをダウンロード」を選択 ダウンロードしたパッケージをダブルクリックします パッケージがインストールされます Visual Studio プロジェクトをリロードして、使用を開始します 2.3. DLLで手動インストールします もう一つのIronXL C#ライブラリをダウンロードしてインストールする方法は、Developer Command Promptを使用してIronXL NuGetパッケージをインストールする以下の手順を実行することです。 開発者コマンドプロンプト を開く — 通常は Visual Studio フォルダ内にあります。 次のコマンドを入力します: PM> Install-Package IronXL.Excel Enterキーを押します これにより、パッケージのダウンロードとインストールが行われます Visual Studio プロジェクトをリロードして、使用を開始します 2.4. 必要なusingディレクティブを追加 ソリューションエクスプローラーで Program.cs ファイルを右クリックして、[コードの表示] をクリックします。 コードファイルの冒頭に以下のusingディレクティブを追加します。 using IronXL; using IronXL; Imports IronXL $vbLabelText $csharpLabel これで完了です! IronXLはダウンロードされ、インストールされ、使用準備が整いました。 ただし、その前に CsvHelper をインストールするべきです。 3. CsvHelper のインストール 3.1. NuGet パッケージ マネージャー コンソールを使う場合 CsvHelper C# ライブラリをダウンロードしてインストールするには、開発者コマンドプロンプトを介して NuGet パッケージ をインストールするための次の手順を使用します。 開発者コマンドプロンプト を開く — 通常は Visual Studio フォルダ内にあります。 次のコマンドを入力します: PM> Install-Package CsvHelper -Version 27.2.1 Enterキーを押します これにより、パッケージのダウンロードとインストールが行われます Visual Studio プロジェクトをリロードして、使用を開始します 3.2. 直接ダウンロード NuGetウェブサイトからダウンロードしてください: https://www.nuget.org/packages/CsvHelper。 4. IronXL を使用した CSV ファイルの操作 カンマ区切り値 (CSV)ファイルは、カンマを使って値を分ける区切りテキストファイルです。 ファイルの各行はデータレコードです。 これらのファイルを計算のために操作することは挑戦的な作業になる可能性があり、IronXLはMicrosoft Excelなしでそれを行うための非常に良い簡単なオプションを提供しています。 まず最初に、CSVファイルを通常のExcelファイルに変換しましょう。 4.1. CSVファイルをExcel形式に変換 このプロセスは非常に簡単で簡潔です。 通常、1行のコードで完了します。 CSVからExcel形式へ: // Load the CSV file and convert it to an Excel format WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ","); // Access the default worksheet WorkSheet ws = workbook.DefaultWorkSheet; // Save the workbook as an Excel file workbook.SaveAs("CsvToExcelConversion.xlsx"); // Load the CSV file and convert it to an Excel format WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ","); // Access the default worksheet WorkSheet ws = workbook.DefaultWorkSheet; // Save the workbook as an Excel file workbook.SaveAs("CsvToExcelConversion.xlsx"); ' Load the CSV file and convert it to an Excel format Dim workbook As WorkBook = WorkBook.LoadCSV("test.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",") ' Access the default worksheet Dim ws As WorkSheet = workbook.DefaultWorkSheet ' Save the workbook as an Excel file workbook.SaveAs("CsvToExcelConversion.xlsx") $vbLabelText $csharpLabel 4.2. IronXL を使用して変換された CSV ファイルを読み取りおよび操作 IronXLのWorkBookクラスはExcelシートを表します。 C#を使用してExcelファイルを開くためには、WorkBook.Loadを使用し、Excelファイル(.xlsx)のパスを指定します。 以下の1行コードは、読み取りのためにファイルを開くために使用されます: // Load WorkBook var workbook = WorkBook.Load(@"Spreadsheets/sample.xlsx"); // Load WorkBook var workbook = WorkBook.Load(@"Spreadsheets/sample.xlsx"); ' Load WorkBook Dim workbook = WorkBook.Load("Spreadsheets/sample.xlsx") $vbLabelText $csharpLabel 各 WorkBook は複数の WorkSheet オブジェクトを含むことができます。 これらはExcelドキュメントのワークシートを表しています。 ワークブックにワークシートがある場合、次のようにして名前で取得します: // Open the sheet for reading var worksheet = workbook.GetWorkSheet("sheetnamegoeshere"); // Open the sheet for reading var worksheet = workbook.GetWorkSheet("sheetnamegoeshere"); ' Open the sheet for reading Dim worksheet = workbook.GetWorkSheet("sheetnamegoeshere") $vbLabelText $csharpLabel セル値を読み取るためのコード: // Read from ranges of cells elegantly foreach (var cell in worksheet["A2:A10"]) { Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text); } // Read from ranges of cells elegantly foreach (var cell in worksheet["A2:A10"]) { Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text); } ' Read from ranges of cells elegantly For Each cell In worksheet("A2:A10") Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text) Next cell $vbLabelText $csharpLabel ワークブックとワークシートを読み込んだ後、次のコード例を使用して、数式の変更を行ったり、特定のセルに適用することができます。 コードは次の通りです: // Set formulas in specific cells worksheet["A1"].Formula = "SUM(B8:C12)"; worksheet["B8"].Formula = "=C9/C11"; worksheet["G30"].Formula = "MAX(C3:C7)"; // Force recalculate all formula values in all sheets workbook.EvaluateAll(); // Set formulas in specific cells worksheet["A1"].Formula = "SUM(B8:C12)"; worksheet["B8"].Formula = "=C9/C11"; worksheet["G30"].Formula = "MAX(C3:C7)"; // Force recalculate all formula values in all sheets workbook.EvaluateAll(); ' Set formulas in specific cells worksheet("A1").Formula = "SUM(B8:C12)" worksheet("B8").Formula = "=C9/C11" worksheet("G30").Formula = "MAX(C3:C7)" ' Force recalculate all formula values in all sheets workbook.EvaluateAll() $vbLabelText $csharpLabel 4.3. Excel文書を再びCSVファイルに保存する CSVファイルの書き込みは、IronXLを使用することで簡単なプロセスです。 次のコードは、単にExcelファイルをCSV形式で SaveAsCsv メソッドを利用して保存します。 // Load the Excel Workbook WorkBook wb = WorkBook.Load("Normal_Excel_File.xlsx"); // Save the workbook as a CSV file wb.SaveAsCsv("SaveAsCSV.csv", ","); // This will save as "SaveAsCSV.Sheet1.csv" // Load the Excel Workbook WorkBook wb = WorkBook.Load("Normal_Excel_File.xlsx"); // Save the workbook as a CSV file wb.SaveAsCsv("SaveAsCSV.csv", ","); // This will save as "SaveAsCSV.Sheet1.csv" ' Load the Excel Workbook Dim wb As WorkBook = WorkBook.Load("Normal_Excel_File.xlsx") ' Save the workbook as a CSV file wb.SaveAsCsv("SaveAsCSV.csv", ",") ' This will save as "SaveAsCSV.Sheet1.csv" $vbLabelText $csharpLabel 5. CsvHelper を使用した CSV ファイルの操作 CSVファイルの読み取りは、想像よりも難しいことがあるタスクのひとつです。 CsvHelperライブラリは、型安全で高速かつ柔軟なコードを書きやすくしてくれます。 5.1. CsvHelperでCSVファイルを読み込む こちらがサンプルのCSVファイルです。それには3つのテキストカラムと1つのナンバーカラムがあります。 FirstName,LastName,Age,IsActive Ali,Talal,30,Yes Affan,Ahmad,31,No Saad,Bhatti,31,Yes 各行を Person タイプのオブジェクトにマッピングします。 // Define the Person class to map CSV records public class Person { public string FirstName { get; set; } public string LastName { get; set; } public int? Age { get; set; } public string IsActive { get; set; } } // Define the Person class to map CSV records public class Person { public string FirstName { get; set; } public string LastName { get; set; } public int? Age { get; set; } public string IsActive { get; set; } } ' Define the Person class to map CSV records Public Class Person Public Property FirstName() As String Public Property LastName() As String Public Property Age() As Integer? Public Property IsActive() As String End Class $vbLabelText $csharpLabel 私たちのCSVファイルを読むためのコードは以下です。 // Define the path to the CSV file var fileName = @"<path to our CSV file>"; // Configure CsvHelper var configuration = new CsvConfiguration(CultureInfo.InvariantCulture) { Encoding = Encoding.UTF8, Delimiter = "," }; // Read CSV file using (var fs = File.Open(fileName, FileMode.Open, FileAccess.Read, FileShare.Read)) { using (var textReader = new StreamReader(fs, Encoding.UTF8)) using (var csv = new CsvReader(textReader, configuration)) { var data = csv.GetRecords<Person>(); // Iterate over each person record foreach (var person in data) { // Process each Person object } } } // Define the path to the CSV file var fileName = @"<path to our CSV file>"; // Configure CsvHelper var configuration = new CsvConfiguration(CultureInfo.InvariantCulture) { Encoding = Encoding.UTF8, Delimiter = "," }; // Read CSV file using (var fs = File.Open(fileName, FileMode.Open, FileAccess.Read, FileShare.Read)) { using (var textReader = new StreamReader(fs, Encoding.UTF8)) using (var csv = new CsvReader(textReader, configuration)) { var data = csv.GetRecords<Person>(); // Iterate over each person record foreach (var person in data) { // Process each Person object } } } ' Define the path to the CSV file Dim fileName = "<path to our CSV file>" ' Configure CsvHelper Dim configuration = New CsvConfiguration(CultureInfo.InvariantCulture) With { .Encoding = Encoding.UTF8, .Delimiter = "," } ' Read CSV file Using fs = File.Open(fileName, FileMode.Open, FileAccess.Read, FileShare.Read) Using textReader = New StreamReader(fs, Encoding.UTF8) Using csv = New CsvReader(textReader, configuration) Dim data = csv.GetRecords(Of Person)() ' Iterate over each person record For Each person In data ' Process each Person object Next person End Using End Using End Using $vbLabelText $csharpLabel data のタイプは IEnumerable<Person> です。 CsvHelperは、それぞれのカラムを同じ名前のプロパティに自動的にマッピングします。 例えば、FirstName カラムの値は Person.FirstName にマッピングされます。 その後、dataをイテレートして、各行の値にアクセスすることができます。 5.2. CSVファイル内のデータをある型から別の型へ変換する CSVファイルは主にテキストデータを含んでいます。 例えば、年齢カラムは整数値であり、CSVファイルはテキストのみを含んでいます。 CsvHelperは、文字列から標準の.NET型(Boolean, Int32, Int64, Enum)にデータを変換することができます。 私たちの場合、IsActiveというブールデータ型があり、True/False のみを持つことができ、標準ではない値を含んでいます。 カスタムコンバーターを作成することで、これを変換することができます。 コードのスタイリングは次の通りです。 // Custom Boolean Converter for CsvHelper public class CustomBooleanConverter : DefaultTypeConverter { public override object ConvertFromString(string text, IReaderRow row, MemberMapData memberMapData) { // Convert "Yes" to true and anything else to false return text.Equals("Yes", StringComparison.OrdinalIgnoreCase); } } // Custom Boolean Converter for CsvHelper public class CustomBooleanConverter : DefaultTypeConverter { public override object ConvertFromString(string text, IReaderRow row, MemberMapData memberMapData) { // Convert "Yes" to true and anything else to false return text.Equals("Yes", StringComparison.OrdinalIgnoreCase); } } ' Custom Boolean Converter for CsvHelper Public Class CustomBooleanConverter Inherits DefaultTypeConverter Public Overrides Function ConvertFromString(ByVal text As String, ByVal row As IReaderRow, ByVal memberMapData As MemberMapData) As Object ' Convert "Yes" to true and anything else to false Return text.Equals("Yes", StringComparison.OrdinalIgnoreCase) End Function End Class $vbLabelText $csharpLabel たとえboolが標準の.NET型であっても、デフォルトのコンバーターはTrue/Falseしか処理できませんが、私たちのCSVファイルにはYes/Noがあります。 ここでは、DefaultTypeConverterをサブクラス化し、ConvertFromStringメソッドをオーバーライドする必要があります。 6. ライセンス IronXL is an openly commercial C# Excel library. 開発には無料で使用でき、商用デプロイメントのためにいつでもライセンスを取得できます。 Licenses are available for single-project use, single developers, agencies, and global corporations, as well as SaaS and OEM redistribution. すべてのライセンスには30日間の返金保証、1年間の製品サポートとアップデート、デブ/スタージング/プロダクションのための有効性、および永久ライセンス(1回の購入)が含まれています。 Liteパッケージは$799から始まります。 CsvHelper — CSVファイルの読み書きは商業利用において完全に無料です。 7. まとめと結論 概要 IronXLはExcelファイルを操作するために必要なすべてを提供する完全なライブラリです。使用が簡単で、さまざまな形式をXLSXに、またXLSXをCSVなどの他の形式に変換する機能を提供します。この相互変換は、さまざまなファイル形式を簡単に操作する柔軟性をユーザーに提供します。 一方、CsvHelperは、CSVファイル形式と特に連携するために設計されており、CSVファイルのみを処理できます。 すべてのサンプルコードはCsvHelperのドキュメントファイルにあります。 ドキュメントでは、プロジェクトでCsvHelperを使用する方法についてのガイドラインが示されています。 結論 IronXLは複数の形式で作業するユーザーをサポートしているため、CsvHelperに対して明らかな利点があります。 さらに、選択に応じて数式やスタイルを適用することができますが、CsvHelperは限られたオプションでCSVファイルの読み書きしかできません。 また、新しいレコードを既存のCSVファイルに追加することはできず、以前のエントリを上書きしてしまいます。 ご注意CsvHelperの登録商標はその所有者に帰属します。 このサイトはCsvHelperと提携しておらず、承認またはスポンサーされていません。 すべての製品名、ロゴ、およびブランドは各所有者の所有物です。 比較は情報提供のみを目的としており、執筆時点で公開されている情報を反映しています。 よくある質問 C#を使用してExcelファイルを異なる形式に変換するにはどうすればよいですか? IronXLを使用すると、ExcelファイルをXLS、XLSX、CSV、TSVなどさまざまな形式に変換できます。IronXLでファイルを読み込んで、柔軟なエクスポートオプションを使用して希望の形式で保存することで実行できます。 Excelファイル操作においてCsvHelperに対するIronXLの利点は何ですか? IronXLは、XLS、XLSX、CSVを含む複数のExcel形式での作業に対する包括的な機能を提供します。データ操作、スタイリング、数式の適用などの機能をサポートしており、大規模なExcelファイル処理を必要とするプロジェクトに理想的です。対照的に、CsvHelperは高速で効率的なCSVファイル操作に特化しています。 C#プロジェクトのためにIronXLをインストールするにはどうすればよいですか? Visual StudioのNuGetパッケージマネージャーで「IronXL」を検索してインストールできます。あるいは、NuGetパッケージを直接ダウンロードするか、プロジェクトでDLLを参照して手動でインストールすることもできます。 Microsoft ExcelをインストールしなくてもIronXLを使用できますか? はい、IronXLはシステムにMicrosoft Excelをインストールする必要がありません。独立して動作し、さまざまな形式でExcelファイルを読み取り、編集、作成することができます。 CsvHelperを使ってCSVファイルを読み書きするにはどうすればよいですか? CsvHelperを使用すると、CSVレコードをマップするクラスを定義し、CsvHelperの設定を構成し、CsvReaderとCsvWriterを使用してCSVファイル操作を簡単に行うことができます。 CSVファイル処理のためにCsvHelperが人気の理由は何ですか? CsvHelperは、速度、柔軟性、使いやすさで知られています。カスタムクラスオブジェクトとタイプ変換をサポートしており、CSVデータ処理に特化したプロジェクトで好まれる選択肢となっています。 IronXLの使用にライセンス要件はありますか? はい、商用環境でIronXLを展開するには有料ライセンスが必要です。CsvHelperは商業利用が無料であるのに対し、この点が異なります。 どのようなプロジェクトがIronXLの恩恵を受けるでしょうか? スタイリング、データの並べ替え、数式計算など、さまざまなExcelファイル形式の広範な操作を必要とするプロジェクトは、その堅牢な機能セットのおかげでIronXLから最大の利益を得るでしょう。 Curtis Chau 今すぐエンジニアリングチームとチャット テクニカルライター Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。 関連する記事 更新日 6月 22, 2025 IronXLを使用してC#開発者向けのZipアーカイブのチュートリアル このチュートリアルでは、ZIPファイルの作成、圧縮ファイルからのデータ抽出、そしてC#でのZIPアーカイブの操作方法について学びます。 詳しく読む 更新日 7月 28, 2025 3つのオープンソースC# Excelライブラリの比較 この記事では、.NET環境でのExcelファイル操作を簡素化するために設計された3つのC#オープンソースExcelライブラリを探ります。 詳しく読む 更新日 8月 4, 2025 EPPlusでExcelをDataTableに読み込むC#(IronXLチュートリアル) EPPlus は C# で Excel ファイルを作成および操作するための強力なオープンソースライブラリです。それは開発者が Excel スプレッドシートをプログラム的に生成、読み込み、修正することを可能にするシンプルで直感的な API を提供します。 詳しく読む IronXLとCsvWriterの比較IronXLとNPOIの比較
更新日 6月 22, 2025 IronXLを使用してC#開発者向けのZipアーカイブのチュートリアル このチュートリアルでは、ZIPファイルの作成、圧縮ファイルからのデータ抽出、そしてC#でのZIPアーカイブの操作方法について学びます。 詳しく読む
更新日 7月 28, 2025 3つのオープンソースC# Excelライブラリの比較 この記事では、.NET環境でのExcelファイル操作を簡素化するために設計された3つのC#オープンソースExcelライブラリを探ります。 詳しく読む
更新日 8月 4, 2025 EPPlusでExcelをDataTableに読み込むC#(IronXLチュートリアル) EPPlus は C# で Excel ファイルを作成および操作するための強力なオープンソースライブラリです。それは開発者が Excel スプレッドシートをプログラム的に生成、読み込み、修正することを可能にするシンプルで直感的な API を提供します。 詳しく読む