在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
能夠處理 Excel 文件以生成報告和建立資料庫,已成為當今軟體應用程式的基本需求。 現在有許多函式庫可用,允許使用者在沒有 Microsoft Excel 的情況下完成此操作。
在本文中,我們將討論並比較如何使用兩個最受歡迎的程式庫,IronXL 和 Aspose Cells,在 C# .NET 技術中以程式化的方式處理 Microsoft Excel 文件。
IronXL 和 Aspose Cells 都提供在 .NET 框架中創建、編輯和讀取 Excel 文件的方法。 下一個問題是決定哪一個 C# Excel 庫 最適合您的專案。 本文將幫助您為您的應用程式決定最佳選擇。
首先,我們來看看這兩個庫的提供內容,然後進行比較。
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#。
Aspose.Cells for .NET 是一個 Excel 電子表格編程 API,用於加速電子表格管理和處理任務。 該 API 支援構建具備產生、修改、轉換、呈現和列印電子表格能力的跨平台應用程式。 此外,它不依賴於安裝 Microsoft Excel 或任何 Microsoft Office Interop 組件,而是提供了一套強大的 API,可處理所有 Excel 格式以及 CSV 和 SpreadsheetML 格式。
通過整合 API,開發人員可以執行基本任務,例如管理多個工作表,從頭創建試算表的內容和樣式,從不同的數據來源導入數據到工作表中,添加常見和複雜的數學、金融及文本公式,操作圖表、圖片、註解、繪圖對象等。
以下是 Aspose Cells 的一些突出功能:
渲染
列印
資料處理
智慧標記
Grid Suite
匯入/匯出資料
本文章的其餘部分如下:
建立主控台應用程式
IronXL C# 程式庫安裝
Aspose Cells 安裝
創建並保存新的 Excel 工作簿和工作表
讀取 Excel 檔案
使用 Excel 公式
相互轉換檔案
授權
使用以下步驟來創建一個控制台應用程式:
在 附加資訊 畫面中,指定您要使用的 Framework 版本。 在此範例中,我們將使用 .NET Framework 4.8。
點擊創建以完成該流程。
現在專案已建立,我們幾乎準備好測試這些函式庫。 但是,我們仍然需要安裝並將它們整合到我們的專案中。 讓我們先安裝IronXL。
您可以使用以下方法下載並安裝IronXL庫:
使用 Visual Studio 與 NuGet 套件。
直接下載 NuGet 套件。
手動安裝 DLL。
讓我們更仔細地看看每一個。
Visual Studio 提供 NuGet 套件管理器以在您的專案中安裝 NuGet 套件。 您可以通過專案選單存取它,或在方案總管中右鍵點擊您的專案。
接著,從瀏覽標籤 -> 搜尋 IronXL.Excel -> 安裝
這可以透過直接訪問 NuGet 網站並下載套件來完成。 步驟如下:
另一種下載和安裝IronXL C#庫的方法是通過開發者命令提示符,使用以下步驟來安裝IronXL NuGet套件。
打開 Developer Command Prompt — 通常位於 Visual Studio 文件夾中。
輸入以下命令:
PM > Install-Package IronXL.Excel
在方案總管中,右鍵點擊 Program.cs 檔案,然後點擊檢視程式碼。
using IronXL;
using IronXL;
Imports IronXL
全部完成! IronXL 已下載、安裝並準備使用。 然而,在此之前,我們應該安裝 Microsoft.Office.Interop.Excel。
在創建專案後,通過專案選單或在方案總管中右鍵點擊您的專案來訪問 NuGet 套件管理員。
另一種下載和安裝 Aspose Cells C# 庫的方法是通過開發人員命令提示字元使用以下步驟來安裝 NuGet 封裝。
打開 Developer Command Prompt — 通常位於 Visual Studio 文件夾中。
輸入以下命令:
PM> Install-Package Aspose.Cells
您可以通過點擊此鏈接直接從網站下載任何版本的 Aspose Cells: https://downloads.aspose.com/cells/net
或:
從 NuGet 網站下載: https://www.nuget.org/packages/Aspose.Cells/
在方案總管中,右鍵點擊 Program.cs 檔案,然後點擊檢視程式碼。
using Aspose.Cells;
using Aspose.Cells;
Imports Aspose.Cells
工作簿是一個包含多個具有行和列的工作表的 Excel 文件。 這兩個庫都提供創建新 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)
這兩個XLS(較舊的 Excel 文件版本)和XLSX(當前及較新版本檔案)可以使用IronXL建立檔案格式。
而且,創建一個預設的工作表更簡單:
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")
在創建試算表及其內容之前,必須創建一個許可證對象,以避免購買許可版本時的評估限制。 代碼如下:
// 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")
這兩個庫都可以打開和讀取現有的 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
在 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")
讀取儲存格數值的程式碼:
//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
Excel公式是使用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()
使用 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()
按照上面的程式碼,您可以輕鬆地設置更多公式。
IronXL 和 Aspose Cells 都提供了將 Excel xlsx 檔案轉換為不同格式的功能,並且可以將不同格式轉換為 Excel 活頁簿。
過程非常簡單且容易。 通常只需一行代碼即可完成。
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)
在 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")
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 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")
IronXL 是一個開放商業的 C# Excel 函式庫。 它在開發時免費,並且始終可以獲得商業部署的許可。 授權可用 單專案使用、單一開發人員、代理商和全球企業,以及 SaaS 和 OEM 重新分發。 所有授權均包含30天退款保證、一年的產品支援和更新,有效於開發/測試/生產環境,並且還有永久授權。(一次性購買). Lite 套裝的起價為 $749。
Aspose Cells 是一個開源 API,可以獲得商業使用許可。 Aspose.Cells 產品的評估版本提供完整的產品功能,但在一個程式中最多只能開啟 100 個檔案,並具有包含評估浮水印的附加工作表。 技術支持免費且無限制,並提供給持有許可證和評估版的用戶。 如果您想在沒有評估版本限制的情況下測試 Aspose.Cells,請申請 30 天臨時授權或從此購買授權版本。 連結. 開發者小型企業套裝價格自 $1199 起。
相比之下,IronXL 和 Aspose.Cells 在處理 Excel 時正面交鋒。 IronXL和Aspose.Cells都提供進階的Excel功能以及基本的Excel操作。 IronXL 在開發過程中是免費的,而 Aspose.Cells 則有評估期,每個應用程式的文件數量限制為 100。 在這裡,IronXL 在非商業用途中具有優勢。 此外,IronXL 也提供與 JSON 格式之間的轉換。