他のコンポーネントと比較

IronXLとCsvWriterの比較

更新済み 5月 18, 2022
共有:

CSVファイルの取り扱いは困難な作業となることがあります。 しかし、今日では多くのライブラリが利用可能であり、開発者はMicrosoft Excelをインストールする必要がなくなっています。

この記事では、2つの最も人気のあるライブラリであるIronXLとCSVWriterを使用して、C# .NET技術でMicrosoft Excel文書をプログラム的に操作する方法を、CSV形式または標準のExcel形式で比較しながら議論します。

まずは、両方のライブラリが提供するものを見てみましょう。

IronXLライブラリ

IronXLは、C#を使用してMicrosoft Excelドキュメントの読み取りと編集を可能にする.NETライブラリです。 IronXL Excelは、幅広いスプレッドシート形式を読み取るためのスタンドアロン型 .NET ソフトウェアライブラリです。 Microsoft Excelをインストールする必要はなく、Interopに依存しません。

IronXLは、.NETでExcelスプレッドシートファイルを読み取り、編集し、作成することを可能にする直感的なC# APIで、非常に高速なパフォーマンスを提供します。 IronXLは、.NET Core、.NET Framework、Xamarin、モバイル、Linux、macOS、およびAzureを完全にサポートしています。

IronXLは、C#用の.NET Coreおよび.NET Framework向けの主要なExcelスプレッドシートライブラリです。

IronXL フィーチャーセット

  • 読み込み、読み取り、およびデータの編集 — XLS/XLSX/CSV/TSVから
  • 保存およびエクスポート — XLS/XLSX/CSV/TSV/JSON 形式
  • 範囲 — 使いやすいワークシート [「A1:B10」] 構文。 範囲を直感的に結合し、作成します。
  • 並べ替え — 範囲、列、行を並べ替えます。

  • スタイリング — セルの視覚スタイル、フォント、サイズ、背景パターン、境界線、配置および数値形式。

    CSVWriter

CSVWriterモジュールは、開発者がC#で簡単にCSVファイルを作成および操作するためのツールです。IronXLライブラリの一部として提供され、データ処理およびエクスポートの効率を向上させます。以下はその主要な機能です:

  • データのセルごとの編集
  • 列および行の挿入および削除
  • 数式のサポート
  • 既存のExcelファイルへのCSV出力

このツールは、エンタープライズレベルのアプリケーションでの使用に十分な性能と機能を備えています。CSVWriterを使えば、数行のコードで複雑なCSV生成タスクを簡単に実行できます。

詳細なドキュメントやサンプルコードについては、IronXLの公式ウェブサイトhttps://ironsoftware.comをご覧ください。(シーエスブイライター)

CSVファイルを書き込むための.NETライブラリ。 非常に高速で、柔軟性があり、使いやすい。 カスタムクラスオブジェクトの書き込みをサポートします。

CsvWriter機能

  • 高速: 非常に高速なパフォーマンスを実現するためにクラスを即時コンパイルします
  • 柔軟性:書くときに保守的、読むときに自由
  • 使いやすさ:読み取りと書き込みは GetRecords と同じくらい簡単です。() and WriteRecords (レコード書き込み)(記録)
  • 高度に構成可能
  • Linuxモード
  • 低メモリ使用量

コンソールアプリケーションを作成する

次の手順を使用してコンソールアプリケーションを作成します:

  • Visual Studio 2022 IDEを起動します。
  • Create new project」をクリックしてください。
  • 新しいプロジェクトの作成」ページで、言語ドロップダウンリストから C#プラットフォームリストから Windows、そして「プロジェクトタイプ」リストから コンソール を選択してください。
  • コンソールアプリを選択 (.NETフレームワーク)** 表示されているプロジェクトテンプレートから。

    プロジェクトの作成 - コンソールアプリケーション

  • 次へをクリックします。
  • 追加情報画面で、使用したいフレームワークのバージョンを指定してください。 この例では、.NET Framework 4.8 を使用します。

    プロジェクトの作成 - .NETフレームワーク

  • 「作成」をクリックして、プロセスを完了します。

    プロジェクトが作成され、ライブラリのテストの準備がほぼ整いました。 しかし、私たちはまだそれらをインストールし、プロジェクトに統合する必要があります。 まず、IronXLをインストールしましょう。

2. IronXL C#ライブラリのインストール

