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

IronXL 與 Syncfusion Excel 的比較

對於開發人員來說,透過程式操作 Excel 可能很困難。 嘗試編輯 Microsoft Excel 文件時會出現一些問題。 主要問題在於使用者介面複雜且缺乏文檔,導致處理 Excel 文件較為困難。但幸運的是,我們現在有一些由經驗豐富的程式設計師編寫的 Excel 庫。 這些庫有助於編輯 Microsoft Excel 文件資料。 本文將介紹兩個 Excel C# 函式庫:

IronXL:C# Excel 函式庫

  • Syncfusion Excel 框架

讓我們先來比較一下這些函式庫。

IronXL:C# Excel 函式庫

IronXL是由Iron Software開發的 .NET Excel C# 程式碼庫,用於以程式設計方式操作 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 函式庫提供了一個 API,用於讀取、寫入和操作 Microsoft Excel (XLS) 檔案。 Syncfusion 函式庫是一個 C# 函式庫,開發人員可以使用它來建立用於讀取、寫入和操作 Microsoft Excel (XLS) 檔案的應用程式。 同時支援自訂資料導入。 它與所有支援 C# 程式語言的作業系統相容。

Syncfusion Excel 的功能

讓我們一起來看看Syncfusion Excel庫的功能:

從零開始建立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 的底部附近。

    軟體包管理器控制台軟體包管理器控制台

  • 輸入以下指令並按下回車鍵。

    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 Forms、WPF、ASP.NET、UWP 等)分別安裝不同的程式庫。 我們需要為不同的平台編寫不同的命令。

3.1 使用軟體套件管理器控制台進行安裝

請依照下列步驟安裝 Syncfusion Excel 庫:

  • 開啟軟體套件管理器控制台。
  • 輸入以下指令安裝 Syncfusion Excel 函式庫:

    Install-Package Syncfusion.XlsIO.WinForms
    Install-Package Syncfusion.XlsIO.WinForms
    SHELL

如果您正在開發 WPF 項目,請輸入以下命令:

```shell
Install-package Syncfusion.XlsIO.Wpf
```

它將開始安裝庫。 安裝完成後,您就可以輕鬆地在專案中使用 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()函數在 Workbook 中建立了一個 Worksheet。 它透過"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 文件

保護功能是微軟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 專業版 IronXL 專業版

無限版

此定價方案支援終身無限數量的開發者、無限數量的地點和無限數量的項目,只需一次性付款。 如果您希望在多個專案中使用 IronXL,那麼這是最佳選擇。

IronXL 無限 IronXL 無限

IronXL 還支援版稅分配,並為您提供產品支援和更新。

版稅分配 版稅分配

IronXL 的許可頁麵包含有關定價和使用權的更多詳細資訊。

8.2 Syncfusion Excel 庫

Syncfusion Excel庫也提供免費試用。 如果您想購買 Syncfusion Excel,那麼您可以以 $395 的價格購買,最多可供五名開發人員組成的團隊使用。 Syncfusion 為10 人或以上的開發人員團隊提供額外的許可證,並為單一專案或整個公司提供特殊的無限許可證

同步融合 融合

9.結論

這兩個庫都提供了有效的功能。 但是,從更宏觀的角度來看,IronXL 更方便、更容易使用。 它的功能小巧易記。 借助 IronXL,您只需一行程式碼即可完成大量編輯和格式化操作。 程式碼流程雖然複雜,但初學者也能很容易理解。 您無需了解或理解 IronXL 的工作原理。 無需為不同平台安裝單獨的庫。 安裝一次,即可執行所有操作。

如上所示,Syncfusion Excel 具有許多功能。 借助 Syncfusion Excel,我們可以進行多種格式設定和轉換。 我們可以建立新的 Excel 文檔,修改現有的 Excel 文件,進行多種格式設置,並進行加密。 我們需要安裝一個單獨的函式庫來執行轉換。

