使用IRONXL

如何在 C# 中處理 Excel 文件

發佈 2024年9月29日
分享:

介紹

在現代程式設計範式中,使用程式設計語言處理 Microsoft Excel 文件已成為一個重要需求。 Excel 生成用於自動化、數據分析、生產力測量、報告等。 IronXLIron Software 是一個強大的 C# 函式庫,允許開發人員在不需要在機器上安裝 Microsoft Excel 的情況下,在任何應用程式(如網路服務、控制台、桌面等)中讀取、寫入和操作 Excel 文件。這使它成為需要高效和有效處理 Excel 數據的應用程式的出色選擇。 在本文中,我們將探討如何使用IronXL在C#中處理Excel文件。

如何在 C# 中使用 Excel 工作簿

  1. 建立一個 Visual Studio 專案並添加 IronXL NuGet 套件。

  2. 无需 Interop 創建 Excel 文件。

  3. 使用 IronXL 為 Excel 文件添加樣式。

  4. 從 Excel 讀取數值並進行計算。

  5. 將 Excel 轉換為 HTML 以用於網頁。

介紹 IronXL 庫

IronXL 是一個強大的 .NET 庫,簡化了 Excel 文件的操作。 IronXL 是一個強大的 .NET 函式庫,專為輕鬆創建、讀取和編輯 Excel 文件而設計。 它具有直觀的API,簡化了Excel文件的操作,支持多種格式如XLS、XLSX和CSV。這種多樣性允許輕鬆操作單元格值、公式和格式。 IronXL 經過性能優化,能夠高效處理大型文件和複雜資料操作,同時確保記憶體使用的效率。 其跨平台的相容性提升了其實用性,使 IronXL 成為開發人員在不同作業系統上不可或缺的工具。 以下是其主要功能和優勢:

主要功能

  1. 導入和導出: 1. 導入數據:支持XLS、XLSX、CSV和TSV格式。

  2. 匯出資料:可以匯出工作表為XLS、XLSX、CSV、TSV和JSON格式。

  3. 資料操作:

  4. System.Data 整合:以 `System.Data.DataSet` 和 `System.Data.DataTable` 物件的形式處理電子試算表。

  5. 公式:支持 Excel 公式,每次編輯工作表時都會重新計算。

  6. 樣式和格式化:

  7. 儲存格樣式:自訂字體、大小、背景樣式、邊框、對齊和數字格式。

  8. 範圍:使用 WorkSheet 進行直觀的範圍設置["A1:B10"]` 語法。

  9. 安全性:

    加密:使用密碼加密和解密XLSX、XLSM和XLTX文件。5. 跨平台相容性: 1. 支援 .NET Framework、.NET Core、.NET Standard,以及 Azure。2. 兼容 Windows、macOS、Linux、Docker、Azure 和 AWS。

好處

  1. 不需要 Microsoft Office: IronXL 不需要安裝 Microsoft Office,使其輕量化並易於部署。

  2. 使用方便:API 直觀且易於使用,使開發者能夠快速將 Excel 功能整合到其應用程式中。3. 效能:IronXL 針對效能進行優化,以確保快速高效地處理大型 Excel 文件。

  3. 多功能性:適用於各種應用,包括網路、桌面及雲端解決方案。全面的文件:提供豐富的文件和範例,幫助開發人員更輕鬆地入門並找到常見問題的解決方案。

入門

要在您的 .NET 專案中使用 IronXL,您需要確保您的開發環境符合以下先決條件:

先決條件

  1. .NET Framework:IronXL 支援 .NET Framework 4.5 及更高版本的 .NET 技術。

  2. .NET Core 和 .NET Standard:兼容 .NET Core 2、3、5、6、7、8 和 9。支持 .NET Standard 2.0 和 2.1。

  3. 作業系統:適用於 Windows、macOS 和 Linux。 相容於 Docker、Azure 和 AWS 環境。

  4. 無需 Microsoft Office:IronXL 無需安裝 Microsoft Office 或 Excel Interop。

  5. 程式碼編輯器:任何視覺化的 C# 程式碼編輯器,例如 Visual Studio 等。

安裝

您可以通過 Visual Studio 的 NuGet 套件管理器或使用套件管理器控制台,使用以下命令安裝 IronXL:

dotnet add package IronXL.Excel --version 2024.8.5
dotnet add package IronXL.Excel --version 2024.8.5
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'dotnet add package IronXL.Excel --version 2024.8.5
VB   C#

如何在 C# 中使用 Excel 工作簿

要開始處理 Excel 文件,首先,我們來開發一個 Visual Studio 專案並添加 IronXL 庫。

步驟1:建立 Visual Studio 專案並添加 IronXL NuGet 套件

打開 Microsoft Visual Studio,選擇「建立新專案」選項以開始建立專案。

如何在 C# 中處理 Excel 檔案:圖 1 - 新專案

選擇您想要的專案模板,在此我們為了簡單起見選擇了主控台應用程式。

如何在 C# 中處理 Excel 文件:圖 2 - 控制台應用程序

現在輸入專案的名稱和位置。

如何在 C# 中處理 Excel 文件:圖 3 - 專案配置

選擇您偏好的 .NET Framework 版本。 我們已選擇我們機器上可用的最新版本。

如何在C#中處理Excel檔案:圖4 - 目標架構

當點擊建立按鈕後,專案將會被建立並準備好使用。 打開方案總管以檢查專案檔案。

如何在 C# 中處理 Excel 文件:圖 5 - 解決方案總管

現在,讓我們從 NuGet 套件管理器安裝 IronXL 函式庫,如上所示。

步驟 2:不使用 Interop 建立 Excel 文件

現在,我們來創建一個不使用 Microsoft Interop 庫的 Excel 文件。

using IronXL;
namespace WorkingWithIronXL
{
    public class Program
    {
        public static void Main()
        {
            // Create new Excel WorkBook Object
            WorkBook workBook = WorkBook.Create();
            // Create WorkSheet
            WorkSheet workSheet = workBook.CreateWorkSheet("newXlDemo");
            // Add data in new worksheet
            workSheet["A1"].Value = "IronXL is the best Excel library";           
            // Save the Excel file as XLSX
            workBook.SaveAs("myIronXlDemo.xlsx");
        }
    }
}
using IronXL;
namespace WorkingWithIronXL
{
    public class Program
    {
        public static void Main()
        {
            // Create new Excel WorkBook Object
            WorkBook workBook = WorkBook.Create();
            // Create WorkSheet
            WorkSheet workSheet = workBook.CreateWorkSheet("newXlDemo");
            // Add data in new worksheet
            workSheet["A1"].Value = "IronXL is the best Excel library";           
            // Save the Excel file as XLSX
            workBook.SaveAs("myIronXlDemo.xlsx");
        }
    }
}
Imports IronXL
Namespace WorkingWithIronXL
	Public Class Program
		Public Shared Sub Main()
			' Create new Excel WorkBook Object
			Dim workBook As WorkBook = WorkBook.Create()
			' Create WorkSheet
			Dim workSheet As WorkSheet = workBook.CreateWorkSheet("newXlDemo")
			' Add data in new worksheet
			workSheet("A1").Value = "IronXL is the best Excel library"
			' Save the Excel file as XLSX
			workBook.SaveAs("myIronXlDemo.xlsx")
		End Sub
	End Class
End Namespace
VB   C#

程式碼解釋

  1. 我們添加 IronXL 命名空間以開始使用該庫

  2. 接著,我們創建一個 Excel 物件,使用 WorkBook.Create 來建立一個 XLSX 文件。();

  3. 然後調用 CreateWorkSheet 方法在活頁簿中創建一個工作表。

  4. 使用 workSheet 將值添加到單元格["A1"]

  5. 然後使用 workBook.SaveAs 提供檔名來儲存 Excel 文件。

    輸出 Excel 文件

    如何在 C# 中處理 Excel 文件:圖 6 - Excel 輸出

步驟 3:使用 IronXL 為 Excel 文件添加樣式

現在讓我們看看如何為 Excel 儲存格添加樣式。

using IronXL;
namespace WorkingWithIronXL
{
    public class Program
    {
        public static void Main()
         {
            // Create a new workbook
            WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
            // Create a new worksheet
            WorkSheet workSheet = workBook.CreateWorkSheet("StyledSheet");
            // Add multiple values to cells
            workSheet["A1"].Value = "This Styled Text with Awesome IronXL library";
            workSheet["A2"].Value = 999999;
            // Apply styles to cells
            workSheet["A1"].Style.Font.Bold = true;
            workSheet["A1"].Style.Font.Italic = true;
            workSheet["A1"].Style.Font.Height = 14;
            workSheet["A1"].Style.Font.Color = "#FF0000"; // Red color
            workSheet["A2"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Double;
            workSheet["A2"].Style.BottomBorder.SetColor("#00FF00"); // Green color
            // Save the workbook
            workBook.SaveAs("myIronXlWriteDemo.xlsx");
        }
    }
}
using IronXL;
namespace WorkingWithIronXL
{
    public class Program
    {
        public static void Main()
         {
            // Create a new workbook
            WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
            // Create a new worksheet
            WorkSheet workSheet = workBook.CreateWorkSheet("StyledSheet");
            // Add multiple values to cells
            workSheet["A1"].Value = "This Styled Text with Awesome IronXL library";
            workSheet["A2"].Value = 999999;
            // Apply styles to cells
            workSheet["A1"].Style.Font.Bold = true;
            workSheet["A1"].Style.Font.Italic = true;
            workSheet["A1"].Style.Font.Height = 14;
            workSheet["A1"].Style.Font.Color = "#FF0000"; // Red color
            workSheet["A2"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Double;
            workSheet["A2"].Style.BottomBorder.SetColor("#00FF00"); // Green color
            // Save the workbook
            workBook.SaveAs("myIronXlWriteDemo.xlsx");
        }
    }
}
Imports IronXL
Namespace WorkingWithIronXL
	Public Class Program
		Public Shared Sub Main()
			' Create a new workbook
			Dim workBook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
			' Create a new worksheet
			Dim workSheet As WorkSheet = workBook.CreateWorkSheet("StyledSheet")
			' Add multiple values to cells
			workSheet("A1").Value = "This Styled Text with Awesome IronXL library"
			workSheet("A2").Value = 999999
			' Apply styles to cells
			workSheet("A1").Style.Font.Bold = True
			workSheet("A1").Style.Font.Italic = True
			workSheet("A1").Style.Font.Height = 14
			workSheet("A1").Style.Font.Color = "#FF0000" ' Red color
			workSheet("A2").Style.BottomBorder.Type = IronXL.Styles.BorderType.Double
			workSheet("A2").Style.BottomBorder.SetColor("#00FF00") ' Green color
			' Save the workbook
			workBook.SaveAs("myIronXlWriteDemo.xlsx")
		End Sub
	End Class
End Namespace
VB   C#

程式碼解釋

  1. 使用 WorkBook.Create 創建 Excel 文件

  2. 使用 workBook.CreateWorkSheet 創建工作表

  3. 使用 workSheet 向儲存格添加值["A1"].Value

  4. 使用工作表中的屬性為每個單元格添加樣式。["A1"].Style.Font.Bold

  5. 使用 workBook.SaveAs 儲存工作簿

    輸出 Excel 文件

    如何在 C# 中處理 Excel 文件:圖 7 - 有樣式的 Excel 輸出

步驟 4:從 Excel 讀取數值並計算

現在我們已經看到如何創建 Excel 文件,接下來讓我們來看看以下使用 IronXL 讀取 Excel 文件並進行一些內存計算的代碼。

using IronXL;
namespace WorkingWithIronXL
{
    internal class IronXlDemo
    {
        public static void ReadData()
        {
            // Load the Excel worksheet
            WorkBook workBook = WorkBook.Load("sampleEmployeeData.xlsx");
            // Select the first worksheet
            WorkSheet workSheet = workBook.WorkSheets[0];
            // Read a specific cell value
            int cellValue = workSheet["A2"].IntValue;
            Console.WriteLine($"Value in A2: {cellValue}");
            // Read a range of cells
            foreach (var cell in workSheet["A1:H10"])
            {
                //Console.WriteLine($"Cell {cell.AddressString} has value '{cell.Text}'");
                Console.Write($"{cell.Text}\t");
                if(cell.AddressString.Contains("H"))
                {
                    Console.WriteLine();
                }
            }
            // Calculate aggregate values
            decimal sum = workSheet["F2:F10"].Sum();
            Console.WriteLine($"Sum of F2:F10: {sum}");
        }
}
using IronXL;
namespace WorkingWithIronXL
{
    internal class IronXlDemo
    {
        public static void ReadData()
        {
            // Load the Excel worksheet
            WorkBook workBook = WorkBook.Load("sampleEmployeeData.xlsx");
            // Select the first worksheet
            WorkSheet workSheet = workBook.WorkSheets[0];
            // Read a specific cell value
            int cellValue = workSheet["A2"].IntValue;
            Console.WriteLine($"Value in A2: {cellValue}");
            // Read a range of cells
            foreach (var cell in workSheet["A1:H10"])
            {
                //Console.WriteLine($"Cell {cell.AddressString} has value '{cell.Text}'");
                Console.Write($"{cell.Text}\t");
                if(cell.AddressString.Contains("H"))
                {
                    Console.WriteLine();
                }
            }
            // Calculate aggregate values
            decimal sum = workSheet["F2:F10"].Sum();
            Console.WriteLine($"Sum of F2:F10: {sum}");
        }
}
Imports Microsoft.VisualBasic
Imports IronXL
Namespace WorkingWithIronXL
	Friend Class IronXlDemo
		Public Shared Sub ReadData()
			' Load the Excel worksheet
			Dim workBook As WorkBook = WorkBook.Load("sampleEmployeeData.xlsx")
			' Select the first worksheet
			Dim workSheet As WorkSheet = workBook.WorkSheets(0)
			' Read a specific cell value
			Dim cellValue As Integer = workSheet("A2").IntValue
			Console.WriteLine($"Value in A2: {cellValue}")
			' Read a range of cells
			For Each cell In workSheet("A1:H10")
				'Console.WriteLine($"Cell {cell.AddressString} has value '{cell.Text}'");
				Console.Write($"{cell.Text}" & vbTab)
				If cell.AddressString.Contains("H") Then
					Console.WriteLine()
				End If
			Next cell
			' Calculate aggregate values
			Dim sum As Decimal = workSheet("F2:F10").Sum()
			Console.WriteLine($"Sum of F2:F10: {sum}")
		End Sub
	End Class
VB   C#

程式碼說明

  1. 以下是以 Excel 物件模型儲存的員工資料

  2. 使用 IronXL,我們將 Excel 文件加載到記憶體並讀取第一個工作表。

  3. 然後我們遍歷每個單元格以獲取值並將其顯示在控制台上。

  4. 然後我們使用單元格 F2 到 F10 計算年齡總和,然後將其顯示在控制台上。

    輸入 Excel

    如何在 C# 中處理 Excel 文件:圖 8 - Excel 輸入

    輸出

    如何在 C# 中處理 Excel 文件:圖 9 - 控制台輸出

步驟5:將 Excel 轉換為 HTML 以用於網頁使用

現在我們已經知道如何生成、讀取和寫入 Excel 文件,讓我們看看如何將 Excel 轉換為 HTML 以供網頁使用。

using IronXL;
using IronXL.Options;
namespace WorkingWithIronXL
{
    internal class IronXlDemo
    {
        public static void ConvertToHtml()
        {
            WorkBook workBook = WorkBook.Load("sampleEmployeeData.xlsx");
            var options = new HtmlExportOptions()
            {
                // Set row/column numbers visible in HTML document
                OutputRowNumbers = true,
                OutputColumnHeaders = true,
                // Set hidden rows/columns visible in HTML document
                OutputHiddenRows = true,
                OutputHiddenColumns = true,
                // Set leading spaces as non-breaking
                OutputLeadingSpacesAsNonBreaking = true
            };
            // Export workbook to the HTML file
            workBook.ExportToHtml("workBook.html", options);
        }
}
using IronXL;
using IronXL.Options;
namespace WorkingWithIronXL
{
    internal class IronXlDemo
    {
        public static void ConvertToHtml()
        {
            WorkBook workBook = WorkBook.Load("sampleEmployeeData.xlsx");
            var options = new HtmlExportOptions()
            {
                // Set row/column numbers visible in HTML document
                OutputRowNumbers = true,
                OutputColumnHeaders = true,
                // Set hidden rows/columns visible in HTML document
                OutputHiddenRows = true,
                OutputHiddenColumns = true,
                // Set leading spaces as non-breaking
                OutputLeadingSpacesAsNonBreaking = true
            };
            // Export workbook to the HTML file
            workBook.ExportToHtml("workBook.html", options);
        }
}
Imports IronXL
Imports IronXL.Options
Namespace WorkingWithIronXL
	Friend Class IronXlDemo
		Public Shared Sub ConvertToHtml()
			Dim workBook As WorkBook = WorkBook.Load("sampleEmployeeData.xlsx")
			Dim options = New HtmlExportOptions() With {
				.OutputRowNumbers = True,
				.OutputColumnHeaders = True,
				.OutputHiddenRows = True,
				.OutputHiddenColumns = True,
				.OutputLeadingSpacesAsNonBreaking = True
			}
			' Export workbook to the HTML file
			workBook.ExportToHtml("workBook.html", options)
		End Sub
	End Class
VB   C#

程式碼解釋

  1. 在這裡,我們使用 Load 方法載入 Excel "sampleEmployeeData.xlsx"

  2. 然後使用 HtmlExportOptions 設定轉換為 HTML 的選項。

  3. 然後我們使用 ExportToHtml 方法轉換為 HTML。

    輸入

    如何在 C# 中處理 Excel 文件:圖 10 - 網頁的 Excel 輸入

    輸出

    如何在C#中處理Excel文件:圖11 - HTML輸出

實際使用案例

IronXL 是一個多功能的 .NET 程式庫,具有廣泛的實際應用,包括:

1. 商業報告:

  1. 自動化生成定期報告,例如銷售摘要、財務報表和績效指標。

  2. 建立自訂儀表板,從各種來源提取數據並以 Excel 格式呈現。

    2. 數據分析:

  3. 處理大型數據集以執行統計分析、數據清理和數據轉換。

  4. 將分析後的數據匯出到 Excel 以進行進一步的檢查和與相關方共享。

    3. 庫存管理:

  5. 透過建立和更新包含庫存水平、供應商詳細資訊和再訂購點的 Excel 表單來管理產品庫存。

  6. 生成庫存報告以追蹤庫存流動並識別趨勢。

    4. 客戶關係管理 (客戶關係管理)

  7. 將客戶資料從 CRM 系統匯出到 Excel 以進行詳細分析和報告。

  8. 透過從 Excel 文件匯入修改後的資料來更新 CRM 紀錄。

    5. 教育機構:

  9. 建立和維護學生成績冊、出勤記錄和進度報告。

  10. 生成考試結果和教師與學生的詳細表現分析。

    6. 金融服務:

  11. 在 Excel 中自動化建立財務模型、預算和預測。

  12. 整合來自多個來源的財務數據以進行全面的財務報告。

    7. 人力資源:

  13. 管理員工數據,包括聯絡詳情、薪資信息和績效評估。

  14. 生成有關人力資源指標的報告,如員工總數、流動率和員工人口統計數據。

    8. 專案管理:

  15. 使用 Excel 試算表跟踪專案時間線、里程碑和資源分配。

  16. 直接在Excel中創建甘特圖和其他專案管理工具。

    9. 電子商務

  17. 從電子商務平台匯出訂單詳情、客戶資訊及銷售數據到 Excel。

  18. 分析銷售趨勢、顧客行為和產品表現。

    10. 醫療保健:

  19. 在 Excel 中管理患者記錄、預約時間表和治療計劃。

  20. 分析醫療資料以識別模式並改善病人護理。

IronXL 授權

IronXL 是 IronSoftware 的 Iron Suite 產品組中的企業級庫。 它需要授權才能運行。 用戶可以使用他們的電子郵件 ID 從 下載試用許可證來使用 這裡. 一旦輸入資料,許可證將發送到提供的電子郵件地址。 在使用IronXL庫之前,必須將此授權放置在代碼的開頭,如下所示。

License.LicenseKey = "your Key Here"
License.LicenseKey = "your Key Here"
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'License.LicenseKey = "your Key Here"
VB   C#

結論

IronXL 是一個強大的 .NET 程式庫,用於建立、讀取和編輯 Excel 文件,提供直觀的 API,使得處理 Excel 文檔的過程更加簡單化。 它支持多種 Excel 格式,包括 XLS、XLSX 和 CSV,使其在各種應用場景中具有多功能性。 IronXL 允許輕鬆操控儲存格的值、公式和格式,並針對效能進行優化,可以高效處理大型文件和複雜操作。 其高效的記憶體管理確保應用程式反應迅速,並且其跨平台相容性使其成為在不同作業系統上工作的開發人員的一個寶貴工具。

< 上一頁
如何在C#中管理Excel範圍
下一個 >
如何在C#中將Excel匯入SQL Server

準備開始了嗎? 版本: 2024.10 剛剛發布

免費 NuGet 下載 總下載次數: 1,023,839 查看許可證 >