フッターコンテンツにスキップ
他のコンポーネントと比較する

IronXLとSyncfusion Excelの比較

Excelをプログラムで操作することは、開発者にとって難しいかもしれません。 Microsoft Excelファイルを編集しようとすると、いくつかの問題が発生します。 主な問題は、ユーザーインターフェースの難しさとドキュメントの欠如であり、Excelファイルを扱うことが難しくなっています。しかし、幸いにも、熟練したプログラマーによって書かれたExcelライブラリがあります。 これらのライブラリは、Microsoft Excelファイルのデータ編集を支援します。 ここでは、2つのExcel C#ライブラリについて説明します:

  • IronXL: C# Excelライブラリ
  • Syncfusion Excelフレームワーク

それでは、これらのライブラリの比較を始めましょう。

IronXL: C# Excelライブラリ

IronXLは、Excelドキュメントをプログラムで操作するために使用される、Iron Softwareによって開発されたC#コードの.NET Excelライブラリです。 IronXLは.NETフレームワーク上に書かれており、通常はMicrosoft Excelを必要とするアプリケーションを開発するプロセスを簡素化します。

IronXLは、Excelワークブックからデータを読み書きするためのクラス、メソッド、およびプロパティのセットをプログラマに提供し、ワークブックオブジェクトを操作し、外部データソースにアクセスし、およびExcelワークブックにデータを読み込みます

IronXLの機能を見てみましょう。

IronXLの機能

IronXLの機能には、他のライブラリと際立った違いがあります。

データの読み込み、読み取り、編集

IronXLを使用すると、XLS、XLSX、XLST、XLSM、CSV、およびTSVなどのスプレッドシートドキュメントからデータを読み込み、読み取り、編集できます。IronXLは、これらのスプレッドシートドキュメントを作成、読み取り、編集するための非常にシンプルで覚えやすい関数を提供します。 ドキュメントを完全に制御できます。

チャートの作成

IronXLには、カスタマイズされたチャートを作成するためのさまざまな関数があります。 APIのドキュメントも充実しています。

保存とエクスポート

IronXLは、複数の形式でのドキュメントの保存とエクスポートに優れています。 IronXLは、ExcelファイルをXLS、XLSX、XLST、XLSM、CSV、TSV、およびJSONファイル形式にエクスポートまたは変換する機能を提供します。

数式の取り扱い

IronXLは、Excelファイルの数式の操作をサポートしています。 任意の数式を作成し、必要に応じて任意のセルに適用できます。 IronXLには、数式を扱うのに役立つ優れたシンプルな機能があります。

セルデータの形式

Excelユーザーはしばしば、Excelのセルでフォーマットを使用する必要があります。 IronXLは高度な条件付き書式設定の機能をサポートしています。 IronXLは、簡単で使いやすい機能を使用してセルデータをフォーマットするのに役立ちます。 IronXLはMicrosoft Excelがサポートするすべての形式をサポートしています。 これらの形式でデータをフォーマットできます:

  • テキスト
  • 数字
  • 数式
  • 日付
  • 通貨
  • パーセンテージ
  • 科学的
  • 時間
  • カスタム形式

セルスタイリング

セルスタイリングは、重要なデータを区別するのに役立つMicrosoft Excelの重要な機能です。 非常に便利で、IronXLもこの機能をサポートしています。 IronXLの関数を使用してフォントスタイル、フォントサイズ、背景パターン境界線、位置合わせを変更できます。

Syncfusion Excel

Syncfusionライブラリは、Microsoft Excel (XLS)ファイルの読み書きと操作のためのAPIを提供します。 Syncfusionライブラリは、Microsoft Excel (XLS)ファイルを読み書きおよび操作するためのアプリケーションを開発者が作成できるC#ライブラリです。 カスタマイズされたデータインポートもサポートしています。 C#プログラミング言語をサポートするすべてのオペレーティングシステムと互換性があります。

Syncfusion Excelの機能

Syncfusion Excelライブラリの機能を見てみましょう:

これらのライブラリがどのように動作するかを見てみましょう。 さまざまな機能を確認するためには、まずC#プロジェクトを作成する必要があります。それでは始めましょう。

1. C#プロジェクトの作成

このチュートリアルでは、Visual Studio 2019バージョン(最新バージョンを推奨)とC#プログラミング言語を使用してプロジェクトを構築します。

  • Visual Studio 2019を開きます。
  • "作成"をクリックして新しいプロジェクトを作成します。
  • テンプレートからC#コンソールアプリケーションを選択し、"次へ"ボタンをクリックします。

