與其他組件比較

IronXL 與 Aspose Cells 的比較

里根普恩
里根普恩
2022年3月29日
分享:

能夠處理 Excel 文件以生成報告和建立資料庫,已成為當今軟體應用程式的基本需求。 現在有許多函式庫可用,允許使用者在沒有 Microsoft Excel 的情況下完成此操作。

在本文中,我們將討論並比較如何使用兩個最受歡迎的程式庫,IronXL 和 Aspose Cells,在 C# .NET 技術中以程式化的方式處理 Microsoft Excel 文件。

IronXL 和 Aspose Cells 都提供在 .NET 框架中創建、編輯和讀取 Excel 文件的方法。 下一個問題是決定哪個C# Excel 庫最適合您的專案。 本文將幫助您為您的應用程式決定最佳選擇。

首先,我們來看看這兩個庫的提供內容,然後進行比較。

IronXL 庫

IronXL 是一個 .NET 函式庫,可以用 C# 來讀取和編輯 Microsoft Excel 文檔。 IronXL.Excel 是一個獨立的 .NET 軟體庫,用於讀取多種電子表格格式。 它不需要安裝 Microsoft Excel,也不依賴於 Interop。

IronXL 是一个直观的 C# API,使您能够以闪电般的速度在 .NET 中读取、编辑和创建 Excel 电子表格文件。 IronXL 完全支持 .NET Core、.NET Framework、Xamarin、移动、Linux、macOS 和 Azure。

IronXL 是一個領先的 .NET Core 和 .NET Framework Excel 試算表庫,適用於 C#。

IronXL 功能集

  • 載入、讀取和編輯數據 — 來自 XLS/XLSX/CSV/TSV
  • 儲存和匯出 — 到 XLS/XLSX/CSV/TSV/JSON
  • System.Data 物件 — 將 Excel 試算表作為 System.Data.DataSet 和 System.Data.DataTable 物件進行處理。
  • 公式 — 支援 Excel 公式。 每次編輯工作表時公式都會重新計算。
  • 範圍 — 易於使用的工作表 ["A1:B10"] 語法。 直觀地合併和創建範圍。
  • 排序 — 排序範圍、列和行。
  • 樣式 — 儲存格視覺樣式、字體、大小、背景圖案、邊框、對齊和數字格式。

Aspose Cells

Aspose.Cells for .NET 是一個 Excel 電子表格編程 API,用於加速電子表格管理和處理任務。 該 API 支援構建具備產生、修改、轉換、呈現和列印電子表格能力的跨平台應用程式。 此外,它不依賴於安裝 Microsoft Excel 或任何 Microsoft Office Interop 組件,而是提供了一套強大的 API,可處理所有 Excel 格式以及 CSV 和 SpreadsheetML 格式。

通過整合 API,開發人員可以執行基本任務,例如管理多個工作表,從頭創建試算表的內容和樣式,從不同的數據來源導入數據到工作表中,添加常見和複雜的數學、金融及文本公式,操作圖表、圖片、註解、繪圖對象等。

Aspose Cells Excel 試算表 API 功能

以下是 Aspose Cells 的一些突出功能:

渲染

  • 圖表轉換為圖像
  • 工作表轉換為圖像
  • 列印

    數據處理

  • 套用格式
  • 套用公式
  • 總結
  • 智慧標記

    Grid Suite

  • 桌面控制用於 WinForms
  • ASP.NET 的 Web 控制項
  • 套用格式
  • 套用公式
  • 匯入/匯出資料

    本文章的其餘部分如下:

  1. 建立主控台應用程式

  2. IronXL C# 程式庫安裝

  3. Aspose Cells 安裝

  4. 創建並保存新的 Excel 工作簿和工作表

  5. 讀取 Excel 檔案

  6. 使用 Excel 公式

  7. 相互轉換檔案

  8. 授權

  9. 結論

1. 建立主控台應用程式