次の方法を使用して、IronXLライブラリをダウンロードおよびインストールできます:

  1. Visual StudioでNuGetパッケージを使用する

  2. NuGetパッケージを直接ダウンロード

  3. DLLを使用して手動インストール

    それぞれを詳しく見ていきましょう。

2.1. Visual StudioでNuGetパッケージを使用する

Visual Studio は、プロジェクトに NuGet パッケージをインストールするための NuGet パッケージ マネージャーを提供します。 それはプロジェクトメニューからアクセスするか、ソリューションエクスプローラーでプロジェクトを右クリックしてアクセスできます。

選択 - 管理 - NuGet パッケージ

  • ブラウズタブから -> IronXL.Excelを検索 -> インストール

    IronXL を検索

  • 完了しました。

2.2. NuGetパッケージを直接ダウンロードする

これは、NuGetサイトに直接アクセスし、パッケージをダウンロードすることでできます。 以下の手順は:

  • 以下に移動してくださいhttps://www.nuget.org/packages/IronXL.Excel
  • 「ダウンロードパッケージ」を選択
  • ダウンロードしたパッケージをダブルクリックしてください。
  • パッケージがインストールされます。

  • Visual Studio プロジェクトを再読み込みして、使用を開始してください。

    以下の内容を日本語に翻訳してください:

2.3. DLLを使用して手動でインストール

IronXL C#ライブラリをダウンロードしてインストールするもう一つの方法として、開発者コマンドプロンプトを使用して以下の手順でIronXL NuGetパッケージをインストールする方法があります。

  • Developer Command Prompt を開きます。通常、Visual Studio フォルダーにあります。
  • 以下のコマンドを入力してください: PM > Install-Package IronXL.Excel
  • Enterキーを押してください
  • これはパッケージをダウンロードしてインストールします。

  • Visual Studio プロジェクトを再読み込みして、使用を開始してください。

2.4. 必要なusingディレクティブを追加

  1. ソリューションエクスプローラーで、Program.csファイルを右クリックし、コードの表示をクリックします。

  2. コードファイルの最上部に次のusingディレクティブを追加します:
using IronXL;
using IronXL;
Imports IronXL
VB   C#

すべて完了しました! IronXLはダウンロードされ、インストールされ、使用する準備が整いました。 しかし、その前に CsvHelper をインストールする必要があります。

3. CSVWriterインストール

3.1. NuGet パッケージ マネージャー コンソールを使用する

CSVWriterを使用するには、CsvHelper C#ライブラリをダウンロードしてインストールする必要があります。 次の手順を使用して、NuGet パッケージ を Developer Command Prompt からインストールします。

  • Developer Command Prompt を開きます。通常、Visual Studio フォルダーにあります。
  • 以下のコマンドを入力してください:PM> Install-Package CsvHelper -Version 27.2.1
  • Enterキーを押してください
  • これはパッケージをダウンロードしてインストールします。
  • Visual Studio プロジェクトを再読み込みして、使用を開始してください。
  • 実装の詳細については、CsvHelper.CsvWriter メソッドを確認してください。

3.2. 直接ダウンロード

NuGetウェブサイトからダウンロードしてください。 https://www.nuget.org/packages/CsvHelper/

CSVファイルの使用方法 - IronXL

***カンマ区切り値 (CSV

(注:CSV は日本語でも同じ略語が使用されるため、そのまま保持します。))ファイルは、値を区切るためにコンマを使用した区切りテキストファイルです。 ファイルの各行はデータレコードです。 これらのファイルを計算のために操作することは挑戦的な作業ですが、IronXLはこれを達成するための非常に優れた簡単なオプションを提供しており、Microsoft Excelを使用せずにすみます。 まず、CSVファイルを通常のExcelファイルに変換しましょう。

CSVファイルをExcel形式に変換

そのプロセスは非常にシンプルで簡単です。 通常は1行のコードで行われます。

CSVからExcel形式へ:

WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;
 
workbook.SaveAs("CsvToExcelConversion.xlsx");
WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;
 
workbook.SaveAs("CsvToExcelConversion.xlsx");
Dim workbook As WorkBook = WorkBook.LoadCSV("test.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")
Dim ws As WorkSheet = workbook.DefaultWorkSheet
'
workbook.SaveAs("CsvToExcelConversion.xlsx")
VB   C#

