跳過到頁腳內容
使用 IRONXL

如何在 C# 中處理 Excel 文件

在現今現代程式設計範式中,使用程式語言處理 Microsoft Excel 檔案已成為一項重要要求。 Excel 產生功能在自動化、資料分析、生產力評估、報告產生等方面都至關重要。 Iron Software出品的IronXL是一款功能強大的 C# 庫,它允許開發人員在無需安裝 Microsoft Excel 的情況下,在 Web 服務、控制台、桌面等任何應用程式中讀取、寫入和操作 Excel 文件。這使其成為需要高效處理 Excel 資料的應用程式的理想選擇。 在本文中,我們將探討如何使用 IronXL 在 C# 中處理 Excel 檔案。

如何在 C# 中操作 Excel 工作簿

  1. 建立一個 Visual Studio 專案並新增 IronXL NuGet 套件。
  2. 建立一個不含互通性的 Excel 檔案。
  3. 使用 IronXL 為 Excel 檔案新增樣式。
  4. 從 Excel 讀取數值並進行計算。
  5. 將 Excel 轉換為 HTML 以便在網頁上使用。

IronXL 圖書館簡介

IronXL 是一個功能強大的 .NET 程式庫,可以簡化 Excel 檔案的操作。 IronXL 是一個功能強大的 .NET 程式庫,旨在輕鬆建立、讀取和編輯 Excel 檔案。 它擁有直覺的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 - Target 框架

點擊"創建"按鈕後,項目將被創建並可使用。 開啟解決方案資源管理器以查看專案文件。

如何在 C# 中處理 Excel 檔案:圖 5 - 解決方案資源管理器

現在,讓我們按照上面的範例,從 NuGet 套件管理器安裝 IronXL 庫。

步驟 2:建立一個不含互通性的 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 輸入

Output

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

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

現在我們已經知道如何產生、讀取和寫入 Excel 文件,讓我們來看看如何將 Excel 轉換為 HTML 以便在 Web 上使用。

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 檔案並儲存。

Input

如何在 C# 中處理 Excel 檔案:圖 10 - Web 的 Excel 輸入

Output

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

實際使用案例

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

1. 業務報告:

  • 自動產生定期報告,例如銷售摘要、財務報表和績效指標。
  • 建立自訂儀表板,從各種來源提取資料並以 Excel 格式呈現。

2. 數據分析:

  • 處理大型資料集,以執行統計分析、資料清洗和資料轉換。
  • 將分析後的資料匯出到 Excel 中,以便進一步檢查並與利害關係人共用。

3. 庫存管理:

  • 透過建立和更新包含庫存水準、供應商詳細資訊和再訂購點的 Excel 表格來管理產品庫存。
  • 產生庫存報告,追蹤庫存變動並識別趨勢。

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

  • 將 CRM 系統中的客戶資料匯出到 Excel 中進行詳細分析和報告。
  • 透過從 Excel 檔案匯入修改後的資料來更新 CRM 記錄。

5. 教育機構:

  • 建立和維護學生成績冊、考勤記錄和進度報告。
  • 為教師和學生產生考試成績和詳細的成績分析。

6. 金融服務:

  • 在 Excel 中自動建立財務模型、預算和預測。
  • 整合來自多個來源的財務數據,以進行全面的財務報告。

7. 人力資源:

  • 管理員工數據,包括聯絡資訊、薪資資訊和績效評估。
  • 產生有關人力資源指標的報告,例如員工人數、離職率和員工人口統計。

8. 專案管理:

  • 使用 Excel 表格追蹤專案時程、里程碑和資源分配。
  • 直接在 Excel 中建立甘特圖和其他專案管理工具。

9. 電子商務

  • 將電子商務平台上的訂單詳情、客戶資訊和銷售資料匯出到 Excel。
  • 分析銷售趨勢、顧客行為和產品績效。

10. 醫療保健:

  • 使用 Excel 管理病人記錄、預約安排和治療計劃。
  • 分析醫療保健數據,以發現模式並改善患者護理。

IronXL 授權

IronXL 是 Iron Software 公司 Iron Suite 產品系列中的企業級庫。 運行需要許可證。 使用者可在此處使用其電子郵件 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 檔案?

您可以使用 Iron 軟體的 C# 函式庫 IronXL 來讀取、寫入和處理 Excel 文件,而不需要 Microsoft Excel。它支援 XLS、XLSX 和 CSV 等多種格式,並可在 Web 服務、桌面和主控台等應用程式中使用。

設定 Visual Studio 專案以在 C# 中使用 Excel 時,需要哪些步驟?

若要設定 Visual Studio 專案,以便在 C# 中使用 IronXL.Excel,請透過 NuGet 套件管理員安裝 IronXL。使用命令dotnet add package IronXL.Excel --version 2024.8.5在套件管理員控制台中將函式庫加入您的專案。

我可以使用 C# 在 Excel 檔案中執行計算嗎?

是的,使用 IronXL,您可以在 Excel 檔案中執行計算。該函式庫支援 Excel 公式,可讓您直接在 C# 應用程式中自動進行計算。

如何使用 C# 將 Excel 檔案轉換為 HTML?

IronXL.Excel 提供 ExportToHtml 方法將 Excel 檔案轉換為 HTML。此方法允許自訂選項,以確保 HTML 輸出符合您的需求。

在 C# 中使用 IronXL.Excel 進行 Excel 檔案操作有哪些好處?

IronXL.Excel 具備直覺式 API 的易用性、處理大型 Excel 檔案的最佳化效能,以及適用於各種應用程式的多功能性。其跨平台相容性和全面的說明文件更進一步增強了其實用性。

我可以使用 IronXL.Excel 為 Excel 單元格套用進階的樣式嗎?

是的,使用 IronXL.Excel,您可以為 Excel 單元格套用進階樣式,例如使用每個單元格上的樣式屬性自訂字型、大小、顏色、邊框和對齊方式。

IronXL 是否適合跨平台 Excel 檔案處理?

是的,IronXL 的設計是跨平台的,相容於 Windows、macOS、Linux,以及 Docker、Azure 和 AWS 等環境,非常適合各種不同的部署情境。

如何使用 C# 中的 IronXL.Excel 從 Excel 檔案讀取儲存格值?

透過 IronXL,您可以使用 WorkBook.Load 載入檔案,選擇工作表,並使用其位址存取特定的儲存格值或範圍,從 Excel 檔案讀取儲存格值。

是什麼讓 IronXL 成為用 C# 處理 Excel 檔案的強大工具?

IronXL 功能強大,因為它支援多種格式 (XLS、XLSX、CSV)、公式和樣式化功能、安全加密,以及能在不同作業系統中有效率地處理大型檔案。

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