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

IronXL 與 Aspose Cells 的比較

運用 Excel 檔案產生報表和建立資料庫的能力已成為當今軟體應用必備的技能。 現在有許多函式庫可以讓使用者無需使用 Microsoft Excel 就能完成這項工作。

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

IronXL和 Aspose Cells 都提供了在.NET Framework中建立、編輯和讀取 Excel 文件的方法。 The next question is to decide which C# Excel library is best suited to your project. 本文將協助您確定最適合您套用場景的方案。

我們先來看看這兩個函式庫各自的功能,然後再進行比較。

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 物件 — 以 System.Data.DataSet 和 System.Data.DataTable 物件的形式處理 Excel 電子表格。
  • 公式 — 支援 Excel 公式。 每次編輯工作表時,公式都會重新計算。
  • 範圍 — 易於使用的工作表 ["A1:B10"] 語法。 直觀地組合和創建範圍。
  • 排序 — 對範圍、列和行進行排序。
  • 樣式 — 儲存格視覺樣式、字體、大小、背景圖案、邊框、對齊方式和數字格式。

細胞

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

透過整合 API,開發人員可以執行一些基本任務,例如管理多個工作表、從頭開始建立電子表格內容和樣式、從不同的資料來源將資料匯入工作表、添加常見和複雜的數學、財務和文字公式、操作圖表、圖片、註釋、繪製物件等等。

細胞 Excel電子表格API功能

以下是 Aspose Cells 的一些突出特點:

渲染

  • 圖表轉圖像。 將工作表轉換為影像。
  • 印刷。

資料處理

  • 套用格式設定。
  • 應用公式。 總結。
  • 智慧標記。

網格套件

  • 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 ,從"項目類型"清單中選擇控制台
  • 從顯示的專案範本中選擇控制台應用程式(.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套件。 您可以透過"專案"功能表存取它,或在"解決方案資源管理器"中右鍵單擊您的專案。

選擇

接下來,從瀏覽標籤中搜尋IronXl.Excel,然後安裝。

搜尋IronXL

——我們完成了。

2.2. 直接下載NuGet包

可以透過直接訪問NuGet網站並下載軟體包來完成此操作。 步驟如下:

2.3. 使用 DLL 手動安裝

下載和安裝IronXL C# 庫的另一種方法是使用下列步驟透過開發人員命令提示字元安裝IronXL NuGet套件

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

輸入以下命令:

Install-Package IronXl.Excel
  • 按回車鍵。 這將下載並安裝軟體包。
  • 重新載入您的 Visual Studio 專案並開始使用它。

2.4. 加入必要的 using 指令

  1. 在解決方案資源管理器中,右鍵點選Program.cs文件,然後按一下"檢視程式碼"。
  2. 在程式碼檔案的頂部新增以下 using 指令:
using IronXL;
using 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 資料夾中。

輸入以下命令:

Install-Package Aspose.Cells
  • 按回車鍵。 這將下載並安裝軟體包。
  • 重新載入您的 Visual Studio 專案並開始使用它。

3.3. 直接下載

You can download any version of Aspose Cells directly from the website by clicking on this link: https://downloads.aspose.com/cells/net

或者:

download from the NuGet website: https://www.nuget.org/packages/Aspose.Cells/

3.4. 加入必要的 using 指令

  1. 在解決方案資源管理器中,右鍵點選Program.cs文件,然後按一下"檢視程式碼"。
  2. 在程式碼檔案的頂部新增以下 using 指令:
using Aspose.Cells;
using Aspose.Cells;
$vbLabelText   $csharpLabel

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

IronXL可以建立 XLS(舊版 Excel 檔案)和 XLSX(目前及更新版檔案)兩種檔案格式。

而且,建立預設工作表就更簡單了:

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

現在您可以使用工作表變數來設定儲存格值,並執行 Excel 檔案可以執行的幾乎所有操作。

儲存Excel檔案:

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

儲存Excel檔案:

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

每個工作簿可以包含多個工作表物件。 這些代表 Excel 文件中的工作表。 如果工作簿包含工作表,請以下列方式按名稱擷取它們:

// Open Sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
// Open Sheet for reading
var 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);
}
$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 = 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");
$vbLabelText   $csharpLabel