コンソールアプリケーション コンソールアプリケーション

  • プロジェクトに名前を付けて、"次へ"ボタンをクリックします。

プロジェクト構成 プロジェクト構成

  • .NETターゲットフレームワークを3.1以上に選択します。3.1はすべてのデバイスでサポートされており動作します。.NETフレームワークの最新かつ最も安定したバージョンは5.0です。"作成"ボタンをクリックします。 これにより、C#コンソールアプリケーションが作成されます。

.NETターゲットフレームワーク .NETターゲットフレームワーク

既存のC#プロジェクトも使用できます。 プロジェクトを開いてライブラリをインストールするだけです。 次のセクションでExcelライブラリをインストールする方法を見ていきます。

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

IronXLライブラリをダウンロードしてインストールする方法はいくつかあります。 以下の方法があります:

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

2.1 パッケージマネージャコンソール

パッケージマネージャコンソールを使用してIronXLライブラリをインストールできます。 インストール方法は以下のとおりです:

  • パッケージマネージャコンソールを開きます。 通常、Visual Studioの下部にあります。

パッケージマネージャコンソール パッケージマネージャコンソール

  • 次のコマンドを入力し、Enterキーを押します。

    Install-Package IronXL
    Install-Package IronXL
    SHELL
  • IronXLライブラリのインストールが開始されます。

IronXLインストール IronXLインストール

  • インストールが完了したら、プロジェクトで使用できます。

2.2 NuGetパッケージマネージャを使用してインストール

NuGetパッケージマネージャから直接IronXLライブラリをインストールできます。 IronXLをインストールする手順は以下のとおりです:

  • メニューバーからツールをクリックし、NuGetパッケージマネージャにカーソルを置きます。

NuGetパッケージマネージャ NuGetパッケージマネージャ

  • "ソリューションのNuGetパッケージを管理"を選択します。 _ブラウズ_をクリックし、検索バーにIronXLと入力します。 検索結果にIronXLライブラリが表示されます。

NuGetパッケージの管理 NuGetパッケージの管理

  • IronXL.Excelをクリックし、_インストール_ボタンをクリックします。 ライブラリが自動的にインストールされます。

3. Syncfusion Excelライブラリのインストール

Syncfusion Excelライブラリは、パッケージマネージャコンソールを使用してインストールできます。 IronXLとは異なり、Windowsフォーム、WPF、ASP.NET、UWP、その他のプロジェクトなど、異なるプロジェクトごとに各ライブラリを別々にインストールする必要があります。 異なるプラットフォームのために異なるコマンドを書く必要があります。

3.1 パッケージマネージャコンソールを使用したインストール

Syncfusion Excelライブラリをインストールする手順は以下のとおりです:

  • パッケージマネージャコンソールに移動します。
  • Syncfusion Excelライブラリをインストールするために次のコマンドを書いてください:

    Install-Package Syncfusion.XlsIO.WinForms
    Install-Package Syncfusion.XlsIO.WinForms
    SHELL
  • WPFプロジェクトで作業している場合は、次のコマンドを書いてください:

    Install-package Syncfusion.XlsIO.Wpf
    Install-package Syncfusion.XlsIO.Wpf
    SHELL
  • ライブラリのインストールが開始されます。 インストールが完了したら、簡単にプロジェクトでSyncfusion Excelフレームワークを使用できます。

4. Excelドキュメントの読み取り

Excelドキュメントを読み取ることは、任意のExcelライブラリの主要な機能です。 IronXLとSyncfusion Excelフレームワークを使用してExcelファイルをどのように読み取ることができるかを見てみましょう。

4.1 IronXL

IronXLは、Microsoft.Office.Interop.Excelを使用せずにExcelドキュメントを読み取ることを可能にします。 IronXLを使用する前に、重要なステップがあります - 常にIronXLをプログラムファイルにインポートします。したがって、最初に次のコード行を書く必要があります:

using IronXL;
using System.Linq;
using IronXL;
using System.Linq;
Imports IronXL
Imports System.Linq
$vbLabelText   $csharpLabel

次に、コアプログラミングの知識として複数のコード行を書くことなくExcelファイルを読み取り、編集するための次のコード行を書いてください。

