跳過到頁腳內容
使用 IRONXL

如何在 C# 中處理 Excel 文件

在現今的現代程式設計範式中,使用程式語言處理 Microsoft Excel 文件已成為一項重要需求。 Excel generation is required for automation, data analysis, measuring productivity, reports, etc. IronXL from Iron Software is a powerful C# library that allows developers to read, write, and manipulate Excel documents without needing Microsoft Excel installed on the machine in any application like web services, console, desktop, etc. This makes it an excellent choice for applications that need to handle Excel data efficiently and effectively. 在本文中,我們將探討如何使用 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 是一個設計為輕鬆創建、讀取和編輯 Excel 文件的強大 .NET 程式庫。 它具有直觀的 API,可簡化 Excel 文件的操作,支持多種格式如 XLS、XLSX 和 CSV。這種多樣性允許輕鬆操作單元格值、公式和格式。 IronXL 針對性能進行了優化,能夠有效地處理大型文件和複雜數據操作,同時確保有效的內存使用。 其跨平台兼容性提高了其實用性,使 IronXL 成為針對不同操作系統的開發人員的寶貴工具。 以下是一些主要特性和優勢:

主要特性

  1. 導入和導出:

    • 導入數據:支持 XLS、XLSX、CSV 和 TSV 格式。
    • 導出數據:可以將工作表導出為 XLS、XLSX、CSV、TSV 和 JSON 格式。
  2. 數據操作:

    • System.Data 集成:可以將電子表格作為 System.Data.DataSetSystem.Data.DataTable 對象進行操作。
    • 公式:支持 Excel 公式,每次編輯工作表時均會重新計算。
  3. 樣式和格式化:

    • 單元格樣式:自定字體、大小、背景圖案、邊框、對齊和數字格式。
    • 範圍:使用 WorkSheet["A1:B10"] 語法進行直觀的範圍設置。
  4. 安全性:

    • 加密:使用密碼加密和解密 XLSX、XLSM 和 XLTX 文件。
  5. 跨平台兼容性:
    • 支持 .NET Framework、.NET Core、.NET Standard 和 Azure。
    • 與 Windows、macOS、Linux、Docker、Azure 和 AWS 兼容。

優勢

  1. 不需要 Microsoft Office:IronXL 不需要安裝 Microsoft Office,輕便且易於部署。
  2. 易用性: API 直觀易用,使開發人員能快速將 Excel 功能集成到其應用程式中。
  3. 性能: IronXL 針對性能進行了優化,確保了大型 Excel 文件的快速和高效處理。
  4. 多樣性: 適合各種應用範例,包括網頁、桌面和基於雲的解決方案。
  5. 全面文檔: 提供豐富的文檔和示例,便於開發人員快速上手和找到常見問題的解決方案。

開始使用

要在 .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
SHELL

如何在 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
$vbLabelText   $csharpLabel

代碼解釋

  1. 我們添加 IronXL 命名空間以開始使用程式庫。
  2. 然後我們創建一個 Excel 對象來使用 WorkBook.Create() 創建一個 XLSX 文件。
  3. 然後調用 CreateWorkSheet 方法創建工作簿中的工作表。
  4. 使用 workSheet["A1"].Value 向單元格添加值。
  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
$vbLabelText   $csharpLabel

代碼解釋

  1. 使用 WorkBook.Create 創建一個 Excel 文件。
  2. 使用 workBook.CreateWorkSheet 創建工作表。
  3. 使用 workSheet["A1"].Value 為單元格添加值。
  4. 使用單元格上的屬性對每個單元格進行樣式設置,如 workSheet["A1"].Style.Font.Bold
  5. 使用 workBook.SaveAs 保存工作簿。

輸出 Excel 文件

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

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

既然我們已經看到了如何創建 Excel 文件,讓我們看看以下代碼如何使用 IronXL 讀取 Excel 文件並執行一些內存中的計算。

using IronXL;
using System;

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.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;
using System;

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.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
Imports System

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.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
End Namespace
$vbLabelText   $csharpLabel

代碼解釋

  1. 我們使用 WorkBook.Load 將示例 Excel 文件加載到內存中。
  2. 訪問工作簿中的第一個工作表。
  3. 讀取特定單元格的值並使用 Console.WriteLine 顯示它。
  4. 遍歷單元格範圍並打印出每個值。 每次走到 H 列的末尾時都會打印行。
  5. 計算範圍 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
End Namespace
$vbLabelText   $csharpLabel

代碼解釋

  1. 使用 Load 方法加載 Excel 文件 "sampleEmployeeData.xlsx"。
  2. 使用 HtmlExportOptions 設置轉換為 HTML 的選項。
  3. 使用 ExportToHtml 方法進行轉換並將工作簿保存為 HTML 文件。

輸入

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

輸出

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

真實世界的使用案例

IronXL 是一個多功能的 .NET 程式庫,擁有廣泛的真實世界應用,包括:

1. 商業報告:

  • 自動生成定期報告,如銷售匯總、財務報表和績效指標。
  • 創建自定義儀表板,從各種來源提取數據並以 Excel 格式呈現。

