跳過到頁腳內容
使用 IRONXL

如何在 C# 中開啟 Excel 文件和撰寫數據

本文將探討IronXL庫,以示範如何在 C# 控制台應用程式中開啟 Microsoft Excel 檔案並向其中寫入資料。

IronXL - 一個 Excel 庫

IronXL是一個.NET Excel 函式庫,它簡化了在 C# 應用程式中建立、讀取和編輯 Excel 檔案的過程。 它具有卓越的性能和精準的輸出。 此程式庫支援所有Excel工作簿檔案類型,包括XLS、XLSX、XLSM、CSV和TSV。此外,它還允許將資料保存或匯出為JSON、HTML、二進位、位元組數組、資料集或資料表等格式。

借助IronXL,開發人員可以無縫地處理工作表和單元格區域。 它提供了在工作表中編輯公式並輕鬆重新計算公式的功能。 按範圍、列或行對資料進行排序非常簡單。 該庫提供了修改佈局的功能,例如凍結窗格自動調整行/列大小以及新增/刪除行/列

IronXL也支援使用使用者密碼和編輯權限來保護Excel 檔案。 另一個值得注意的功能是能夠從 Excel 工作表中新增、刪除和擷取影像。 該程式庫提供各種 Excel 函數,支援多種儲存格資料格式。 這些特性使IronXL成為處理 Excel 檔案最用戶友好的 API 之一。

IronXL的一個顯著優勢是它不需要在電腦上安裝 Microsoft Excel,從而消除了對 Office Interop 或任何其他依賴項的需求。 它相容於多個平台,支援.NET 7、6 和 5。它也相容於.NET Core 2 和 3,以及.NET Framework 4.5 及更高版本,可用於處理 Excel 電子表格。

建立控制台應用程式

建議使用最新版本的 Visual Studio IDE 來建立應用程式。 Visual Studio 是 C# 開發的官方 IDE,假設您已經安裝了它。 如果您還沒有安裝 Visual Studio,可以從Microsoft Visual Studio 官方網站下載。

請依照下列步驟建立一個名為"DemoApp"的新專案。

  1. 開啟 Visual Studio,然後按一下"建立新專案"

    如何在 C# 中開啟 Excel 檔案並寫入數據,圖 1:新專案 新專案

  2. 選擇"控制台應用程式",然後按一下"下一步"。

    如何在 C# 中開啟 Excel 檔案並寫入數據,圖 2:新專案類型 新項目類型

  3. 輸入項目名稱

    如何在 C# 中開啟 Excel 檔案並寫入數據,圖 3:新專案名稱 新項目名稱

  4. 選擇.NET版本。 選擇穩定版.NET 6.0。

    如何在 C# 中開啟 Excel 檔案並寫入數據,圖 4:新專案附加資訊 新項目補充訊息

安裝IronXL庫

專案建立完成後,需要將IronXL庫安裝到專案中才能使用它。 請依照以下步驟進行安裝。

  1. 從解決方案資源管理器或工具中開啟"管理解決方案的NuGet套件"。

    如何在 C# 中開啟 Excel 檔案並寫入數據,圖 5: NuGet套件管理器 NuGet套件管理器

  2. 瀏覽IronXL庫並選擇目前項目。 點選安裝。

    如何在 C# 中開啟 Excel 檔案並寫入數據,圖 6:在NuGet套件管理器 UI 中搜尋並安裝IronXL套件 在NuGet套件管理器 UI 中搜尋並安裝IronXL套件。

Program.cs 檔案頂部新增以下命名空間

using IronXL;
using IronXL;
$vbLabelText   $csharpLabel

Open an Existing Excel File in C

IronXL提供了開啟現有 Excel 檔案的功能,您也可以建立新的 Excel 檔案。本範例將使用 C# IronXL開啟一個現有檔案。

// Supported spreadsheet formats for reading XLSX, XLS, XLSM, XLTX, CSV and TSV
WorkBook workBook = WorkBook.Load("sample.xlsx");
// Supported spreadsheet formats for reading XLSX, XLS, XLSM, XLTX, CSV and TSV
WorkBook workBook = WorkBook.Load("sample.xlsx");
$vbLabelText   $csharpLabel

現在,讓我們選擇它的第一個工作表。 您可以按索引號或名稱選擇工作表。 DefaultWorkSheet 屬性可以協助取得第一個工作表。

