跳至頁尾內容
與其他組件的比較

IronXL 與 FastExcel for .NET 的比較

當談到使用C#中的Excel文件時,有兩個最受歡迎的程式庫,就是IronXL,它是Iron Suite套件中的一個解決方案,以及FastExcel v4。這兩個程式庫都提供一系列工具和功能,可以幫助開發人員操作和管理Excel工作簿。 這兩個軟體各自都很出色,但僅僅出色是不夠的。 我們將評估每個提供的功能,以確定哪一個是滿足您需求的最佳選擇。 在本文中,我們將比較IronXL和FastExcel v4,強調每個程式庫的優勢和劣勢,並提供如何在C#中使用這兩者的範例。

如何讀取Excel資料並插入到資料庫表中:圖1 - FastExcel V4檢查工作簿

FastExcel v4

FastExcel v4是一個多緒的C#程式庫家族,提供管理Excel工作簿的工具。 FastExcel v4的最新版本引入了新功能,如Tables Sheet Manager Pro,簡化了定義名稱的管理,以及FastExcel SpeedTools,有助於減少工作簿膨脹。

使用FastExcel v4,開發人員可以根據需要選擇自動和手動計算方法。 該程式庫提供一系列廣泛的工具,用於操作工作表和工作簿,包括對無限公式和計算的支持。

FastExcel v4的一個主要優勢是它的速度。 該程式庫被設計為即使在處理大型或複雜的工作簿時也能保持高效。 它包括多緒計算,能顯著加速計算過程,並提供管理記憶體使用和優化性能的工具。

FastExcel v4: 功能集

  • 讀取和寫入XLSX格式的Excel文件。
  • 使用LINQ從Excel文件中讀取資料。
  • 支持資料驗證和錯誤處理。
  • 用於讀寫Excel文件的高性能串流API。
  • 支持多緒處理以加快大型Excel文件的處理速度。
  • 與.NET Framework和.NET Core相容。
  • 與流行的程式庫如LINQ、Entity Framework和Apache Spark的整合。

IronXL

IronXL是一個強大的C#程式庫,使開發人員能夠以程式化的方式操作和建立Excel文件。 它提供了熟悉的C#語法和方法來讀取、寫入和修改Excel文件,無需任何外部依賴或額外的軟體安裝。

使用IronXL,開發人員可以使用一系列簡化Excel文件操作的功能和工具。 這包括支持多種Excel文件格式、操作工作表和表格的能力,以及管理定義名稱、數字格式等的工具。 該程式庫還支持自動和手動計算模式,配合多緒Excel計算以優化性能。

使用IronXL, 開發人員可以輕鬆建立新Excel工作簿,向現有工作簿新增資料,並使用C#程式碼操作Excel公式和計算。 該程式庫還包括強大的除錯工具和功能,如Formula Explorer與Tables Sheet Manager,這些有助於排除故障和優化Excel程式碼。

IronXL 功能集

  • 載入、讀取以及編輯各種文件格式的資料,如XLS,XLSX,CSV和TSV。
  • 將資料以不同的文件格式導出並保存,包括XLS,XLSX,CSV,TSV和JSON。
  • 使用System.Data物件,使使用者能將Excel System.Data.DataTable物件來工作。
  • 支持Excel公式,每次編輯工作表時重新計算。
  • 允許使用者直觀地使用簡單的WorkSheet語法建立和合併範圍。
  • 提供範圍、列和行的排序和過濾功能。
  • 允許使用者根據自己的喜好設置單元格風格,包括視覺風格、字體、大小、背景圖案、邊框、對齊和數字格式。

使用FastExcel v4操作Excel文件

要開始使用FastExcel v4,您需要從官方網站下載最新版本。您可以使用試用版本來評估該程式庫,然後購買完整授權版本。 安裝了FastExcel v4之後,您即可開始使用其工具來幫助您管理Excel文件。

如何讀取Excel資料並插入到資料庫表中:圖2 - ClosedXML NuGet安裝

操控Excel文件

FastExcel v4提供了一系列工具,可用於在C#中操控Excel文件。 您可以使用FastExcel v4來打開和保存Excel工作簿、操控工作表、管理定義名稱等等。 以下是如何使用FastExcel v4操控Excel文件的一些範例:

開啟和保存Excel工作簿

using (var workbook = new Workbook(@"C:\Test\MyWorkbook.xlsx"))
{
    // Do some work on the workbook here.
    workbook.Save();
}
using (var workbook = new Workbook(@"C:\Test\MyWorkbook.xlsx"))
{
    // Do some work on the workbook here.
    workbook.Save();
}
Using workbook As New Workbook("C:\Test\MyWorkbook.xlsx")
	' Do some work on the workbook here.
	workbook.Save()
End Using
$vbLabelText   $csharpLabel

操控工作表

using (var workbook = new Workbook(@"C:\Test\MyWorkbook.xlsx"))
{
    var worksheet = workbook.Worksheets["Sheet1"];
    // Do some work on the worksheet here.
}
using (var workbook = new Workbook(@"C:\Test\MyWorkbook.xlsx"))
{
    var worksheet = workbook.Worksheets["Sheet1"];
    // Do some work on the worksheet here.
}
Using workbook As New Workbook("C:\Test\MyWorkbook.xlsx")
	Dim worksheet = workbook.Worksheets("Sheet1")
	' Do some work on the worksheet here.
End Using
$vbLabelText   $csharpLabel

管理定義名稱

using (var workbook = new Workbook(@"C:\Test\MyWorkbook.xlsx"))
{
    var definedNames = workbook.DefinedNames;
    // Do some work on the defined names here.
}
using (var workbook = new Workbook(@"C:\Test\MyWorkbook.xlsx"))
{
    var definedNames = workbook.DefinedNames;
    // Do some work on the defined names here.
}
Using workbook As New Workbook("C:\Test\MyWorkbook.xlsx")
	Dim definedNames = workbook.DefinedNames
	' Do some work on the defined names here.
End Using
$vbLabelText   $csharpLabel

優化計算

FastExcel v4最大的優勢之一是能夠優化Excel工作簿中的計算。 隨著工作簿大小和複雜性增加,Excel計算可能會成為瓶頸。 FastExcel v4提供了幫助優化計算和提升性能的工具。

如何讀取Excel資料並插入到資料庫表中:圖3 - 購買FastExcel V3 - 幫助您更快運行Excel - 決策模型

自動和手動計算

預設情況下,Excel工作簿使用自動計算,即每當單元格更改時Excel就會重新計算公式。 這可能會比較耗時,特別是在大型工作簿中。 FastExcel v4允許您在自動和手動計算之間切換,這可以顯著提高性能。 以下是如何切換到手動計算的範例:

using (var workbook = new Workbook(@"C:\Test\MyWorkbook.xlsx"))
{
    workbook.CalculationMode = CalculationMode.Manual;
    // Do some work on the workbook here.
}
using (var workbook = new Workbook(@"C:\Test\MyWorkbook.xlsx"))
{
    workbook.CalculationMode = CalculationMode.Manual;
    // Do some work on the workbook here.
}
Using workbook As New Workbook("C:\Test\MyWorkbook.xlsx")
	workbook.CalculationMode = CalculationMode.Manual
	' Do some work on the workbook here.
End Using
$vbLabelText   $csharpLabel

陣列計算瓶頸

在Excel工作簿中,陣列計算也可能成為瓶頸。 FastExcel v4提供了幫助優化陣列計算和提升性能的工具。 以下是如何使用FastExcel v4來優化陣列計算的範例:

using (var workbook = new Workbook(@"C:\Test\MyWorkbook.xlsx"))
{
    workbook.OpenCalculationMethods = OpenCalculationMethods.ArrayFormulas;
    // Do some work on the workbook here.
}
using (var workbook = new Workbook(@"C:\Test\MyWorkbook.xlsx"))
{
    workbook.OpenCalculationMethods = OpenCalculationMethods.ArrayFormulas;
    // Do some work on the workbook here.
}
Using workbook As New Workbook("C:\Test\MyWorkbook.xlsx")
	workbook.OpenCalculationMethods = OpenCalculationMethods.ArrayFormulas
	' Do some work on the workbook here.
End Using
$vbLabelText   $csharpLabel

如何讀取Excel資料並插入到資料庫表中:圖4 - 優化陣列計算

FastExcel Profiler

