IronXL 與 Aspose Cells 的比較
能夠處理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, Mobile, Linux, macOS和Azure。
IronXL是C#中領先的.NET Core和.NET框架Excel電子錶格程式庫。
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的一些卓越特性:
渲染
- 圖表轉圖像。
- 工作表轉圖像。
- 列印。
数据处理
- 應用格式化。
- 應用公式。
- 概括。
- 智能標記。
網格套件
- 用於WinForms的桌面控制。
- 用於ASP.NET的Web控制。
- 應用格式化。
- 應用公式。
- 导入/导出数据。
本文余下内容如下:
- 建立控制檯應用程式。
- IronXL C# 程式庫安装。
- Aspose.Cells 安装。
- 创建并保存新的Excel工作簿和工作表。
- 讀取Excel文件。
- 处理Excel公式。
- 文件相互轉換。
- 授权。
- 結論。
1. 建立控制檯應用程式
請按以下步驟建立控制檯應用程式:
- 啓動Visual Studio 2022 IDE。
- 點擊"建立新項目"。
- 在"建立新項目"頁面中,從語言下拉列表中選擇C#,從平臺列表中選擇Windows,從"項目型別"列表中選擇控制檯。
- 從顯示的項目模板中選擇Console App (.NET Framework)。
- 點擊下一步。
- 在附加資訊螢幕中,指定您想要使用的框架版本。 在此範例中,我們將使用.NET Framework 4.8。
- 點擊建立以完成過程。
現在項目已建立,我們幾乎可以測試這些程式庫。 然而,我們仍然需要將它們安裝並整合到我們的項目中。 首先讓我們安裝IronXL。
2. IronXL C# 程式庫安装
您可以使用以下方法下载并安装IronXL程式庫:
- 使用Visual Studio和NuGet包。
- 直接下载NuGet包。
- 手動使用DLL安裝。
讓我們更詳細地看看每一個。
2.1. 使用Visual Studio和NuGet包
Visual Studio提供NuGet包管理器用於在您的項目中安裝NuGet包。 您可以通過項目選單存取它,或者通過右鍵點擊您在解決方案資源管理器中的項目。
- 然後,從瀏覽選項卡中,搜索IronXL.Excel並安裝。
- 完成了。
2.2. 直接下载NuGet包
您可以通過直接存取NuGet網站並下載包來完成此操作。 步驟如下:
- Navigate to https://www.nuget.org/packages/IronXL.Excel
- 選擇"下載包"。
- 雙擊下載的包。
- 包将被安装。
- 重新加载您的Visual Studio项目并开始使用。
2.3. 手動使用DLL安裝
另一種下載並安裝IronXL C# 程式庫的方法是通過開發者命令提示符來安裝IronXL NuGet包。
- 打開開發者命令提示符 — 通常在Visual Studio文件夾中可以找到。
輸入以下命令:
Install-Package IronXL.Excel
- 按回车。
- 這將下載並安裝包。
- 重新加载您的Visual Studio项目并开始使用。
2.4. 新增必要的using指令
- 在解決方案資源管理器中,右鍵單擊Program.cs文件然後選擇查看程式碼。
- 將以下using指令新增到程式碼文件的頂部:
using IronXL;
using IronXL;
Imports IronXL
全部搞定了! 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文件夾中可以找到。
輸入以下命令:
Install-Package Aspose.Cells
- 按回车。
- 這將下載並安裝包。
- 重新加载您的Visual Studio项目并开始使用。
3.3. 直接下载
您可以通過點擊此連結從網站直接下載任何版本的Aspose.Cells:https://downloads.aspose.com/cells/net
或者:
download from the NuGet website: https://www.nuget.org/packages/Aspose.Cells/
3.4. 新增必要的using指令
- 在解決方案資源管理器中,右鍵單擊Program.cs文件然後選擇查看程式碼。
- 將以下using指令新增到程式碼文件的頂部:
using Aspose.Cells;
using Aspose.Cells;
Imports Aspose.Cells
4. 创建并保存新的Excel工作簿和工作表
工作簿是一個包含多張工作表及行列的Excel文件。 這兩個程式庫都提供了建立新Excel工作簿和工作表的功能。 讓我們一步步查看程式碼。
4.1. 使用IronXL创建新Excel工作簿和工作表
使用IronXL建立一個新的Excel工作簿簡直易如反掌! 只需一行程式碼! 真的。 在Program.cs文件的靜態void main函式中加入以下程式碼:
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
Dim workbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
使用IronXL可以创建XLS(旧版Excel文件)和XLSX(当前和较新版本)文件格式。
並且,建立預設工作表甚至更簡單:
var worksheet = workbook.CreateWorkSheet("IronXL Features");
var worksheet = workbook.CreateWorkSheet("IronXL Features");
Dim worksheet = workbook.CreateWorkSheet("IronXL Features")
您現在可以使用工作表變數設置單元格值,並執行Excel文件能做的幾乎所有操作。
保存Excel文件:
// Save spreadsheet
workbook.SaveAs("NewExcelFile.xlsx");
// Save spreadsheet
workbook.SaveAs("NewExcelFile.xlsx");
' Save spreadsheet
workbook.SaveAs("NewExcelFile.xlsx")
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")
接下來,讓我們查看建立工作簿和工作表的程式碼。 程式碼範例如下:
// 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)
保存Excel文件:
// Save spreadsheet
wb.Save("NewExcelFile.xlsx");
// Save spreadsheet
wb.Save("NewExcelFile.xlsx");
' Save spreadsheet
wb.Save("NewExcelFile.xlsx")
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")
每個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")
讀取單元格值的程式碼:
// 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
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 = workbook.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 = workbook.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 = workbook.Worksheets.Add("MySheet")
讀取單元格值的程式碼:
// Get Cells
Cells cells = sheet.Cells;
foreach (Cell cell in cells)
{
Console.WriteLine(cell.Value);
}
// Get Cells
Cells cells = sheet.Cells;
foreach (Cell cell in cells)
{
Console.WriteLine(cell.Value);
}
' Get Cells
Dim cells As Cells = sheet.Cells
For Each cell As Cell In cells
Console.WriteLine(cell.Value)
Next cell
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()
您还可以检索公式及其值:
// 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()
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()
根據上述程式碼,您可以毫不費力地設置更多公式。
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")
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")
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)
7.2. 使用Aspose.Cells的轉換過程
在Aspose.Cells中轉換Excel xlsx文件同樣非常簡單。 請看下面的程式碼:
Excel to 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")
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")
Excel 工作表到 SVG 格式:
// Instantiate a workbook
var workbook = new Workbook();
// Populate worksheet's 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 worksheet's 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 worksheet's first cell
workbook.Worksheets(0).Cells("A1").Value = "DEMO TEXT ON SHEET1"
' Convert Worksheets
workbook.Save("ConvertWorksheetToSVG_out.svg")
8. 授权
IronXL是一個公開商業的C# Excel程式庫。 它是免費的開發且可以隨時用於商業部署。 授權可用於單一專案使用、單一開發者、機構以及國際公司,以及SaaS和OEM再分發。 所有授權包括30天退費保證、為期一年的產品支援及更新、開發/測試/生產環境的有效性,以及永久授權(一鍵購買)。 Lite套件起價於$999。
Aspose.Cells是一個商業專有的.NET程式庫。 評估版本提供所有產品功能,但在一個程式中只能開啟100個文件,且有一個含評估水印的額外工作表。 技術支援是免費且無限制的,並向已授權使用者和評估使用者提供。 如果您想在不受评價版本限制的情況下測試Aspose.Cells,請申請30天暫時授權或從链接購買授權版本。 小型商業套件開價於$1,175。
9. 結論
相比而言,IronXL和Aspose.Cells在處理Excel時是旗鼓相當的。 IronXL和Aspose.Cells均提供了高級Excel功能以及基礎Excel操作。 IronXL是免費供開發而Aspose.Cells有評估期,文件限於每個應用僅100個。 在這裡,對於非商業使用的情況,IronXL有優勢。 此外,IronXL還提供JSON格式的轉換。
常見問題
我如何在C#中建立Excel工作簿和工作表?
使用IronXL,您可以通過調用WorkBook.Create()輕鬆建立Excel工作簿,並使用CreateWorkSheet()新增新工作表。
使用IronXL管理Excel文件的好處是什麼?
IronXL提供了一個直觀的API,支持多種電子表格格式。它允許在不需要Microsoft Excel或Interop組件的情況下進行資料載入、公式操作、樣式設計和排序。
我如何在C#中將Excel文件轉換為JSON格式?
您可以使用IronXL將Excel文件轉換為JSON格式,通過存取電子表格中的資料並將其導出為JSON字串,從而實現無縫的資料交換。
該程式庫支持哪些平台的Excel文件處理?
IronXL支持多個平台,包括.NET Core、.NET Framework、Xamarin等,為各種C#應用程式提供多功能性。
我可以使用該程式庫操作Excel公式嗎?
是的,IronXL允許開發者操作Excel公式,使他們能夠在其電子表格文件中應用、修改和計算公式。
該程式庫如何促進跨平台開發?
Aspose.Cells提供了強大的API,用於跨平台應用程式開發,處理例如渲染圖表、應用公式和通過智能標記管理資料等任務。
該程式庫有哪些授權選項?
IronXL為開發目的提供免費版本,還有商業授權可用於部署。Aspose.Cells提供具有某些限制的評估版本,商業使用需要授權。
我如何為我的C#專案安裝該程式庫以管理Excel文件?
您可以使用Visual Studio中的NuGet Package Manager安裝IronXL或直接從NuGet網站下載。此外,您還可以使用提供的DLL手動安裝。
是否可以使用該程式庫將Excel文件轉換為其他格式?
是的,IronXL和Aspose.Cells都允許將Excel文件轉換為各種格式,例如CSV、JSON和HTML,提供靈活的資料交換選項。
Aspose.Cells有哪些高級功能?
Aspose.Cells包含高級功能,如將圖表和工作表渲染為圖像,應用複雜公式,以及通過智能標記管理資料,支持全面的Excel文件管理。