// Select worksheet at index 0
WorkSheet workSheet = workBook.WorkSheets[0];

// Select worksheet by name 
WorkSheet ws = workBook.GetWorkSheet("Sheet1"); 

// Get any existing worksheet
WorkSheet firstSheet = workBook.DefaultWorkSheet;
// Select worksheet at index 0
WorkSheet workSheet = workBook.WorkSheets[0];

// Select worksheet by name 
WorkSheet ws = workBook.GetWorkSheet("Sheet1"); 

// Get any existing worksheet
WorkSheet firstSheet = workBook.DefaultWorkSheet;
$vbLabelText   $csharpLabel

上面的程式碼從 Excel 工作簿中取得第一個工作表。 若要建立包含資料的新 Excel 文件,請查看此程式碼範例頁面

現在,讓我們使用IronXL物件庫將資料寫入 Excel 檔案。

Write Data to Excel File in C

使用IronXL將資料寫入 Excel 檔案非常簡單。 實現此目的的方法有很多種,但最簡單的方法是使用 Excel 儲存格參考。

// Access A1 cell and write the value
workSheet["A1"].Value = "Value using cell reference";
// Access A1 cell and write the value
workSheet["A1"].Value = "Value using cell reference";
$vbLabelText   $csharpLabel

也可以將資料寫入一系列儲存格。 以下程式碼將儲存格 B1 到 B5 中的資料寫入資料。

// Write the same value to cells from B1 to B5
workSheet["B1:B5"].Value = "Range value";
// Write the same value to cells from B1 to B5
workSheet["B1:B5"].Value = "Range value";
$vbLabelText   $csharpLabel

我們也可以使用 for 迴圈來填滿範圍,使其成為動態的。 程式碼如下:

// Specify range in which we want to write the values
for (int i = 1; i <= 5; i++)
{
    // Write the Dynamic value in column C
    workSheet["C" + i].Value = "Value: " + i;

    // Write the Dynamic value in column D
    workSheet["D" + i].Value = "Value: " + i;
}
// Specify range in which we want to write the values
for (int i = 1; i <= 5; i++)
{
    // Write the Dynamic value in column C
    workSheet["C" + i].Value = "Value: " + i;

    // Write the Dynamic value in column D
    workSheet["D" + i].Value = "Value: " + i;
}
$vbLabelText   $csharpLabel

將資料寫入 Excel 檔案的另一種方法是使用Replace方法。

// Replace the value in cell D5
workSheet["D5"].Replace("Value: 5", "Replaced Value");
// Replace the value in cell D5
workSheet["D5"].Replace("Value: 5", "Replaced Value");
$vbLabelText   $csharpLabel

Save an Excel File in C

本節介紹如何儲存包含新寫入內容的 Excel 檔案。

// Save the updated Excel workbook to a file
workBook.SaveAs("sample.xlsx");
// Save the updated Excel workbook to a file
workBook.SaveAs("sample.xlsx");
$vbLabelText   $csharpLabel

完整的程式碼如下:

using System;
using IronXL;

class Program
{
    static void Main(string[] args)
    {
        // Supported spreadsheet formats for reading XLSX, XLS, XLSM, XLTX, CSV and TSV
        WorkBook workBook = WorkBook.Load("sample.xlsx");

        // Select worksheet at index 0
        WorkSheet workSheet = workBook.WorkSheets[0];

        // Access A1 cell and write the value
        workSheet["A1"].Value = "Value using cell reference";

        // Write the same value to cells from B1 to B5
        workSheet["B1:B5"].Value = "Range value";

        // Specify range in which we want to write the values
        for (int i = 1; i <= 5; i++)
        {
            // Write the Dynamic value in column C
            workSheet["C" + i].Value = "Value: " + i;

            // Write the Dynamic value in column D
            workSheet["D" + i].Value = "Value: " + i;
        }

        // Replace the value in cell D5
        workSheet["D5"].Replace("Value: 5", "Replaced Value");

        // Save the updated Excel workbook to a file
        workBook.SaveAs("sample.xlsx");
        Console.WriteLine("Successfully written to Excel File");
    }
}
using System;
using IronXL;

