跳過到頁腳內容
與其他組件的比較

IronXL 與 Syncfusion Excel 的比較

程式開發人員程式設計操作 Excel 可能會很困難。 在嘗試編輯 Microsoft Excel 文件時會出現多個問題。 主要的問題是介面操作困難和缺乏文檔,導致難以處理 Excel 文件。但幸運的是,我們現在有一些有經驗程序員編寫的 Excel 函式庫。 這些資料庫有助於編輯 Microsoft Excel 文件數據。 這裡我將討論兩個 Excel C# 程式庫:

  • IronXL: C# Excel 函式庫
  • Syncfusion Excel 框架

讓我們從比較這些函式庫開始。

IronXL: C# Excel 函式庫

IronXL is a .NET Excel library of C# codes developed by Iron Software 開發的 .NET Excel 函式庫的 C# 代碼,用於程式設計操作 Excel 文件。 IronXL 是基於 .NET framework 開發,它簡化了通常需要 Microsoft Excel 的應用程式開發過程。

IronXL provides the programmer with a set of classes, methods, and properties that can be used for reading and writing data from/to an Excel workbook, manipulating workbook objects, accessing external data sources, and loading data into an Excel workbook.

讓我們看看 IronXL 的功能。

IronXL 的功能

IronXL 擁有許多使其在其它函式庫中脫穎而出的功能

加載、讀取和編輯數據

Using IronXL we can load, read, and edit data from spreadsheet documents such as XLS, XLSX, XLST, XLSM, CSV, and TSV. IronXL provides very simple and easy-to-remember functions to create, read, and edit these spreadsheet documents. 它提供對文檔的完全控制。

創建圖表

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 也支持該功能。 You can change font style, font size, background pattern, border, and alignment using the IronXL functions.

Syncfusion Excel

Syncfusion 函式庫 提供用於讀取、寫入和操作 Microsoft Excel (XLS) 文件的 API。 Syncfusion 函式庫是一個 C# 函式庫,開發人員可用於創建其應用程式以讀取、寫入和操作 Microsoft Excel (XLS) 文件。 自訂數據導入 也是支持的。 它與所有支持 C# 編程語言的操作系統相容。

Syncfusion Excel 的功能

讓我們來看看 Syncfusion Excel 函式庫的功能:

讓我們看看這些函式庫的工作方式。 為了檢查這些功能,我們需要首先創建一個 C# 項目。所以,讓我們開始吧。

1. 創建 C# 項目

本教程將使用 Visual Studio 2019 版本(建議使用最新版本)和 C# 編程語言來建立項目。

  • 開啟 Visual Studio 2019。
  • 點擊“創建”來創建一個新項目。
  • 從模板中選擇 C# 主控台應用程式,然後點擊下一步按鈕。

    Console Application Console Application

  • 為項目命名,然後點擊下一步按鈕。

    Project Configuration Project Configuration

  • 選擇 .NET 目標框架 >= 3.1,因為 3.1 是支持和在每個設備上工作的。最新且最穩定的 .NET framework 版本是 5.0。點擊創建按鈕。 這將創建一個 C# 主控台應用程式。

    .NET Target Framework .NET Target Framework

你也可以使用現有的 C# 項目。 只需要打開項目並安裝函式庫。 我們將在下一節中看到如何安裝 Excel 函式庫。

2. 安裝 IronXL 函式庫

有多種方法可以下載和安裝 IronXL 函式庫。 這些如下:

  1. 程式包管理器控制台
  2. 使用 NuGet 套件管理器

2.1 程式包管理器控制台

我們可以使用程式包管理器控制台安裝 IronXL 函式庫。 按照以下步驟安裝它:

  • 開啟 程式包管理器控制台。 它通常位於 Visual Studio 底部。

    Package Manager Console Package Manager Console

  • 輸入以下命令並按 Enter。

    Install-Package IronXL
    Install-Package IronXL
    SHELL
  • 它將開始安裝 IronXL 函式庫。

    IronXL Installation IronXL Installation

  • 安裝後,我們可以在項目中使用它。

2.2 使用 NuGet 套件管理器安裝

我們可以直接從 NuGet 套件管理器中安裝 IronXL 函式庫。 按照以下步驟安裝 IronXL:

  • 從菜單欄中點擊工具,然後懸停在 NuGet 套件管理器上。

    NuGet Package Manager NuGet Package Manager

  • 選擇管理針對解決方案的 NuGet 套件。 點擊 瀏覽 ,在搜索欄中輸入 IronXL。 它將在搜索結果中顯示 IronXL 函式庫。

    Manage NuGet Packages Manage NuGet Packages

  • 點擊 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

輸出:

IronXL Output IronXL Output

我們可以設置 Excel 文件的元資料。 很容易用簡單易用的函數設置單元格的值和格式。 我們使用 Style.BottomBorder.SetColor 函數設置單元格底部邊框的顏色。

5.2 Syncfusion Excel

以下代碼演示如何創建新 Excel 文件並使用 Syncfusion 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() 函數創建包含在工作簿中的工作表。 它通過其“cells”屬性訪問 Excel 工作表的單元格,然後使用 SaveAs() 函數最終保存文件。

6. 導出 Excel 文件

接下來,我們將看看如何將 Excel 文件導出為其他數據格式。 這是 Excel 函式庫的重要功能,因為有時我們需要不同格式的數據來進行不同類型的處理——這就是為什麼我們會查看哪個函式庫提供簡單和方便的解決方案。

6.1 IronXL