使用以下步驟來創建一個控制台應用程式:

  • 啟動 Visual Studio 2022 IDE。
  • 點擊“建立新專案”
  • “創建新專案”頁面上,從語言下拉列表中選擇C#,從平台列表中選擇Windows,從“專案類型”列表中選擇Console
  • 從顯示的專案範本中選擇控制台應用程式 (.NET Framework)
    建立專案 - 主控台應用程式
  • 點擊下一步
  • 其他資訊畫面中,指定您要使用的框架版本。 在此範例中,我們將使用.NET Framework 4.8

    建立專案 -.NET Framework
  • 按一下建立以完成此過程。

    現在專案已建立,我們幾乎準備好測試這些函式庫。 但是,我們仍然需要安裝並將它們整合到我們的專案中。 讓我們先安裝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 網站並下載套件來完成。 步驟如下:

2.3. 使用 DLL 手動安裝

另一種下載和安裝 IronXL C# 庫的方法是通過開發人員命令提示符以下列步驟安裝 IronXL NuGet package

  • 開啟開發人員命令提示字元 — 通常位於 Visual Studio 資料夾中。

    輸入以下命令:

    PM > Install-Package IronXL.Excel

  • 按下 Enter 鍵。
  • 這將下載並安裝套件。
  • 重新載入您的 Visual Studio 專案並開始使用它。

2.4. 添加必要的 Using 指令

  1. 在方案瀏覽器中,右鍵點擊Program.cs文件,然後點擊檢視程式碼。

  2. 將以下使用指令新增到程式碼文件的頂部:
using IronXL;
using IronXL;
Imports IronXL
$vbLabelText   $csharpLabel

完成! IronXL 已下載、安裝並準備使用。 然而,在此之前,我們應該安裝 Microsoft.Office.Interop.Excel。

3. Aspose Cells 安裝

3.1. 使用 Visual Studio 與 NuGet 套件

在創建專案後,通過專案選單或在方案總管中右鍵點擊您的專案來訪問 NuGet 套件管理員。

  • 現在,從瀏覽選項卡 -> 搜尋 Aspose Cells -> 安裝

3.2. 使用 NuGet 套件管理器控制台

下載和安裝 Aspose Cells C# 庫的另一種方法是通過開發者命令提示字元使用以下步驟來安裝NuGet 套件

  • 開啟開發人員命令提示字元 — 通常位於 Visual Studio 資料夾中。

    輸入以下命令:

    PM> Install-Package Aspose.Cells

  • 按下 Enter 鍵。
  • 這將下載並安裝套件。
  • 重新載入您的 Visual Studio 專案並開始使用它。

3.3. 直接下載

您可以透過點擊此連結直接從網站下載任何版本的 Aspose Cells:https://downloads.aspose.com/cells/net

或:

下載自 NuGet 網站:https://www.nuget.org/packages/Aspose.Cells/

3.4. 添加必要的使用指令

  1. 在方案瀏覽器中,右鍵點擊Program.cs文件,然後點擊檢視程式碼。

  2. 將以下使用指令新增到程式碼文件的頂部:
using Aspose.Cells;
using Aspose.Cells;
Imports Aspose.Cells
$vbLabelText   $csharpLabel

4. 建立並儲存新的 Excel 活頁簿和工作表

工作簿是一個包含多個具有行和列的工作表的 Excel 文件。 這兩個庫都提供創建新 Excel 工作簿和工作表的功能。 讓我們一步一步地看看這段代碼。

4.1. 使用 IronXL 新建 Excel 工作簿和工作表

使用 IronXL 建立新的 Excel 工作簿再簡單不過了! 只需一行代碼! 真的。 將以下程式碼添加到 Program.cs 文件中的 static void main 函數:

WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
Dim workbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
$vbLabelText   $csharpLabel

使用IronXL可以創建XLS(較舊版的Excel文件格式)和XLSX(當前和較新版的文件格式)文件格式。

而且,創建一個預設的工作表更簡單:

var worksheet = workbook.CreateWorkSheet("IronXL Features");
var worksheet = workbook.CreateWorkSheet("IronXL Features");
Dim worksheet = workbook.CreateWorkSheet("IronXL Features")
$vbLabelText   $csharpLabel

現在您可以使用工作表變數來設置單元格值,並完成Excel文件幾乎所有能做的事情。

保存 Excel 檔案:

//Save spreadsheet
workbook.SaveAs("NewExcelFile.xlsx");
//Save spreadsheet
workbook.SaveAs("NewExcelFile.xlsx");
'Save spreadsheet
workbook.SaveAs("NewExcelFile.xlsx")
$vbLabelText   $csharpLabel