// Supported spreadsheet formats for reading include: XLSX, XLS, CSV, and TSV
WorkBook workbook = WorkBook.Load("data.xlsx");
WorkSheet sheet = workbook.WorkSheets.First();

// Select cells easily in Excel notation and return the calculated value, date, text, or formula
int cellValue = sheet["A2"].IntValue;

// Read from Ranges of cells elegantly.
foreach (var cell in sheet["A2:B10"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
// Supported spreadsheet formats for reading include: XLSX, XLS, CSV, and TSV
WorkBook workbook = WorkBook.Load("data.xlsx");
WorkSheet sheet = workbook.WorkSheets.First();

// Select cells easily in Excel notation and return the calculated value, date, text, or formula
int cellValue = sheet["A2"].IntValue;

// Read from Ranges of cells elegantly.
foreach (var cell in sheet["A2:B10"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
' Supported spreadsheet formats for reading include: XLSX, XLS, CSV, and TSV
Dim workbook As WorkBook = WorkBook.Load("data.xlsx")
Dim sheet As WorkSheet = workbook.WorkSheets.First()

' Select cells easily in Excel notation and return the calculated value, date, text, or formula
Dim cellValue As Integer = sheet("A2").IntValue

' Read from Ranges of cells elegantly.
For Each cell In sheet("A2:B10")
	Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text)
Next cell
$vbLabelText   $csharpLabel

WorkBook.Load関数は、ワークブックを簡単にロードするのに役立ちます。 上記のコードでは、セルの値もコンソールに印刷して表示しています。

4.2 Syncfusion Excel

Syncfusion Excelフレームワークを使用して既存のExcelファイルを読み取り、編集する方法を見てみましょう。 まず、Syncfusion Excelフレームワークを使用するために、プロジェクトにSyncfusionをインポートする必要があります。 これを行うには、コードファイルの上部に次のコード行を追加する必要があります:

using Syncfusion.XlsIO;
using System.Drawing;
using Syncfusion.XlsIO;
using System.Drawing;
Imports Syncfusion.XlsIO
Imports System.Drawing
$vbLabelText   $csharpLabel

次に、Syncfusion Excelフレームワークを使用してExcelファイルを読み取りアクセスするためにプロジェクトに次のコード行を追加してください。

// Create an instance of new ExcelEngine
using (ExcelEngine excelEngine = new ExcelEngine())
{
    // Instantiate the Excel application object
    IApplication application = excelEngine.Excel;
    // Set the Excel engine application version
    application.DefaultVersion = ExcelVersion.Excel2016;

    // Load the existing Excel workbook
    IWorkbook workbook = application.Workbooks.Open("Sample.xlsx");

    // Get the first worksheet
    IWorksheet worksheet = workbook.Worksheets[0];

    // Assign some text in a cell
    worksheet.Range["A3"].Text = "Hello World";

    // Save the Excel document
    workbook.SaveAs("Output.xlsx");
}
// Create an instance of new ExcelEngine
using (ExcelEngine excelEngine = new ExcelEngine())
{
    // Instantiate the Excel application object
    IApplication application = excelEngine.Excel;
    // Set the Excel engine application version
    application.DefaultVersion = ExcelVersion.Excel2016;

    // Load the existing Excel workbook
    IWorkbook workbook = application.Workbooks.Open("Sample.xlsx");

    // Get the first worksheet
    IWorksheet worksheet = workbook.Worksheets[0];

    // Assign some text in a cell
    worksheet.Range["A3"].Text = "Hello World";

    // Save the Excel document
    workbook.SaveAs("Output.xlsx");
}
' Create an instance of new ExcelEngine
Using excelEngine As New ExcelEngine()
	' Instantiate the Excel application object
	Dim application As IApplication = excelEngine.Excel
	' Set the Excel engine application version
	application.DefaultVersion = ExcelVersion.Excel2016

	' Load the existing Excel workbook
	Dim workbook As IWorkbook = application.Workbooks.Open("Sample.xlsx")

	' Get the first worksheet
	Dim worksheet As IWorksheet = workbook.Worksheets(0)

	' Assign some text in a cell
	worksheet.Range("A3").Text = "Hello World"

	' Save the Excel document
	workbook.SaveAs("Output.xlsx")
End Using
$vbLabelText   $csharpLabel

Syncfusion ExcelでExcelファイルを読み取るためには、最初にExcelバージョンを定義する必要があります。その後、ファイルを開いて編集することができます。 変更されたファイルを保存するためには、変更されたファイルの内容の種類を再度Excelバージョンに従って定義する必要があります。 IronXLはこの場合非常に理解しやすくて使いやすいです。なぜならExcelバージョンを定義する必要がなく、IronXLには小さくて覚えやすいパラメータを持つ関数があるからです。

5. 新しいExcelドキュメントの作成

次に、新しいExcelドキュメントを作成し、作成したドキュメントに値を埋め込む方法を比較します。 まず、IronXLでどのようにドキュメントを作成できるか見てみましょう。

5.1 IronXL

IronXLでは、サーバーにExcelがインストールさせる必要はありませんし、Interopも必要ありません。IronXLは、Microsoft.Office.Interop.Excelよりも迅速で直感的なAPIを提供します。 すでにわかっているように、まずIronXLライブラリをインポートし、その後Excelファイルを作成するコードを書きます。 IronXLでExcelファイルを作成するために使用される次のコード。

using IronXL;
// Create a new Excel WorkBook document. 
WorkBook xlsxWorkbook = WorkBook.Create(ExcelFileFormat.XLSX);
xlsxWorkbook.Metadata.Author = "IronXL";

// Add a blank WorkSheet
WorkSheet xlsSheet = xlsxWorkbook.CreateWorkSheet("main_sheet");

// Add data and styles to the new worksheet
xlsSheet["A1"].Value = "Hello World";
xlsSheet["A2"].Style.BottomBorder.SetColor("#ff6600");
xlsSheet["A2"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Double;

// Save the Excel file
xlsxWorkbook.SaveAs("NewExcelFile.xlsx");
using IronXL;
// Create a new Excel WorkBook document. 
WorkBook xlsxWorkbook = WorkBook.Create(ExcelFileFormat.XLSX);
xlsxWorkbook.Metadata.Author = "IronXL";

// Add a blank WorkSheet
WorkSheet xlsSheet = xlsxWorkbook.CreateWorkSheet("main_sheet");

// Add data and styles to the new worksheet
xlsSheet["A1"].Value = "Hello World";
xlsSheet["A2"].Style.BottomBorder.SetColor("#ff6600");
xlsSheet["A2"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Double;

// Save the Excel file
xlsxWorkbook.SaveAs("NewExcelFile.xlsx");
Imports IronXL
' Create a new Excel WorkBook document. 
Private xlsxWorkbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
xlsxWorkbook.Metadata.Author = "IronXL"

' Add a blank WorkSheet
Dim xlsSheet As WorkSheet = xlsxWorkbook.CreateWorkSheet("main_sheet")

' Add data and styles to the new worksheet
xlsSheet("A1").Value = "Hello World"
xlsSheet("A2").Style.BottomBorder.SetColor("#ff6600")
xlsSheet("A2").Style.BottomBorder.Type = IronXL.Styles.BorderType.Double

' Save the Excel file
xlsxWorkbook.SaveAs("NewExcelFile.xlsx")
$vbLabelText   $csharpLabel

Output:

IronXL出力 IronXL 出力

Excelファイルのメタデータを設定できます。 セルの値を設定し、シンプルで使いやすい機能を使ってセルをフォーマットするのはとても簡単です。 Style.BottomBorder.SetColor関数を使用して、セルの下のボーダーの色を設定します。

5.2 Syncfusion Excel

Syncfusion Excelを使用して新しいExcelファイルを作成して保存する方法を示す次のコードです。 以下のコードを追加し、必要な名前空間を含めます:

using Syncfusion.XlsIO;
using Syncfusion.XlsIO;
Imports Syncfusion.XlsIO
$vbLabelText   $csharpLabel

次に、次のコード行を追加してください:

// New instance of ExcelEngine is created equivalent to launching Microsoft Excel with no workbooks open
// Instantiate the spreadsheet creation engine
using (ExcelEngine excelEngine = new ExcelEngine())
{
  // Instantiate the Excel application object
  IApplication application = excelEngine.Excel;

  // Assigns default application version
  application.DefaultVersion = ExcelVersion.Excel2013;

  // Create a workbook with 1 worksheet
  IWorkbook workbook = application.Workbooks.Create(1);

  // Access first worksheet from the workbook
  IWorksheet worksheet = workbook.Worksheets[0];

  // Adding text to a cell
  worksheet.Range["A1"].Text = "Hello World";

  // Saving the workbook to disk in XLSX format
  workbook.SaveAs("Sample.xlsx");
}
// New instance of ExcelEngine is created equivalent to launching Microsoft Excel with no workbooks open
// Instantiate the spreadsheet creation engine
using (ExcelEngine excelEngine = new ExcelEngine())
{
  // Instantiate the Excel application object
  IApplication application = excelEngine.Excel;

  // Assigns default application version
  application.DefaultVersion = ExcelVersion.Excel2013;

  // Create a workbook with 1 worksheet
  IWorkbook workbook = application.Workbooks.Create(1);

  // Access first worksheet from the workbook
  IWorksheet worksheet = workbook.Worksheets[0];

  // Adding text to a cell
  worksheet.Range["A1"].Text = "Hello World";

  // Saving the workbook to disk in XLSX format
  workbook.SaveAs("Sample.xlsx");
}
' New instance of ExcelEngine is created equivalent to launching Microsoft Excel with no workbooks open
' Instantiate the spreadsheet creation engine
Using excelEngine As New ExcelEngine()
  ' Instantiate the Excel application object
  Dim application As IApplication = excelEngine.Excel

  ' Assigns default application version
  application.DefaultVersion = ExcelVersion.Excel2013

  ' Create a workbook with 1 worksheet
  Dim workbook As IWorkbook = application.Workbooks.Create(1)

  ' Access first worksheet from the workbook
  Dim worksheet As IWorksheet = workbook.Worksheets(0)

  ' Adding text to a cell
  worksheet.Range("A1").Text = "Hello World"

  ' Saving the workbook to disk in XLSX format
  workbook.SaveAs("Sample.xlsx")
End Using
$vbLabelText   $csharpLabel

上記のコードでは、新しいIWorkbookオブジェクトが作成され、ワークブック内にWorkbooks.Create()関数を使用してワークシートが作成されます。 Excelワークシートの"cells"プロパティを介してセルにアクセスし、SaveAs() 関数を使用してファイルを最終的に保存します。

6. Excelファイルのエクスポート

次に、Excelファイルを他のデータ形式にエクスポートする方法を見てみます。 これはExcelライブラリの重要な機能です。なぜなら、異なる種類の処理のために異なる形式でデータが必要なことがあるためであり、そのために簡単で簡単なソリューションを提供するライブラリをチェックします。

6.1 IronXL

IronXLを使用すると、わずか1行のコードでExcelファイルを変換できます。 IronXLは、ExcelデータをCSV、JSON、XML、XLSX、XLS、などにエクスポートできます。

次のコードを使用して、IronXLを使用してExcelファイルを異なる形式に変換するのに役立ちます。

// Export to many formats with fluent saving
xlsxWorkbook.SaveAs("NewExcelFile.xls");
xlsxWorkbook.SaveAs("NewExcelFile.xlsx");
xlsxWorkbook.SaveAsCsv("NewExcelFile.csv");
xlsxWorkbook.SaveAsJson("NewExcelFile.json");
xlsxWorkbook.SaveAsXml("NewExcelFile.xml");
// Export to many formats with fluent saving
xlsxWorkbook.SaveAs("NewExcelFile.xls");
xlsxWorkbook.SaveAs("NewExcelFile.xlsx");
xlsxWorkbook.SaveAsCsv("NewExcelFile.csv");
xlsxWorkbook.SaveAsJson("NewExcelFile.json");
xlsxWorkbook.SaveAsXml("NewExcelFile.xml");
' Export to many formats with fluent saving
xlsxWorkbook.SaveAs("NewExcelFile.xls")
xlsxWorkbook.SaveAs("NewExcelFile.xlsx")
xlsxWorkbook.SaveAsCsv("NewExcelFile.csv")
xlsxWorkbook.SaveAsJson("NewExcelFile.json")
xlsxWorkbook.SaveAsXml("NewExcelFile.xml")
$vbLabelText   $csharpLabel

上記のコードでは、Excelファイルをわずか1行のコードで非常に簡単にエクスポートできることがわかります。 しかし、最初にExcelファイルを開くか作成する必要があります。すでに上記でIronXLを使用してExcelファイルを開く方法と作成する方法を見ました。

6.2 Syncfusion Excel

Syncfusion Excelフレームワークは、ExcelファイルをPDFおよびJSON形式に変換できます。 余分なライブラリをインストールしなくても、ExcelファイルをJSON形式に変換できます。 ここに、開かれたExcelファイルをJSONファイルに変換する方法のコードがあります。

// Saves the workbook to a JSON file, as schema by default
workbook.SaveAsJson("Excel-Workbook-To-JSON-as-schema-default.json");

// Saves the workbook to a JSON file as schema
workbook.SaveAsJson("Excel-Workbook-To-JSON-as-schema.json", true);
// Saves the workbook to a JSON file, as schema by default
workbook.SaveAsJson("Excel-Workbook-To-JSON-as-schema-default.json");

// Saves the workbook to a JSON file as schema
workbook.SaveAsJson("Excel-Workbook-To-JSON-as-schema.json", true);
' Saves the workbook to a JSON file, as schema by default
workbook.SaveAsJson("Excel-Workbook-To-JSON-as-schema-default.json")

' Saves the workbook to a JSON file as schema
workbook.SaveAsJson("Excel-Workbook-To-JSON-as-schema.json", True)
$vbLabelText   $csharpLabel

一般的なExcelドキュメントをPDFファイルに変換するには、変換をサポートする追加のライブラリをインストールする必要があります。 Excel-to-ODSは、ExcelファイルをODS形式で保存し、OpenOfficeやGoogle Sheetsなどのさまざまなアプリケーションで使用します。 Excel-to-HTMLは、ExcelワークブックまたはワークシートをHTMLファイルとして動的にレンダリングします。

7. Excelファイルの保護

保護は、Microsoft Excelの最も重要な機能です。 誰がファイルを編集し、開くことができるかを制御します。 パスワード保護されたExcelファイルは、重要なデータを保存する可能性があるため重要です。 Excelライブラリを使用してExcelファイルを保護する方法を見てみましょう。

7.1 IronXL

IronXLを使用すると、1行のコードでExcelファイルを保護できます。 次のコードは、Excelファイルを開き、保護する方法を示しています。

using IronXL;

WorkBook workbook = WorkBook.Load("test.xlsx");
WorkSheet worksheet = workbook.DefaultWorkSheet;

// Protect the worksheet by setting the password to it
// Users will then need to know this password to edit the password-protected Excel file's worksheet in Excel.
worksheet.ProtectSheet("password");
workbook.Save();

// Unprotect the worksheet and remove any password locks 
// It works even if you do not know the password!
worksheet.UnprotectSheet();
workbook.Save();
using IronXL;

WorkBook workbook = WorkBook.Load("test.xlsx");
WorkSheet worksheet = workbook.DefaultWorkSheet;

// Protect the worksheet by setting the password to it
// Users will then need to know this password to edit the password-protected Excel file's worksheet in Excel.
worksheet.ProtectSheet("password");
workbook.Save();

// Unprotect the worksheet and remove any password locks 
// It works even if you do not know the password!
worksheet.UnprotectSheet();
workbook.Save();
Imports IronXL

Private workbook As WorkBook = WorkBook.Load("test.xlsx")
Private worksheet As WorkSheet = workbook.DefaultWorkSheet

' Protect the worksheet by setting the password to it
' Users will then need to know this password to edit the password-protected Excel file's worksheet in Excel.
worksheet.ProtectSheet("password")
workbook.Save()

' Unprotect the worksheet and remove any password locks 
' It works even if you do not know the password!
worksheet.UnprotectSheet()
workbook.Save()
$vbLabelText   $csharpLabel

ProtectSheet()関数は、ユーザーがExcelファイルを暗号化できるようにします。圧縮を解除するには、UnprotectSheet()関数をExcelファイルの読み込み後に使用できます。この関数は、パスワードを知らなくてもすべてのパスワードを削除します。

7.2 Syncfusion Excel

Syncfusion Excelフレームワークを使用してExcelファイルを保護できます。 次のコードは、Excelファイルを作成し、保護する方法を示しています。

private void ProtectWorkbook()
{
    using (ExcelEngine excelEngine = new ExcelEngine())
    {
        // Instantiate the application object
        IApplication application = excelEngine.Excel;

        // Create a workbook
        IWorkbook workbook = application.Workbooks.Create(1);

        // Protect the workbook specifying a password with Boolean attributes for structure and windows protection
        bool isProtectWindow = true;
        bool isProtectContent = true;
        workbook.Protect(isProtectWindow, isProtectContent, "password");

        // Save the Excel file
        workbook.SaveAs(@"d:\test\XlsIOOutput_ProtectedWorkbook.xlsx");
    }
}
private void ProtectWorkbook()
{
    using (ExcelEngine excelEngine = new ExcelEngine())
    {
        // Instantiate the application object
        IApplication application = excelEngine.Excel;

        // Create a workbook
        IWorkbook workbook = application.Workbooks.Create(1);

        // Protect the workbook specifying a password with Boolean attributes for structure and windows protection
        bool isProtectWindow = true;
        bool isProtectContent = true;
        workbook.Protect(isProtectWindow, isProtectContent, "password");

        // Save the Excel file
        workbook.SaveAs(@"d:\test\XlsIOOutput_ProtectedWorkbook.xlsx");
    }
}
Private Sub ProtectWorkbook()
	Using excelEngine As New ExcelEngine()
		' Instantiate the application object
		Dim application As IApplication = excelEngine.Excel

		' Create a workbook
		Dim workbook As IWorkbook = application.Workbooks.Create(1)

		' Protect the workbook specifying a password with Boolean attributes for structure and windows protection
		Dim isProtectWindow As Boolean = True
		Dim isProtectContent As Boolean = True
		workbook.Protect(isProtectWindow, isProtectContent, "password")

		' Save the Excel file
		workbook.SaveAs("d:\test\XlsIOOutput_ProtectedWorkbook.xlsx")
	End Using
End Sub
$vbLabelText   $csharpLabel

Protect()関数を使用してExcelファイルを暗号化する際に、シートだけを保護したい場合や、Excelファイルのコンテンツも保護する必要がある場合、3つのパラメータを関数に渡す必要があります。3番目のパラメータは、設定したいパスワードです。

8. ライセンス

8.1 IronXL

IronXLは開発に完全に無料です。 開発のためにあらゆる面を試すことができます。 しかし、無料開発版には透かしがあります。 プロダクションでも無料で試すことができます。 無料トライアルを生産に対して、支払いなしでアクティベートできます。 IronXLを購入することを選択した場合、価格プランは次のとおりです:

ライトエディション

IronXLをプロジェクトで使用したい独立した開発者の方は、ライトエディションを選択できます。 これはあなたのための最良のオプションとなるでしょう。

IronXL Lite IronXL Light

プロフェッショナルエディション

プロフェッショナルエディションは、世界中に支社を持つ企業に最適です。 このエディションは、一度に10の場所、10の開発者、および10のプロジェクトをサポートします。

IronXL Professional IronXL Professional

Unlimitedエディション

この価格プランは無制限の開発者、無制限の場所、および一度の支払いで生涯にわたって無制限のプロジェクトをサポートします。 多くのプロジェクトでIronXLを使用したい場合に最適なオプションです。

IronXL Unlimited IronXL Unlimited

IronXLはまた、ロイヤリティ配布をサポートし、製品サポートと更新も提供します。

ロイヤリティ配布 ロイヤリティ配布

IronXLのライセンスページには、価格と使用権に関する詳細が含まれています。

8.2 Syncfusion Excelライブラリ

Syncfusion Excelライブラリも無料のトライアル版を提供しています。 Syncfusion Excelを購入したい場合、最大5人の開発者のチームに$395で購入できます。 Syncfusionは、10人以上の開発者のチーム、および単一のプロジェクトまたは会社全体での使用のための特殊な無制限ライセンスの追加ライセンスを提供しています。

Syncfusion Syncfusion

9. 結論

両方のライブラリは効果的な機能を提供します。 しかし、より大きな視点で見ると、IronXLはより便利で使いやすいです。 覚えやすく小さな関数があります。 IronXLの助けを借りて、一行コードでたくさんの編集やフォーマットを行うことができます。 コードの流れは複雑ですが、初心者でも非常に簡単に理解できます。 IronXLの働きを理解するためには知識が必要ありません。 異なるプラットフォーム用に個別のライブラリをインストールする必要はありません。 一度インストールすれば、すべてのアクションで準備完了です。

Syncfusion Excelは、上記で見たように多くの機能があります。 Syncfusion Excelを使用して、多くのフォーマットと変換を行うことができます。 新しいExcelドキュメントを作成し、すでに存在するExcelファイルを修正し、多くのフォーマットを行い、暗号化をします。 変換を実行するために個別のライブラリをインストールする必要があります。

IronXLにはさまざまな価格プランがあります。 自分のニーズに最も適したプランを購入することができます。 たとえば、あなたが唯一の開発者で、商業目的でプロジェクトにIronXLが必要な場合、それを有効にするためのワンタイムペイメントはSyncfusionよりも遥かに低いです。なぜなら、Syncfusionは単なる1年間で数百ドルを費やす必要があり、1人の開発者と1つのプロジェクトのみでライブラリを購入する必要があるからです。 そのため、IronXLはより安価で、Syncfusion Excelフレームワークよりもはるかに良い選択肢を提供しています。

結論として、IronXLはSyncfusion Excelフレームワークよりも優れています。 上記の段落で見たように、簡単な関数のおかげでIronXLを使用するのはとても簡単であり、一行のコードですべてのフォーマットを行うことができます。 しかし、Syncfusion Excelフレームワークでは、すでにIronXLでバックエンドに定義されている多くのアイテムを定義するために複数行のコードを書く必要があり、ユーザーは複数のパラメーターや変数を定義するために時間を費やす必要がありませんでした。 さらに、IronXLは安価で、より良いライセンスオプションがあります。 Iron Softwareは現在、特別オファーがあり、わずか2つのソフトウェアパッケージの価格で5つのソフトウェアパッケージを購入できます。 これはIron Softwareパッケージ5つを割引価格で購入できることを意味します。

Syncfusionは各所有者の登録商標です。 このサイトはSyncfusionとは関連しておらず、承認されておらず、または支援されていません。) すべての製品名、ロゴ、およびブランドは各所有者の所有物です。 比較は情報提供のみを目的としており、執筆時点で公開されている情報を反映しています。

よくある質問

IronXLを使ってExcelファイル操作の主な利点は何ですか?

IronXLは、開発者がExcelドキュメントを簡単に読み書きし、操作できるようにする簡素でユーザーフレンドリーなAPIを提供します。XLS、XLSX、CSV、JSONなど複数のファイル形式をサポートし、データのロード、チャート作成、数式の処理、セルのスタイリングなどの機能を含んでおり、Microsoft Excelのインストールが不要です。

C#でExcelファイルを異なる形式に変換するにはどうすればよいですか?

IronXLを使用して、ExcelファイルをCSV、JSON、XML、XLSX、XLSなどのさまざまな形式にエクスポートできます。これにより、最小限のコードでC#アプリケーションに統合しやすくなります。

IronXLを使用するのにExcelのインストールは必要ですか?

いいえ、IronXLはサーバーやワークステーションにMicrosoft Excelのインストールを必要としません。独自のAPIを提供してExcelファイル操作タスクを処理します。

IronXLのライセンスはSyncfusion Excelとはどう違いますか?

IronXLは商業利用のためのいくつかの有料版とウォーターマーク付きの無料開発バージョンを提供しており、柔軟なライセンスモデルを提供しています。対照的に、Syncfusion Excelはライセンスの購入が必要で、価格は開発者とプロジェクトの数に基づいています。

IronXLが初心者にとってSyncfusion Excelよりも好ましい選択肢となるのはなぜですか?

IronXLは、そのシンプルで直感的なAPIにより、一般的に初心者にとって簡単です。このAPIは最小限のコードで複雑なタスクを実行できるようにします。Syncfusion Excelとは異なり、パラメータを複数指定する必要がないため、Excel操作に不慣れな開発者にもアクセスしやすいです。

IronXLはExcelファイルの保護とセキュリティを処理できますか?

はい、IronXLはユーザーが文書をパスワードとその他の保護機能で安全にできるようにすることで、Excelファイルの保護を管理できます。これにより、Excelファイルを共有する際のデータの整合性と機密性が確保されます。

開発者がSyncfusion ExcelよりIronXLを考慮する理由は何ですか?

開発者はそのシンプルさ、使いやすさ、費用対効果、および異なるプラットフォーム用の追加ライブラリを必要としない堅牢な機能セットのためにSyncfusion ExcelよりIronXLを選ぶかもしれません。IronXLはExcelファイル操作に対する簡潔なアプローチを提供し、開発者にとって理想的な選択です。

IronXLはExcelファイルにおける数式処理をサポートしていますか?

はい、IronXLはExcelの数式作業をサポートしており、Excelファイル内で数式を読み書きおよび評価できるため、プログラムで複雑な計算を対処する包括的なソリューションを提供します。

カーティス・チャウ
テクニカルライター

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

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