FastExcel Profiler是一款對優化Excel計算非常有價值的工具。 FastExcel Profiler提供有關於計算問題、過多膨脹和其他可能影響Excel工作簿性能的問題的詳細資訊。 以下是使用FastExcel Profiler來優化計算的範例:

using (var workbook = new Workbook(@"C:\Test\MyWorkbook.xlsx"))
{
    using (var profiler = new FastExcelProfiler(workbook))
    {
        // Do some work on the workbook here.
        profiler.DisplayReport();
    }
}
using (var workbook = new Workbook(@"C:\Test\MyWorkbook.xlsx"))
{
    using (var profiler = new FastExcelProfiler(workbook))
    {
        // Do some work on the workbook here.
        profiler.DisplayReport();
    }
}
Using workbook As New Workbook("C:\Test\MyWorkbook.xlsx")
	Using profiler = New FastExcelProfiler(workbook)
		' Do some work on the workbook here.
		profiler.DisplayReport()
	End Using
End Using
$vbLabelText   $csharpLabel

Tables Sheet Manager Pro

FastExcel TableSheet Manager Pro是FastExcel v4家族中的另一個強大工具。 它提供幫助您管理Excel工作簿中表格的工具。 Tables Sheet Manager Pro允許您在單個工作表中輕鬆管理無限數量的表格,這可以顯著減少多餘膨脹並提升性能。 以下是如何使用Tables Sheet Manager Pro的範例:

using (var workbook = new Workbook(@"C:\Test\MyWorkbook.xlsx"))
{
    using (var manager = new TableSheetManagerPro(workbook))
    {
        // Do some work on the tables here.
    }
}
using (var workbook = new Workbook(@"C:\Test\MyWorkbook.xlsx"))
{
    using (var manager = new TableSheetManagerPro(workbook))
    {
        // Do some work on the tables here.
    }
}
Using workbook As New Workbook("C:\Test\MyWorkbook.xlsx")
	Using manager = New TableSheetManagerPro(workbook)
		' Do some work on the tables here.
	End Using
End Using
$vbLabelText   $csharpLabel

數字格式

FastExcel v4還提供幫助您管理Excel工作簿中數字格式的工具。 您可以使用FastExcel v4向工作簿中的單元格、列和行應用數字格式。 以下是如何使用FastExcel v4應用數字格式的範例:

using (var workbook = new Workbook(@"C:\Test\MyWorkbook.xlsx"))
{
    var worksheet = workbook.Worksheets["Sheet1"];
    var column = worksheet.Columns["A"];
    column.Style.NumberFormat = "#,##0.00";
}
using (var workbook = new Workbook(@"C:\Test\MyWorkbook.xlsx"))
{
    var worksheet = workbook.Worksheets["Sheet1"];
    var column = worksheet.Columns["A"];
    column.Style.NumberFormat = "#,##0.00";
}
Using workbook As New Workbook("C:\Test\MyWorkbook.xlsx")
	Dim worksheet = workbook.Worksheets("Sheet1")
	Dim column = worksheet.Columns("A")
	column.Style.NumberFormat = "#,##0.00"
End Using
$vbLabelText   $csharpLabel

Formula Explorer

FastExcel v4提供一個Formula Explorer工具,允許您查看Excel工作簿中的公式。 Formula Explorer可以幫助您排除公式錯誤並優化計算。 以下是如何使用Formula Explorer的範例:

using (var workbook = new Workbook(@"C:\Test\MyWorkbook.xlsx"))
{
    using (var explorer = new FormulaExplorer(workbook))
    {
        // Do some work on the formulas here.
    }
}
using (var workbook = new Workbook(@"C:\Test\MyWorkbook.xlsx"))
{
    using (var explorer = new FormulaExplorer(workbook))
    {
        // Do some work on the formulas here.
    }
}
Using workbook As New Workbook("C:\Test\MyWorkbook.xlsx")
	Using explorer = New FormulaExplorer(workbook)
		' Do some work on the formulas here.
	End Using
End Using
$vbLabelText   $csharpLabel

使用IronXL操控Excel文件

開始使用IronXL,您需要安裝IronXL套件。 您可以通過NuGet套件管理器或從IronXL網站下載該套件。安裝套件之後,您即可開始在C#專案中使用IronXL。