4.2. IronXLを使用して変換されたCSVファイルを読み取り操作する

IronXL WorkBookクラスはExcelシートを表します。 ExcelファイルをC#で開くには、WorkBook.Loadを使用してExcelファイルのパスを指定します。 (.xlsx). 次の一行のコードは、ファイルを読み取るために使用されます:

//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")
VB   C#

各ワークブックには複数のワークシートオブジェクトを含めることができます。 これらはExcelドキュメント内のワークシートを表しています。 ワークブックにワークシートが含まれている場合、次のように名前で取得します:

//Open Sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
//Open Sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
'Open Sheet for reading
Dim worksheet = workbook.GetWorkSheet("sheetnamegoeshere")
VB   C#

セル値を読み取るコード:

// 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
VB   C#

ブックとワークシートを読み込んだ後、以下のコードサンプルを使用して、数式を変更したり、特定のセルに適用したりすることができます。 コードは次のようになります:

// Set Formulas
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
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
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()
VB   C#

4.3. ExcelドキュメントをCSVファイルに保存する

IronXLを使用すると、CSVファイルの作成は簡単です。 次のコードは、SaveAsCsvメソッドを使用してExcelファイルをCSV形式で単純に保存します。

WorkBook wb = WorkBook.Load("Normal_Excel_File.xlsx");
//Import .xls, .csv, or .tsv file
wb.SaveAsCsv("SaveAsCSV.csv", ",");
//Saved as : SaveAsCSV.Sheet1.csv
WorkBook wb = WorkBook.Load("Normal_Excel_File.xlsx");
//Import .xls, .csv, or .tsv file
wb.SaveAsCsv("SaveAsCSV.csv", ",");
//Saved as : SaveAsCSV.Sheet1.csv
Dim wb As WorkBook = WorkBook.Load("Normal_Excel_File.xlsx")
'Import .xls, .csv, or .tsv file
wb.SaveAsCsv("SaveAsCSV.csv", ",")
'Saved as : SaveAsCSV.Sheet1.csv
VB   C#

CSVWriterを使用したCSVデータの処理

データをCSVファイルに書き込むことは一般的な操作です。 提供されたセパレーターを使用したCSVHelperメソッドCSVWriterでは、すべての文字と改行文字を非常に簡単に処理できる、C#向けにリリースされた非常にシンプルなCSVライターです。 ここでは、CSVWriterを使用してデータを書き込む方法を見ていきます。

シンプルなコンソールアプリケーションを作成する

Visual Studio を使用して、指定されたセパレーターを用いるシンプルな CSVWriter コンソールアプリケーションを作成します。 プロジェクトを作成したら、次のステップはPersonクラスを作成することです。

public class Person
{
    public int Id { get; set; }
    public string Name { get; set; }
    public bool IsLiving { get; set; }
}
public class Person
{
    public int Id { get; set; }
    public string Name { get; set; }
    public bool IsLiving { get; set; }
}
Public Class Person
	Public Property Id() As Integer
	Public Property Name() As String
	Public Property IsLiving() As Boolean
End Class
VB   C#

Mainメソッド内で、CSVファイルに書き込むPersonオブジェクトのリストを作成しましょう:

var myPersonObjects = new List<Person>()
{
    new Person { Id = 1, IsLiving = true, Name = "John" },
    new Person { Id = 2, IsLiving = true, Name = "Steve" },
    new Person { Id = 3, IsLiving = true, Name = "James" }
};
var myPersonObjects = new List<Person>()
{
    new Person { Id = 1, IsLiving = true, Name = "John" },
    new Person { Id = 2, IsLiving = true, Name = "Steve" },
    new Person { Id = 3, IsLiving = true, Name = "James" }
};
Dim myPersonObjects = New List(Of Person)() From {
	New Person With {
		.Id = 1,
		.IsLiving = True,
		.Name = "John"
	},
	New Person With {
		.Id = 2,
		.IsLiving = True,
		.Name = "Steve"
	},
	New Person With {
		.Id = 3,
		.IsLiving = True,
		.Name = "James"
	}
}
VB   C#

5.2. デフォルト設定でC#でCSVファイルに書き込む

CsvHelperは、CSVWriterメソッドを使用してC#でCSVを書く標準的な方法として登場しており、非常に使いやすいです。