IronXL提供多種定價方案。 您可以購買最符合您自身需求的套餐。 例如,如果您是唯一的開發者,並且需要 IronXL 用於商業項目,您可以一次性支付遠低於 Syncfusion 的費用來啟動它。 Syncfusion 需要您花費數百美元購買一個庫一年的使用權,而且僅限一個開發者和一個專案。 因此,IronXL 比 Syncfusion Excel 框架便宜得多,而且提供了更好的選擇。

總之,IronXL 比 Syncfusion Excel 框架更勝一籌。 正如我們在以上段落中所看到的,IronXL 非常容易使用,因為它具有簡單的功能,我們可以用一行程式碼完成許多格式化操作。 但是,在 Syncfusion Excel 框架中,我們需要編寫多行程式碼來定義許多已經在 IronXL 後端定義的項目,而使用者無需花費時間定義多個參數和變數。 此外,IronXL 的價格也更便宜,並且擁有更好的授權選項。 Iron Software 目前推出特別優惠活動,您可以以兩套軟體的價格購買五套軟體。 這意味著您可以以折扣價購買五套 Iron Software 軟體包

請注意Syncfusion 是其各自擁有者的註冊商標。 本網站與 Syncfusion 無任何關聯、背書或贊助。 所有產品名稱、標誌和品牌均為其各自擁有者的財產。 比較資料僅供參考,並反映撰寫時的公開資訊。

常見問題解答

使用 IronXL.Excel 進行 Excel 檔案處理的主要優勢是什麼?

IronXL.Excel 提供簡化且友善的 API,可讓開發人員輕鬆讀取、寫入及處理 Excel 文件。它支援 XLS、XLSX、CSV 和 JSON 等多種檔案格式,並包含資料載入、圖表建立、公式處理和儲存格造型等功能,而無需安裝 Microsoft Excel。

如何在 C# 中將 Excel 檔案轉換為不同格式?

您可以使用 IronXL 將 Excel 檔案匯出為 CSV、JSON、XML、XLSX 和 XLS 等各種格式。只需最少的程式碼即可完成,讓您輕鬆整合到 C# 應用程式中。

是否必須安裝 Excel 才能使用 IronXL.Excel?

不,IronXL 不需要在您的伺服器或工作站上安裝 Microsoft Excel。它提供自己的 API 來處理 Excel 檔案操作任務。

IronXL 的授權與 Syncfusion Excel 相比如何?

IronXL 提供附有水印的免費開發版,以及數個供商業使用的付費版,提供彈性的授權模式。相比之下,Syncfusion Excel 需要購買授權,其定價基於開發人員和專案的數量。

與 Syncfusion Excel 相比,是什麼讓 IronXL 成為初學者的首選?

由於 IronXL 的 API 簡單直觀,只需編寫最少的程式碼即可執行複雜的任務,因此對於初學者而言,IronXL 一般較為容易上手。與 Syncfusion Excel 不同,IronXL 不需要定義多個參數,因此對於剛開始操作 Excel 的開發人員而言更容易上手。

IronXL 能處理 Excel 檔案保護和安全性嗎?

是的,IronXL.Excel 可以管理 Excel 檔案保護,允許使用者使用密碼和其他保護功能來保護他們的文件。這可確保分享 Excel 檔案時的資料完整性和機密性。

為何開發人員應考慮使用 IronXL 而非 Syncfusion Excel?

相較於 Syncfusion Excel,開發人員可能會選擇 IronXL,因為它簡單、易用、具成本效益,而且功能強大,不需要針對不同平台使用額外的函式庫。IronXL.Excel 提供直接的 Excel 檔案操作方法,是開發人員的理想選擇。

IronXL 是否支援 Excel 檔案中的公式處理?

是的,IronXL 支援使用 Excel 公式,允許您在 Excel 檔案中讀取、寫入和評估公式,提供以程式化方式處理複雜計算的全面解決方案。

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