開啟和保存工作簿:要使用IronXL打開Excel工作簿,您可以使用以下程式碼:

WorkBook workbook = WorkBook.Load(@"C:\Test\MyWorkbook.xlsx");
WorkBook workbook = WorkBook.Load(@"C:\Test\MyWorkbook.xlsx");
Dim workbook As WorkBook = WorkBook.Load("C:\Test\MyWorkbook.xlsx")
$vbLabelText   $csharpLabel

這將打開位於指定路徑的工作簿。 您也可以使用以下程式碼建立一個新工作簿:

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

要使用IronXL保存工作簿,您可以使用以下程式碼:

workbook.SaveAs(@"C:\Test\MyWorkbook.xlsx");
workbook.SaveAs(@"C:\Test\MyWorkbook.xlsx");
workbook.SaveAs("C:\Test\MyWorkbook.xlsx")
$vbLabelText   $csharpLabel

這將把工作簿保存到指定路徑。

如何讀取Excel資料並插入到資料庫表中:圖5 - 保存工作簿

操控Excel工作表

要使用IronXL操控工作簿中的工作表,您可以使用以下程式碼:

WorkSheet worksheet = workbook.WorkSheets["Sheet1"];
WorkSheet worksheet = workbook.WorkSheets["Sheet1"];
Dim worksheet As WorkSheet = workbook.WorkSheets("Sheet1")
$vbLabelText   $csharpLabel

這將從工作簿中獲取名為"Sheet1"的工作表。 然後您可以根據需要操作該工作表。

管理定義名稱

IronXL提供幫助您管理Excel工作簿中定義名稱的工具。 您可以使用以下程式碼建立一個定義名稱:

worksheet.DefineName("MyRange", worksheet.Range("A1:B10"));
worksheet.DefineName("MyRange", worksheet.Range("A1:B10"));
worksheet.DefineName("MyRange", worksheet.Range("A1:B10"))
$vbLabelText   $csharpLabel

這將建立一個名為MyRange的定義名稱,指的是工作表中的範圍A1:B10。

如何讀取Excel資料並插入到資料庫表中:圖6 - CSV清單

應用數字格式

要使用IronXL向單元格或單元格範圍應用數字格式,您可以使用以下程式碼:

worksheet["A1"].Style.NumberFormat.Format = "#,##0.00";
worksheet["A1"].Style.NumberFormat.Format = "#,##0.00";
worksheet("A1").Style.NumberFormat.Format = "#,##0.00"
$vbLabelText   $csharpLabel

這將為工作表中的單元格A1應用數字格式"#,##0.00"。

優化計算

IronXL提供幫助您優化Excel工作簿中的計算的工具。 要優化計算,您可以使用以下程式碼:

workbook.SetAutomaticCalculation(false);
workbook.SetAutomaticCalculation(false);
workbook.SetAutomaticCalculation(False)
$vbLabelText   $csharpLabel

這將關閉工作簿中的自動計算。 然後您可以使用以下程式碼手動計算工作簿:

workbook.Calculate();
workbook.Calculate();
workbook.Calculate()
$vbLabelText   $csharpLabel

這將計算工作簿中所有的公式。

如何讀取Excel資料並插入到資料庫表中:圖7 - 所有公式已計算

比較

FastExcel和IronXL都是使用C#語言操控Excel文件的強大程式庫。 雖然兩個程式庫都提供類似的功能,但還是有一些關鍵的差異使它們有別於對方。

FastExcel是一個專注於提升Excel計算性能的程式庫,特別是在處理大型資料集時。 它提供了自動和手動計算、優化陣列計算瓶頸及開放計算方法等功能。 FastExcel還提供如FastExcel Profiler和FastExcel SpeedTools等工具,協助管理和優化Excel工作簿。

另一方面,IronXL是一個優先考慮易用性和靈活性的程式庫。 它提供了一系列廣泛的工具,幫助開發人員使用C#程式碼操控Excel文件。 這些工具中包括管理定義名稱的能力、使用無限數量的工作表及簡單管理數字格式。 IronXL還支持多緒Excel計算,使其在處理大型資料集時成為一個絕佳選擇。