讀取單元格值的程式碼:

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

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

8. 許可

IronXL是一個開源的商業 C# Excel 函式庫。 它可免費用於開發,並可隨時獲得商業部署許可。 Licenses are available for single-project use, single developers, agencies, and global corporations, as well as SaaS and OEM redistribution. 所有許可證均包含 30 天退款保證、一年產品支援和更新、適用於開發/測試/生產環境,以及永久許可證(一次性購買)。 Lite 軟體包從 $799 開始。

Aspose Cells 是一個開源 API,可以授權用於商業用途。 Aspose.Cells 產品的評估版本提供完整的產品功能,但僅限於在一個程式中開啟 100 個文件,並且還有一個帶有評估浮水印的額外工作表。 技術支援免費且不限次數,授權使用者和評估使用者均可享有此服務。 If you want to test Aspose.Cells without evaluation version limitations, request a 30-day temporary license or buy a licensed version from this link. 開發者的小型企業套餐起價為 1199 美元。

9. 結論

相較之下, IronXL和 Aspose.Cells 在處理 Excel 時勢均力敵。 IronXL和 Aspose.Cells 都提供進階 Excel 函數以及基本的 Excel 操作。 IronXL可免費用於開發,而 Aspose.Cells 有一個評估期,每個應用程式的檔案數量限制為 100 個。 對於非商業用途而言, IronXL具有優勢。 此外, IronXL也提供了與 JSON 格式之間的轉換。

請注意Aspose 是其各自所有者的註冊商標。 本網站與 Aspose 公司沒有任何關聯,也未獲得 Aspose 的認可或贊助。 所有產品名稱、標誌和品牌均為其各自所有者的財產。 比較僅供參考,反映的是撰寫本文時可公開取得的資訊。

常見問題解答

如何在 C# 中創建 Excel 工作簿和工作表?

使用 IronXL,您可以通過調用 WorkBook.Create() 輕鬆創建 Excel 工作簿,並使用 CreateWorkSheet() 添加新工作表。

使用 IronXL 進行 Excel 文件管理有什麼好處?

IronXL 提供了一個直觀的 API,支持各種電子表格格式。它允許數據加載、公式操作、樣式設定和排序,而不需要 Microsoft Excel 或 Interop 組件。

如何將 Excel 文件轉換為 C# 中的 JSON 格式?

您可以使用 IronXL 通過訪問電子表格中的數據並將其導出為 JSON 字符串來將 Excel 文件轉換為 JSON 格式,從而實現無縫的數據交換。

該庫支持哪些平台進行 Excel 文件處理?

IronXL 支持包括 .NET Core、.NET Framework、Xamarin 和其他平台,使其適用於各種 C# 應用程序。

我可以使用該庫操作 Excel 公式嗎?

是的,IronXL 允許開發人員使用 Excel 公式,使他們能夠在其電子表格文檔中應用、修改和計算公式。

該庫如何促進跨平台開發?

Aspose.Cells 提供了一個強大的 API 用於跨平台應用程序開發,處理渲染圖表、應用公式和使用智能標記管理數據等任務。

該庫有哪些授權選項?

IronXL 提供一個免費版本供開發使用,商業許可證可供部署使用。Aspose.Cells 提供具有一定限制的評估版,商業用途需要許可證。

如何在我的 C# 項目中安裝該庫以管理 Excel 文件?

您可以使用 Visual Studio 中的 NuGet 包管理器安裝 IronXL,或直接從 NuGet 網站下載。此外,您還可以使用提供的 DLL 手動安裝它。

是否可以使用該庫將 Excel 文件轉換為其他格式?

是的,IronXL 和 Aspose.Cells 都允許將 Excel 文件轉換為各種格式,如 CSV、JSON 和 HTML,提供靈活的數據交換選項。

Aspose.Cells 的一些高級功能是什麼?

Aspose.Cells 包括高級功能,例如將圖表和工作表渲染為圖像、應用複雜公式以及使用智能標記管理數據,以支持全面的 Excel 文檔管理。

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

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me