2. 數據分析:

  • 處理大型數據集,以進行統計分析、數據清理和數據轉換。
  • 將分析數據導出到 Excel 以供進一步檢查和與利益相關者分享。

3. 庫存管理:

  • 管理產品庫存,創建和更新 Excel 表格以顯示庫存水平、供應商詳情和補單點。
  • 生成庫存報告以跟踪庫存流動並識別趨勢。

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

  • 將客戶數據從 CRM 系統導出到 Excel 進行詳細分析和報告。
  • 通過從 Excel 文件導入修改後的數據來更新 CRM 記錄。

5. 教育機構:

  • 創建和維護學生成績簿、考勤記錄、以及進度報告。
  • 為教師和學生生成考試成績和詳細的表現分析。

6. 金融服務:

  • 自動化創建金融模型、預算和 Excel 預測。
  • 從多個來源整合財務數據,進行全面的財務報告。

7. 人力資源:

  • 管理員工數據,包括聯系方式、薪資信息和績效評估。
  • 生成 HR 指標報告,如員工人數、流失率和員工人口統計。

8. 項目管理:

  • 使用 Excel 表格跟踪項目時間線、里程碑和資源分配。
  • 在 Excel 內直接創建甘特圖和其他項目管理工具。

9. 電子商務:

  • 將訂單詳情、客戶信息和銷售數據從電子商務平台導出到 Excel。
  • 分析銷售趨勢、客戶行為和產品表現。

10. 醫療保健:

  • 管理患者記錄、約診安排和治療計劃。
  • 分析醫療數據以識別模式並改善患者護理。

IronXL 許可

IronXL 是 Iron Software 的 Iron Suite 產品組合中的企業級程式庫。 它需要許可才能運行。 用戶可以從這裡使用他們的電子郵件 ID 下載試用許可。 數據輸入完成後,許可將會發送至所提供的電子郵件 ID。 此許可需要放置於代碼開頭,使用 IronXL 程式庫之前。

License.LicenseKey = "your Key Here";
License.LicenseKey = "your Key Here";
License.LicenseKey = "your Key Here"
$vbLabelText   $csharpLabel

結論

IronXL 是一個強大的 .NET 程式庫,用於創建、讀取和編輯 Excel 文件,提供直觀的 API,簡化了 Excel 文件操作過程。 它支持廣泛的 Excel 格式,包括 XLS、XLSX 和 CSV,為各種使用案例提供了靈活性。 IronXL 允許輕鬆操作單元格值、公式和格式,並針對性能進行了優化,有效處理大型文件和複雜操作。 其高效的內存管理確保了響應迅速的應用程式,其跨平台兼容性使其成為開發人員在不同操作系統上工作的寶貴工具。

常見問題解答

如何在未安裝 Microsoft Excel 的情況下以 C# 操作 Excel 文件?

您可以使用 IronXL,這是一個來自 Iron Software 的 C# 函式庫,來讀取、寫入和操作 Excel 文件,而不需要 Microsoft Excel。它支持多種格式,如 XLS、XLSX 和 CSV,並可用於網路服務、桌面和控制台等應用程序。

設置一個 Visual Studio 專案以在 C# 中處理 Excel 涉及哪些步驟?

要設置一個用於在 C# 中操作 Excel 的 Visual Studio 專案,請通過 NuGet 套件管理器安裝 IronXL。使用命令:dotnet add package IronXL.Excel --version 2024.8.5 在套件管理器控制台中將函式庫添加到您的專案。

我可以使用 C# 進行 Excel 文件中的計算嗎?

是的,使用 IronXL,您可以在 Excel 文件中進行計算。該函式庫支持 Excel 公式,使您可以在 C# 應用程序中直接自動化計算。

如何使用 C# 將 Excel 文件轉換為 HTML?

IronXL 提供了 ExportToHtml 方法,可以將 Excel 文件轉換為 HTML。此方法允許自定義選項,以確保 HTML 輸出符合您的要求。

使用 IronXL 在 C# 中操作 Excel 文件有哪些好處?

IronXL 提供了易於使用的直觀 API,為處理大型 Excel 文件提供了優化的性能,並且在多種應用中具有多功能性。其跨平台兼容性和全面的文檔進一步提高了其實用性。

我可以使用 IronXL 對 Excel 單元格應用高級樣式嗎?

是的,使用 IronXL,您可以對 Excel 單元格應用高級樣式,如自定義字體、大小、顏色、邊框和對齊方式,使用每個單元格的 Style 屬性。

IronXL 是否適合跨平台的 Excel 文件操作?

是的,IronXL 設計為支持跨平台,與 Windows、macOS、Linux 及 Docker、Azure 和 AWS 等環境兼容,使其適合於各種部署場景。

如何在 C# 中使用 IronXL 讀取 Excel 文件中的單元格值?

使用 IronXL,您可以通過加載文件使用 WorkBook.Load,選擇工作表並使用地址訪問特定單元格值或範圍。

IronXL 為何成為在 C# 中處理 Excel 文件的強大工具?

IronXL 強大之處在於其支持多種格式(XLS、XLSX、CSV),公式和樣式功能,安全加密,以及在不同操作系統上高效處理大型文件的能力。

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