4.2. 使用 Aspose.Cells 建立新的 Excel 工作簿和工作表

在創建試算表及其內容之前,必須創建一個許可證對象,以避免購買許可版本時的評估限制。 代碼如下:

// Create a License object
License license = new License();

// Set the license of Aspose.Cells to avoid the evaluation limitations
license.SetLicense(dataDir + "Aspose.Cells.lic");
// Create a License object
License license = new License();

// Set the license of Aspose.Cells to avoid the evaluation limitations
license.SetLicense(dataDir + "Aspose.Cells.lic");
' Create a License object
Dim license As New License()

' Set the license of Aspose.Cells to avoid the evaluation limitations
license.SetLicense(dataDir & "Aspose.Cells.lic")
$vbLabelText   $csharpLabel

接下來,讓我們看看如何創建工作簿和工作表的程式碼。 代碼示例如下:

// Instantiate a Workbook object that represents Excel file.
Workbook wb = new Workbook();

// When you create a new workbook, a default "Sheet1" is added to the workbook.
Worksheet sheet = wb.Worksheets [0];
// Instantiate a Workbook object that represents Excel file.
Workbook wb = new Workbook();

// When you create a new workbook, a default "Sheet1" is added to the workbook.
Worksheet sheet = wb.Worksheets [0];
' Instantiate a Workbook object that represents Excel file.
Dim wb As New Workbook()

' When you create a new workbook, a default "Sheet1" is added to the workbook.
Dim sheet As Worksheet = wb.Worksheets (0)
$vbLabelText   $csharpLabel

保存 Excel 檔案:

//Save spreadsheet
wb.Save("NewExcelFile.xlsx");
//Save spreadsheet
wb.Save("NewExcelFile.xlsx");
'Save spreadsheet
wb.Save("NewExcelFile.xlsx")
$vbLabelText   $csharpLabel

5. 讀取 Excel 檔案

這兩個庫都可以打開和讀取現有的 Excel 文檔。 讓我們來看看示範代碼。

5.1. 使用 IronXL 讀取 Excel 文件

IronXL WorkBook 類別表示一個 Excel 工作表。 要使用 C# 打開 Excel 檔案,我們使用 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")
$vbLabelText   $csharpLabel

每個 WorkBook 可以有多個 WorkSheet 物件。 這些代表 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")
$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

5.2. 使用 Aspose.Cells 讀取 Excel 文件

在 Aspose Cells 中讀取 Excel 文件也是一個簡單的任務,因為它可以輕鬆管理多個工作表。 請查看以下程式碼:

// Creating a Workbook object and opening an Excel file using its file path
var workbook = new Workbook(@"Spreadsheets\\sample.xlsx");

//Adding new sheet
Worksheet sheet = workbook1.Worksheets.Add("MySheet");
// Creating a Workbook object and opening an Excel file using its file path
var workbook = new Workbook(@"Spreadsheets\\sample.xlsx");

//Adding new sheet
Worksheet sheet = workbook1.Worksheets.Add("MySheet");
' Creating a Workbook object and opening an Excel file using its file path
Dim workbook As New Workbook("Spreadsheets\\sample.xlsx")

'Adding new sheet
Dim sheet As Worksheet = workbook1.Worksheets.Add("MySheet")
$vbLabelText   $csharpLabel

讀取儲存格數值的程式碼:

//Get Cells
Cells cells = sheet.Cells;
foreach (var cell in cells)
{
    Console.WriteLine(cell.Value);
}
//Get Cells
Cells cells = sheet.Cells;
foreach (var cell in cells)
{
    Console.WriteLine(cell.Value);
}
'Get Cells
Dim cells As Cells = sheet.Cells
For Each cell In cells
	Console.WriteLine(cell.Value)
Next cell
$vbLabelText   $csharpLabel

6. 使用 Excel 公式

Excel公式是使用Excel文件時最重要的功能之一。 兩個庫都有強大的公式計算引擎。它們提供了使用公式的便利,並能輕鬆將其應用於單元格。

6.1. 使用 IronXL 處理 Excel 公式

載入工作簿和工作表後,可以使用以下代碼範例來更改公式或應用於特定儲存格。 代碼如下:

// 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()
$vbLabelText   $csharpLabel

