在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
能夠處理 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、Mobile、Linux、macOS 和 Azure。
IronXL 是 C# 用戶的領先 .NET Core 和 .NET Framework Excel 電子表格函式庫。
Aspose.Cells for .NET 是一個 Excel 試算表編程 API,可以加快試算表管理和處理任務。該 API 支持構建具有生成、修改、轉換、渲染和列印試算表功能的跨平台應用程序。此外,它不依賴於安裝 Microsoft Excel 或任何 Microsoft Office Interop 組件,而是提供了一套強大的 API,可以處理所有 Excel 格式以及 CSV 和 SpreadsheetML 格式。
通過整合 API,開發人員可以執行基本任務,例如管理多個工作表、從頭開始創建試算表內容和樣式、將來自不同數據源的數據導入工作表、添加常見和復雜的數學、財務和文本公式、操作圖表、圖片、評論、繪圖對象等諸多功能。
以下是 Aspose Cells 的一些突出功能:
渲染
數據處理
網格套件
本文的其餘部分如下:
請使用以下步驟來建立一個控制台應用程式:
現在專案已建立,我們幾乎準備好測試庫了。然而,我們仍需安裝並將其整合到我們的專案中。讓我們先安裝 IronXL。
您可以使用以下方式下載並安裝 IronXL 資料庫:
讓我們仔細看看每一個方法。
Visual Studio 提供了 NuGet 套件管理器來安裝專案中的 NuGet 套件。您可以通過專案選單存取它,或者在方案總管中右鍵點擊您的專案來進行操作。
這可以通過直接訪問 NuGet 網站並下載套件來完成。步驟如下:
另一種下載和安裝 IronXL C# 庫的方法是通過以下步驟使用開發人員命令提示符安裝 IronXL NuGet 包。
輸入以下命令:
PM > Install-Package IronXL.Excel
在方案總管中,右鍵點擊 Program.cs 文件,然後點擊檢視程式碼。
using IronXL;
using IronXL;
Imports IronXL
全部完成! IronXL 已經下載、安裝並準備使用。然而,在此之前,我們應該安裝 Microsoft.Office.Interop.Excel。
創建專案後,透過「專案」選單或在「方案總管」中右鍵點擊專案進入 NuGet 套件管理器。
另一種下載和安裝 Aspose Cells C# 庫的方法是通過開發者命令提示符安裝 NuGet 套件。請按照以下步驟進行操作:
輸入以下命令:
PM> Install-Package Aspose.Cells
您可以通過點擊此連結直接從網站下載任何版本的 Aspose Cells: https://downloads.aspose.com/cells/net
從 NuGet 網站下載: https://www.nuget.org/packages/Aspose.Cells/
在Solution Explorer中,右键点击Program.cs文件,然后点击View Code。
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")
您現在可以使用 worksheet 變數來設置單元格值並完成幾乎所有 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 格式之間的轉換。