使用 IronXL 我們只需用一行代碼即可轉換 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 文件。 但是,我們需要先打開或創建 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,我們可以只用一行代碼即可保護 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 文件。若要取消保護表格,我們可以在加載 Excel 文件後使用 UnprotectSheet() 函數。這個函數將刪除所有密碼,即使你不知道密碼。

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 的內容,我們需要向這個函數傳遞三個參數。第三個參數將是您想要設置的密碼。

8. 授權

8.1 IronXL

IronXL 完全免費供開發使用。 你可以嘗試其方方面面來進行開發。 但在免費開發版本中會有水印。 你也可以免費試用它作為生產用途。 你可以啟用免費試用,而不需任何支付。 如果你選擇購買 IronXL,那麼價格計畫如下:

精簡版

如果你是一名單一開發者並希望在項目中使用 IronXL,你可以選擇精簡版。 這會成為你最佳的選擇。

IronXL Lite IronXL Lite

專業版

如果你擁有一家在世界各地有多個分支的公司,專業版本是你的最佳選擇。 這個版本同時支持 10 個地點、10 個開發人員和 10 個專案。

IronXL Professional IronXL Professional

无限版

這種價格方案支持無限開發者、無限地點和無限專案的終生一次性支付。 如果你希望在多個項目中使用 IronXL,這是最好的選擇。

IronXL Unlimited IronXL Unlimited

IronXL 還支持版税分配,還提供產品支持和更新。

Royalty Distribution Royalty Distribution

IronXL 的授權頁面包含有關價格和使用權限的更多細節。

8.2 Syncfusion Excel 函式庫

Syncfusion Excel 函式庫也提供免費試用。 如果你想購買 Syncfusion Excel,那麼你可以為一個最多五位開發的團隊購買,價格 $395。 Syncfusion offers additional licenses for teams of 10 or more developers, and special unlimited licenses for use in single projects or for entire companies.

Syncfusion Syncfusion

9. 結論

兩種函式庫都提供有效的功能。 但從大局看,IronXL 更方便容易使用。 它有簡單易記的函數。 借助 IronXL,你可以使用單行代碼完成大量編輯和格式設置。 代碼流複雜,但新手也能很容易理解。 你不需了解或理解 IronXL 的工作。 不必為不同平台安裝不同函式庫。 只需安裝一次,你就能進行每個操作。

Syncfusion Excel 擁有許多功能,如我們上面所見。 我們可以使用 Syncfusion Excel 創建新 Excel 文件、修改已有的 Excel 文件、進行多個格式設置和加密。 我們必須安裝單獨的函式庫來執行轉換。 IronXL 有不同的價格方案。

你可以購買最適合自己的計畫。 例如,如果你是唯一的開發者,並且需要 IronXL 用於商業用途的專案,你可以用一次性支付來啟用它,這比 Syncfusion 的價格計畫要低很多,後者要求你購買函式庫一年便要支付數百美元,且只限於一位開發者和一個專案。 因此,IronXL 更便宜,選擇更好,比 Syncfusion Excel 框架有更多選擇。 總之,IronXL 比 Syncfusion Excel 框架是更好的選擇。

就如我們在上面段落中所見,IronXL 由於其簡單的函數非常易於使用,我們可以用一行代碼進行許多格式設置。 但是,在 Syncfusion Excel 框架中,我們需要編寫多行代碼來定義許多東西,而這些內容在 IronXL 後端已經預先定義,並且使用者不需花時間定義多個參數和變量。 此外,IronXL 還更便宜,並且有更好的授權選擇。 Iron Software 現在提供特別優惠,你可以以購買兩個的價格購買五個軟體包。 這意味著你可以以折扣價購買五個 Iron Software 軟件包。 [{i:(Syncfusion是其相應擁有者的註冊商標。

本網站未經過Syncfusion的承認、持有人或贊助。 This site is not affiliated with, endorsed by, or sponsored by Syncfusion. 所有產品名稱、徽標和品牌均為其各自所有者的財產。 比較僅供參考,反映撰寫時公開可用的信息。

常見問題解答

使用 IronXL 處理 Excel 文件的主要優勢是什麼?

IronXL 提供了一個簡化且用戶友好的 API,允許開發人員輕鬆讀取、寫入和操作 Excel 文件。它支持多種文件格式,例如 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 更適合初學者的原因是什麼?

由於其簡單且直觀的 API,IronXL 對於初學者來說通常更容易使用,允許使用極少數代碼執行複雜的任務。與 Syncfusion Excel 不同,IronXL 無需定義多個參數,使其對於新開始處理 Excel 的開發者更容易上手。

IronXL 能處理 Excel 文件的保護和安全性嗎?

是的,IronXL 可以通過允許用戶用密碼和其他保護功能保護他們的文檔來管理 Excel 文件的保護。在共享 Excel 文件時保障數據的完整性和機密性。

為什麼開發人員應考慮使用 IronXL 而不是 Syncfusion Excel?

開發人員可能會選擇 IronXL 而不是 Syncfusion Excel,因為它簡單、易於使用、具有成本效益且功能強大,不需要為不同平臺的不同庫。IronXL 提供了一個簡單明瞭的 Excel 文件操作方法,使其成為開發人員的理想選擇。

IronXL 是否支持 Excel 文件中的公式處理?

是的,IronXL 支持處理 Excel 公式,允許您在 Excel 文件中讀取、寫入和評估公式,提供一個全面的解決方案來程式化地處理複雜的計算。

Jordi Bardia
軟體工程師
Jordi 在 Python、C# 和 C++ 上最得心應手,當他不在 Iron Software 展現技術時,便在做遊戲編程。在分担产品测测试,产品开发和研究的责任时,Jordi 为持续的产品改进增值。他说这种多样化的经验使他受到挑战并保持参与, 而这也是他与 Iron Software 中工作一大乐趣。Jordi 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。