您還可以檢索公式及其值:

// Get the formula's calculated value.  e.g. "52"
string formulaValue = worksheet ["G30"].Value;

//Get the formula as a string. e.g. "Max(C3:C7)"
string formulaString = worksheet ["G30"].Formula;

//Save your changes with updated formulas and calculated values.
workbook.Save();
// Get the formula's calculated value.  e.g. "52"
string formulaValue = worksheet ["G30"].Value;

//Get the formula as a string. e.g. "Max(C3:C7)"
string formulaString = worksheet ["G30"].Formula;

//Save your changes with updated formulas and calculated values.
workbook.Save();
' Get the formula's calculated value.  e.g. "52"
Dim formulaValue As String = worksheet ("G30").Value

'Get the formula as a string. e.g. "Max(C3:C7)"
Dim formulaString As String = worksheet ("G30").Formula

'Save your changes with updated formulas and calculated values.
workbook.Save()
$vbLabelText   $csharpLabel

6.2. 使用 Aspose.Cells 處理 Excel 公式

使用 Aspose.Cells 也可以輕鬆地處理公式。 將以下程式碼添加到正在讀取的 Excel 文件中。 代碼如下:

//Setting values
Cells cells = sheet.Cells;

//Setting formula
cells ["A4"].Formula = "=SUM(A1:A3)";

// Calculating the results of formulas
workbook.CalculateFormula();
//Setting values
Cells cells = sheet.Cells;

//Setting formula
cells ["A4"].Formula = "=SUM(A1:A3)";

// Calculating the results of formulas
workbook.CalculateFormula();
'Setting values
Dim cells As Cells = sheet.Cells

'Setting formula
cells ("A4").Formula = "=SUM(A1:A3)"

' Calculating the results of formulas
workbook.CalculateFormula()
$vbLabelText   $csharpLabel

按照上面的程式碼,您可以輕鬆地設置更多公式。

7. 互相轉換檔案 — (Excel、XLS、XLSX、XLSB、XLSM、XPS資料交換)

IronXL 和 Aspose Cells 都提供了將 Excel xlsx 檔案轉換為不同格式的功能,並且可以將不同格式轉換為 Excel 活頁簿。

7.1. 使用 IronXL 的轉換過程

過程非常簡單且容易。 通常只需一行代碼即可完成。

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")
$vbLabelText   $csharpLabel

XLSX 文件轉換為 XLSM:

WorkBook workbook = WorkBook.Load("test.xlsx");

//This is how you can export workbook to .xlsm format
workbook.SaveAs("test.xlsm");
WorkBook workbook = WorkBook.Load("test.xlsx");

//This is how you can export workbook to .xlsm format
workbook.SaveAs("test.xlsm");
Dim workbook As WorkBook = WorkBook.Load("test.xlsx")

'This is how you can export workbook to .xlsm format
workbook.SaveAs("test.xlsm")
$vbLabelText   $csharpLabel

從 Excel 到 HTML 的選項:

WorkBook workbook = WorkBook.Load("test.xlsx");

var options = new HtmlExportOptions()
{
    //This is how we can make row/column numbers visible in html document
    OutputRowNumbers = true,
    OutputColumnHeaders = true,
    OutputHiddenColumns = true,

    //This is how we can make hidden rows/columns visible in html document
    OutputHiddenRows = true,
    OutputLeadingSpacesAsNonBreaking = true
};

//This is how we can export workbook to the HTML file
workbook.ExportToHtml("workbook.html",options);
WorkBook workbook = WorkBook.Load("test.xlsx");

var options = new HtmlExportOptions()
{
    //This is how we can make row/column numbers visible in html document
    OutputRowNumbers = true,
    OutputColumnHeaders = true,
    OutputHiddenColumns = true,

    //This is how we can make hidden rows/columns visible in html document
    OutputHiddenRows = true,
    OutputLeadingSpacesAsNonBreaking = true
};

//This is how we can export workbook to the HTML file
workbook.ExportToHtml("workbook.html",options);
Dim workbook As WorkBook = WorkBook.Load("test.xlsx")

Dim options = New HtmlExportOptions() With {
	.OutputRowNumbers = True,
	.OutputColumnHeaders = True,
	.OutputHiddenColumns = True,
	.OutputHiddenRows = True,
	.OutputLeadingSpacesAsNonBreaking = True
}