class Program
{
    static void Main(string[] args)
    {
        // Supported spreadsheet formats for reading XLSX, XLS, XLSM, XLTX, CSV and TSV
        WorkBook workBook = WorkBook.Load("sample.xlsx");

        // Select worksheet at index 0
        WorkSheet workSheet = workBook.WorkSheets[0];

        // Access A1 cell and write the value
        workSheet["A1"].Value = "Value using cell reference";

        // Write the same value to cells from B1 to B5
        workSheet["B1:B5"].Value = "Range value";

        // Specify range in which we want to write the values
        for (int i = 1; i <= 5; i++)
        {
            // Write the Dynamic value in column C
            workSheet["C" + i].Value = "Value: " + i;

            // Write the Dynamic value in column D
            workSheet["D" + i].Value = "Value: " + i;
        }

        // Replace the value in cell D5
        workSheet["D5"].Replace("Value: 5", "Replaced Value");

        // Save the updated Excel workbook to a file
        workBook.SaveAs("sample.xlsx");
        Console.WriteLine("Successfully written to Excel File");
    }
}
$vbLabelText   $csharpLabel

有關如何在 C# 中讀取 Excel 文件資料的更多詳細信息,請參閱此範例

輸出

文件的輸出結果為:

如何在 C# 中開啟 Excel 檔案並寫入數據,圖 7:輸出的 Excel 檔案 輸出的 Excel 文件

概括

本文示範如何使用IronXL在 C# 中將資料寫入 Excel 檔案。 IronXL提供了輕鬆處理現有 Excel 檔案的功能。 它還允許您建立新的 Excel 文件,並使用簡單的語法向其中寫入資料。 即使沒有安裝 Microsoft Excel 應用程序, IronXL也可以讀取 Excel 檔案。 要從 Excel 檔案讀取數據,您可以查看此程式碼範例頁面

IronXL可免費用於開發,並可授權用於商業用途。 您也可以試用IronXL 的商業用途免費試用版

常見問題解答

如何在 C# 中不使用 Interop 開啟 Excel 檔案?

您可以使用 IronXL 函式庫在 C# 中不使用 Interop 開啟 Excel 檔案。IronXL 允許您高效處理 Excel 檔案,無需安裝 Microsoft Excel,提高效能和相容性。

如何使用 C# 將資料寫入 Excel 檔案中的特定儲存格?

使用 IronXL,您可以通過存取活頁簿,選擇工作表,然後使用儲存格參照將值寫入所需儲存格來寫入資料。

使用 IronXL 比 Office Interop 在 Excel 檔案操作上有什麼優勢?

IronXL 比 Office Interop 有幾個優勢,包括不依賴 Microsoft Excel 安裝、提高效能、跨平台相容性,以及支援多種 Excel 檔案格式,如 XLS、XLSX 和 CSV。

我可以使用這個函式庫編輯 Excel 檔案中的公式嗎?

可以,IronXL 允許您編輯 Excel 檔案中的公式。您可以操控現有公式或使用簡單語法插入新公式,函式庫會有效處理這些公式。

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

IronXL 支援多種 Excel 檔案格式,如 XLS、XLSX、XLSM、CSV 和 TSV,讓您可以在 C# 應用程式中無縫創建、讀取和編輯這些檔案。

可以使用 IronXL 保護 Excel 檔案嗎?

可以,IronXL 提供功能設置使用者密碼和權限來保護 Excel 檔案,以確保資料安全與管控存取權限。

如何將 IronXL 函式庫整合到我的 C# 專案中?

要將 IronXL 整合到您的 C# 專案中,您可以在 Visual Studio 使用 NuGet 套件管理器,搜尋 IronXL 並將其添加到您的專案以開始使用其功能。

IronXL 支持哪些平台?

IronXL 支援多個平台,包括 .NET 5、6 和 7,還有 .NET Core 和 Framework,使其成為適合各種開發環境的多功能選擇。

我可以免費使用 IronXL 嗎?

IronXL 可免費用於開發用途。然而,商業使用需要許可。如果要在商業環境中測試函式庫的功能,提供的免費試用版可用。

如何使用 IronXL 將 Excel 資料匯出為 JSON?

IronXL 允許您將 Excel 資料匯出為 JSON 格式,通過將工作表或特定資料範圍轉換為 JSON 字串,然後在需要 JSON 資料的應用程式中使用。

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

鋼鐵支援團隊

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