using (var writer = new StreamWriter("filePersons.csv"))
using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
{
    csv.WriteRecords(myPersonObjects);
}
using (var writer = new StreamWriter("filePersons.csv"))
using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
{
    csv.WriteRecords(myPersonObjects);
}
Using writer = New StreamWriter("filePersons.csv")
Using csv = New CsvWriter(writer, CultureInfo.InvariantCulture)
	csv.WriteRecords(myPersonObjects)
End Using
End Using
VB   C#

データの追加

プログラムを実行するたびに古いCSVファイルが上書きされるという事実を忘れないようにする必要があります。 時々、既存のデータを上書きするのではなく、ファイルの末尾にデータを追記したいことがあります。 CSVWriterはこれを行う方法を提供していません。ファイルのオープンや書き込みは、提供された区切り文字を使用するCSVWriterの責任ではないためです。 私たちはFileStreamを使用し、それからそのFileStreamを使用してStreamWriterを構築することでこれを実現できます。 この記事の範囲外ではありますが、アプリケーションの重要な部分であるため、その方法をお見せします。

var configPersons = new CsvConfiguration(CultureInfo.InvariantCulture)
{
    HasHeaderRecord = false
};
using (var stream = File.Open("filePersons.csv", FileMode.Append))
using (var writer = new StreamWriter(stream))
using (var csv = new CsvWriter(writer, configPersons))
{
    csv.WriteRecords(myPersonObjects);
}
var configPersons = new CsvConfiguration(CultureInfo.InvariantCulture)
{
    HasHeaderRecord = false
};
using (var stream = File.Open("filePersons.csv", FileMode.Append))
using (var writer = new StreamWriter(stream))
using (var csv = new CsvWriter(writer, configPersons))
{
    csv.WriteRecords(myPersonObjects);
}
Dim configPersons = New CsvConfiguration(CultureInfo.InvariantCulture) With {.HasHeaderRecord = False}
Using stream = File.Open("filePersons.csv", FileMode.Append)
Using writer = New StreamWriter(stream)
Using csv = New CsvWriter(writer, configPersons)
	csv.WriteRecords(myPersonObjects)
End Using
End Using
End Using
VB   C#

既存のファイルに追加するのは難しいですが、追加すると順序が変更される可能性があるため、または新しいプロパティを追加する可能性があるためです。 結合する際にはこれを考慮に入れることを確認する必要があります。

6. ライセンス

IronXLはオープンに商業的です C# エクセル ライブラリ. 開発には無料で使用でき、商業展開のために常にライセンスすることができます。ライセンスが利用可能ですシングルプロジェクトの使用、単一の開発者、代理店、グローバル企業、ならびにSaaSおよびOEM再配布向け。 すべてのライセンスには、30日間の返金保証、1年間の製品サポートおよび更新、開発/ステージング/本番環境での有効性、そして永久ライセンスが含まれています。 (一回限りの購入). Liteパッケージは $599から始まります。

セパレータが指定されているCSVWriterは、カンマ区切りの要素であり、商業用途でも完全に無料で使用可能です。

要約と結論

サマリー

IronXL は、Excel ファイルを操作するために必要なすべてを提供する完全なライブラリです。さまざまな形式を XLSX に変換したり、XLSX から CSV などの他の形式に変換したりする機能を提供します。この相互変換により、ユーザーは他のファイル形式を簡単に操作する柔軟性が得られます。

一方、CSVWriterはCSVファイル形式でのみ動作し、非常に限られたオプションしかありません。 ユーザーは異なるファイル形式を切り替えることができませんが、IronXLを使用すれば切り替えることができます。 すべてのコードサンプルは、CsvHelperのドキュメントファイルにあります。 このドキュメントは、プロジェクトでCSVWriterを使用するためのガイドラインを提供します。

結論

IronXLにはCSVHelper.CSVWriterと比べて明確な優位性があり、複数の形式に対応しています。 さらに、お好みに合わせて数式やスタイルを適用することができますが、CsvHelperはCSVファイルの読み書きしか許可しておらず、オプションも限られています。 さらに、既存のCSVファイルに新しいレコードを追加することはできません。既存のエントリが上書きされるだけです。

< 以前
IronXLとSpire XLSの比較
次へ >
IronXLとCsvHelperの比較

準備はできましたか? バージョン: 2024.9 新発売

無料のNuGetダウンロード 総ダウンロード数: 977,734 View Licenses >