儘管FastExcel和IronXL對於操控C#中的Excel文件都是強大的程式庫,IronXL有一些優勢,這使得它成為許多開發人員的首選。 首先,IronXL擁有一個更直觀的API,使其更容易使用和學習。 其次,IronXL比FastExcel更實惠,這使得它成為較小專案或預算有限團隊的更好選擇。

此外,IronXL是一個相對輕量級的程式庫,相較於FastExcel。 它沒有FastExcel那樣的多餘膨脹,這會拖慢性能並使管理大型Excel工作簿更加困難。

儘管FastExcel和IronXL對於C#中的Excel文件都是可用的程式庫,由於它的易用性、經濟實惠和輕便特性,IronXL是首選。

結論

總之,當比較FastExcel和IronXL時,很明顯這兩個程式庫都提供了一系列強大的工具和功能,用於使用C#程式碼操控Excel文件。 然而,這兩個程式庫之間有一些關鍵差異,使IronXL成為許多開發人員的首選。

從技術角度來看,IronXL提供了一個更直觀和使用者友好的API,使其更容易學習和使用,適合各種技能水平的開發人員。 IronXL還提供了一個輕量級的程式庫,沒有可能拖慢性能並使管理大型Excel工作簿更加困難的多餘膨脹。 相反,FastExcel更多地側重於提升Excel計算性能,但比起IronXL可能更複雜和難以使用。

此外,IronXL提供了一個比FastExcel更實惠的授權模型,這使得它成為較小專案或預算有限團隊的更好選擇。 擁有全功能授權的IronXL版本,開發人員可以存取所有功能和工具,無需額外的費用或限制。

總體而言,IronXL是那些優先考慮易用性、價位和輕量級性能的開發人員的首選。 依靠其強大的工具和功能,包括多緒Excel計算和支持無限數量的工作表,IronXL對任何在C#程式碼中操控Excel文件的開發人員來說都是一個無價的工具。

對於那些有興趣購買IronXL的人,Iron Software提供了一個特別優惠,客戶可以用兩個產品的價格購買Iron Software的五個產品。 這包括IronXL,以及其他用於處理PDF文件、OCR等的強大程式庫。 此優惠為需要一系列工具來支持其專案的開發人員提供了卓越的價值。

下載產品軟體。

請注意FastExcel v4是其各自所有者的註冊商標。 此網站不隸屬於、得到FastExcel v4的認可或支持。所有產品名稱、標誌和商標均為其各自所有者的財產。 比較僅供資訊參考,反映了撰寫時公開可用的資訊。

常見問題

IronXL 的主要功能是什麼?

IronXL 提供多執行緒計算,支援各種 Excel 文件格式,如 XLS、XLSX、CSV 和 TSV,並具備工作表、公式和數字格式管理工具,而不需要外部依賴。

如何使用 C# 程式庫優化 Excel 計算?

您可以使用 IronXL 的多執行緒計算能力來優化 Excel 計算,這會在處理複雜或大型資料集時提高性能和效率。

我可以使用這個程式庫管理 Excel 公式嗎?

可以,IronXL 支援管理 Excel 公式,允許他們在每次編輯後重新計算。它包含如公式瀏覽器等工具,用於排除故障和優化計算。

IronXL 如何支援不同的 Excel 文件格式?

IronXL 能載入、讀取和編輯多個格式如 XLS、XLSX、CSV 和 TSV 的資料。它也允許將資料導出為 JSON 等格式,提供靈活的資料格式處理。

IronXL 適合預算有限的開發者嗎?

是的,IronXL 以其價格實惠而聞名,是預算有限的開發者合適的選擇。它提供了全面的功能集,沒有多餘的臃腫,確保物有所值。

IronXL 是否需要任何外部軟體安裝?

不,IronXL 獨立運行,無需任何外部依賴或額外的軟體安裝,對開發者來說是一個方便的選擇。

IronXL 成為一個使用者友好的 Excel 操作程式庫的原因是什麼?

IronXL 因其直觀的語法和輕量化的特性而受到讚譽,這使得所有技能層級的開發者都能輕鬆使用。它提供了 C# 中 Excel 文件操作的簡單解決方案。

購買 IronXL 時有特別優惠嗎?

是的,Iron Software 提供特別優惠,顧客可以以兩個產品的價格購買他們的全部五個產品,包括 IronXL,對需要多種工具的開發者提供很好的價值。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話