'This is how we can export workbook to the HTML file
workbook.ExportToHtml("workbook.html",options)
$vbLabelText   $csharpLabel

7.2. 使用 Aspose.Cells 的轉換過程

在 Aspose Cells 中轉換 Excel xlsx 文件也相對簡單。 請看以下代碼:

Excel 轉 HTML:

//Load your source workbook
Workbook workbook = new Workbook("Book1.xlsx"); 

//save file to html format
workbook.Save("out.html");
//Load your source workbook
Workbook workbook = new Workbook("Book1.xlsx"); 

//save file to html format
workbook.Save("out.html");
'Load your source workbook
Dim workbook As New Workbook("Book1.xlsx")

'save file to html format
workbook.Save("out.html")
$vbLabelText   $csharpLabel

ODs 文本轉換為 Excel:

//Load your source ods text file
Workbook workbook = new Workbook("book1.ods");

//Save as xlsx file
workbook.Save("ods_out.xlsx");
//Load your source ods text file
Workbook workbook = new Workbook("book1.ods");

//Save as xlsx file
workbook.Save("ods_out.xlsx");
'Load your source ods text file
Dim workbook As New Workbook("book1.ods")

'Save as xlsx file
workbook.Save("ods_out.xlsx")
$vbLabelText   $csharpLabel

Excel 工作表轉換為 SVG 格式:

// Instantiate a workbook
var workbook = new Workbook();

// Populate worksheets first cell
workbook.Worksheets [0].Cells ["A1"].Value = "DEMO TEXT ON SHEET1";

// Convert Worksheets
workbook.Save("ConvertWorksheetToSVG_out.svg");
// Instantiate a workbook
var workbook = new Workbook();

// Populate worksheets first cell
workbook.Worksheets [0].Cells ["A1"].Value = "DEMO TEXT ON SHEET1";

// Convert Worksheets
workbook.Save("ConvertWorksheetToSVG_out.svg");
' Instantiate a workbook
Dim workbook As New Workbook()

' Populate worksheets first cell
workbook.Worksheets (0).Cells ("A1").Value = "DEMO TEXT ON SHEET1"

' Convert Worksheets
workbook.Save("ConvertWorksheetToSVG_out.svg")
$vbLabelText   $csharpLabel

8. 授權

IronXL 是一個開放商業的 C# Excel 函式庫。 它在開發時免費,並且始終可以獲得商業部署的許可。 授權可用於單一專案使用、單一開發人員、代理商和全球企業,以及 SaaS 和 OEM 再分發。 所有授權均包括30天退款保證、一年產品支援和更新、開發/測試/生產環境的有效性,以及永久許可(一次性購買)。 輕量套件的起價為$749。

Aspose Cells 是一個開源 API,可以獲得商業使用許可。 Aspose.Cells 產品的評估版本提供完整的產品功能,但在一個程式中最多只能開啟 100 個檔案,並具有包含評估浮水印的附加工作表。 技術支持免費且無限制,並提供給持有許可證和評估版的用戶。 如果您想測試 Aspose.Cells 而無需評估版本的限制,可以申請 30 天的臨時許可證或從此連結購買授權版本。 開發者小型企業套裝價格自 $1199 起。

9. 結論

相比之下,IronXL 和 Aspose.Cells 在處理 Excel 時正面交鋒。 IronXL和Aspose.Cells都提供進階的Excel功能以及基本的Excel操作。 IronXL 在開發過程中是免費的,而 Aspose.Cells 則有評估期,每個應用程式的文件數量限制為 100。 在這裡,IronXL 在非商業用途中具有優勢。 此外,IronXL 也提供與 JSON 格式之間的轉換。

里根普恩
軟體工程師
Regan 畢業於雷丁大學,擁有電子工程學士學位。在加入 Iron Software 之前,他的工作角色讓他專注於單一任務;而他在 Iron Software 工作中最喜歡的是他所能承擔的工作範圍,無論是增加銷售價值、技術支持、產品開發或市場營銷。他喜歡了解開發人員如何使用 Iron Software 庫,並利用這些知識不斷改進文檔和開發產品。
< 上一頁
IronXL 和 Microsoft Office Interop Excel 的比較