如何在 C# | IronXl.Excel 中為 Excel 單元格新增註解

如何使用 C# 在 Excel 中新增註解(無需 Interop)

This article was translated from English: Does it need improvement?
Translated
View the article in English

使用 IronXL 的簡單 API 在 C# 中為 Excel 儲存格新增註解——無需互通。 只需在任何儲存格上呼叫 AddComment(),即可新增不會影響儲存格資料的註解、說明或解釋。

快速入門:一行程式碼即可在儲存格中新增註釋

透過一次方法調用,即可為任何 Excel 儲存格新增註解。 沒有互通性,沒有複雜性-只需在儲存格上呼叫 AddComment 即可完成。

  1. 使用NuGet套件管理器安裝https://www.nuget.org/packages/IronXl.Excel

    PM > Install-Package IronXl.Excel
  2. 複製並運行這段程式碼。

    IronXl.WorkBook.Create().DefaultWorkSheet["B2"].First().AddComment("Quick tip!", "Dev");
  3. 部署到您的生產環境進行測試

    今天就在您的專案中開始使用免費試用IronXL

    arrow pointer


如何在Excel單元格中新增註解?

AddComment 接受哪些參數?

選擇儲存格,然後使用 AddComment 方法為儲存格新增註解。 預設情況下,評論是不可見的。 將滑鼠懸停在單元格上即可查看註釋。 AddComment 方法接受三個參數:author(字串)和 isVisible(布林值)。 contentauthor 參數都是可選的,可以為空,允許您創建空評論或不帶作者署名的評論。

在.NET應用程式中使用 Excel 註解時,了解IronXL如何處理儲存格參考至關重要。 如果您是IronXL的新手,請查看全面的入門概述,以了解如何以程式設計方式處理 Excel 檔案的基本知識。 對於需要雲端部署的企業應用程序, IronXL可與Azure 環境AWS Lambda 函數無縫整合。

何時應該預設顯示評論?

為了保持電子表格的整潔外觀,Excel 通常預設隱藏批註。 但是,在建立培訓資料、提供詳細的資料輸入說明或突出顯示使用者必須立即看到的關鍵資訊等場景中,您可能需要可見的評論。 將 AddComment 的第三個參數設為 true,即可使註解在不懸停時可見。

對於更進階的 Excel 操作任務,包括從頭開始建立新的電子表格管理現有的工作表, IronXL提供了一套可以無縫協作的綜合工具。 在建立資料驅動型應用程式時,您可能還需要將 Excel 資料匯出為各種格式在不同的電子表格類型之間進行轉換

如果我為已經有註解的儲存格新增註解會發生什麼事?

當您在已包含註解的儲存格上呼叫 AddComment 時, IronXL會將現有註解替換為新註解。 此行為可確保您不會意外地在單一儲存格中建立重複評論。 如果需要保留現有評論內容,請先使用 Comment 屬性檢索該內容,然後在新增更新後的評論之前連接或合併該內容。

:path=/static-assets/excel/content-code-examples/how-to/add-comment-add-comment.cs
using IronXL;
using System.Linq;

WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.DefaultWorkSheet;

Cell cellA1 = workSheet["A1"].First();
Cell cellD1 = workSheet["D1"].First();

// Add comments
cellA1.AddComment("Hello World!", "John Doe"); // Add comment with content and author. The comment is invisible by default.
cellD1.AddComment(null, null, true); // Add comment with no content and no author. The comment is set to be visible.

workBook.SaveAs("addComment.xlsx");
$vbLabelText   $csharpLabel

以下是一個在循環中向多個單元格添加註釋的實用範例,可用於批量添加註釋或驗證說明:

using IronXL;
using System;

// Load an existing workbook
WorkBook workBook = WorkBook.Load("salesData.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Add comments to cells that meet specific criteria
for (int row = 2; row <= 10; row++)
{
    var cell = workSheet[$"D{row}"].First();
    var value = cell.DoubleValue;

    if (value > 1000)
    {
        // Add performance comment for high values
        cell.AddComment($"Excellent performance! Value: {value:C}", "Sales Manager", true);
    }
    else if (value < 500)
    {
        // Add improvement comment for low values
        cell.AddComment($"Needs attention. Current: {value:C}", "Sales Manager", false);
    }
}

// Add timestamp comment to track last update
var updateCell = workSheet["A1"].First();
updateCell.AddComment($"Last updated: {DateTime.Now:yyyy-MM-dd HH:mm}", "System");

workBook.SaveAs("salesDataWithComments.xlsx");
using IronXL;
using System;

// Load an existing workbook
WorkBook workBook = WorkBook.Load("salesData.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Add comments to cells that meet specific criteria
for (int row = 2; row <= 10; row++)
{
    var cell = workSheet[$"D{row}"].First();
    var value = cell.DoubleValue;

    if (value > 1000)
    {
        // Add performance comment for high values
        cell.AddComment($"Excellent performance! Value: {value:C}", "Sales Manager", true);
    }
    else if (value < 500)
    {
        // Add improvement comment for low values
        cell.AddComment($"Needs attention. Current: {value:C}", "Sales Manager", false);
    }
}

// Add timestamp comment to track last update
var updateCell = workSheet["A1"].First();
updateCell.AddComment($"Last updated: {DateTime.Now:yyyy-MM-dd HH:mm}", "System");

workBook.SaveAs("salesDataWithComments.xlsx");
$vbLabelText   $csharpLabel

如何編輯現有評論?

為什麼 Comment 屬性有時會傳回 Null 值?

當選定的儲存格沒有關聯的註解時,Comment 屬性傳回 null。 這是以程式設計方式遍歷單元格時常見的場景。 在嘗試修改註解屬性之前,請務必檢查是否存在 null 錯誤,以避免出現 NullReferenceException 錯誤。 這種模式與 IronXL全面 API中的其他儲存格屬性類似。

如果您正在處理複雜的 Excel 檔案並遇到意外的 null 值,故障排除指南可以幫助您了解 IronXL 在不同 Excel 格式和檔案結構下的行為。 對於處理大型 Excel 檔案的效能關鍵型應用程序,請參閱效能里程碑文件以最佳化您的註解操作。

我可以修改註解的哪些屬性?

IronXL 的 Comment 物件公開了三個您可以修改的主要屬性:Content(字串)和 IsVisible(布林值)。 Author 屬性用於標識評論的創建者,這對於協作文件非常有用。 Content 包含實際的註解文本,支援多行字串以進行詳細註解。 IsVisible 控制註解是永久顯示還是僅在滑鼠懸停時顯示。

這些註解屬性與其他儲存格格式設定功能搭配使用。 例如,您可能想要將註釋與儲存格樣式和邊框結合起來,在電子表格中建立視覺上不同的註釋部分。 您還可以對具有批註的單元格套用條件格式,使其在視覺上更加突出。

如何更改創建後的評論的可見性?

透過存取單元格的 Comment 屬性來檢索 Comment 物件。 根據您的需要,將 IsVisible 屬性設為 truefalse。 此動態控制項可讓您根據使用者操作或應用程式邏輯中的特定條件來顯示或隱藏評論。

:path=/static-assets/excel/content-code-examples/how-to/add-comment-edit-comment.cs
using IronXL;
using System.Linq;

WorkBook workBook = WorkBook.Load("addComment.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

Cell cellA1 = workSheet["A1"].First();

// Retrieve comment
var comment = cellA1.Comment;

// Edit comment
comment.Author = "Jane Doe";
comment.Content = "Bye World";
comment.IsVisible = true;

workBook.SaveAs("editComment.xlsx");
$vbLabelText   $csharpLabel

程式設計方式編輯 Excel 檔案時,註解提供了一種非侵入式的方法,可以在不更改實際儲存格值的情況下新增元資料或註解。 這使得它們非常適合用於審計追蹤、審查流程或為資料變更提供背景資訊。 對於需要維護資料完整性的應用,可以考慮使用密碼保護 Excel 文件,同時仍允許修改註解。


如何刪除儲存格中的註解?

刪除評論後單元格格式會發生什麼變化?

從儲存格中刪除註解不會影響儲存格的任何其他屬性或格式。 儲存格的值、公式、樣式、邊框和背景顏色保持不變。 這種隔離機制確保評論管理操作安全,不會無意中修改您精心格式化的電子表格。 此行為符合 IronXL 的原則,即除非明確修改,否則將保留工作簿元資料和格式。

我可以一次刪除多條評論嗎?

雖然IronXL沒有提供一次性刪除工作表所有註解的內建方法,但您可以透過遍歷儲存格輕鬆實現此功能。 建立一個簡單的循環,檢查每個單元格中的註釋並將其刪除。 這種方法可以讓你進行精細的控制,允許你根據作者、內容關鍵字或單元格位置等條件選擇性地刪除評論。

Remove a comment from a cell by accessing the cell object and calling the RemoveComment method. 此操作立即生效,無需儲存工作簿即可生效,但您應該儲存變更以將其持久化到磁碟。

:path=/static-assets/excel/content-code-examples/how-to/add-comment-remove-comment.cs
using IronXL;
using System.Linq;

WorkBook workBook = WorkBook.Load("addComment.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

Cell cellA1 = workSheet["A1"].First();

// Remove comment
cellA1.RemoveComment();

workBook.SaveAs("removeComment.xlsx");
$vbLabelText   $csharpLabel

Excel中的註解除了簡單的標註之外,還有多種用途。 它們對於以程式設計方式產生報表、提供資料輸入表單的說明或在協作編輯期間新增修訂說明等程式碼文件都非常有用。 在進行資料驗證時,註釋可以提供有關可接受值的有用提示。 對於複雜的資料處理工作流程,您可以將註解與命名範圍結合起來,建立更易於維護的自文檔化電子表格。

IronXL 的 API 簡單易用,管理這些註解就像操作其他儲存格一樣簡單,使其成為在 C# 應用程式中建立專業、文件齊全的 Excel 檔案的重要工具。 無論您是建立ASP.NET Web 應用程式還是桌面解決方案,IronXL 的註解功能都能無縫整合到您的工作流程中,而無需 COM 互通的複雜性。

常見問題解答

如何在 C# 中為 Excel 單元格新增註解?

您可以使用 IronXl.Excel 的 AddComment 方法為 Excel 單元格新增註解。只需選擇一個儲存格,並使用內容、作者和可見度參數呼叫 AddComment。例如:worksheet["B2"].First().AddComment(「您的評論」, "Author", false)。這不需要互操作,只需呼叫單一方法即可運作。

AddComment 方法接受哪些參數?

IronXL 的 AddComment 方法接受三個參數:content (字串)、author (字串) 和 isVisible (布林)。content 和 author 參數都是可選的,並且可以為空,讓您可以建立空的評論或沒有作者屬性的評論。isVisible 參數可控制評論是否在不懸停的情況下顯示。

我可以不使用 Office Interop 來建立 Excel 註解嗎?

是的,IronXl.Excel 允許您新增、編輯和移除 Excel 註解,而不需要 Office Interop。這使得它非常適用於無法安裝 Office 的伺服器環境和雲端部署。該函式庫提供了一個簡單的 API,可程式化地處理所有 Excel 註解操作。

如何使 Excel 註解預設為顯示?

若要在 IronXL 中預設使備註顯示,請將 AddComment 方法的第三個參數設定為 true。例如:cell.AddComment("Content", "Author", true)。這對於訓練教材、資料輸入指示,或強調使用者必須立即看到的重要資訊非常有用。

我可以擷取和編輯 Excel 單元格中的現有註解嗎?

是的,IronXL 允許您透過存取儲存格的 Comment 屬性來擷取現有的註解。擷取後,您可以修改註解的內容、作者或可見度設定。這可在您的 Excel 自動化工作流程中實現動態註解管理。

如何以程式化的方式移除 Excel 單元格中的註解?

IronXL 提供 RemoveComment 方法來刪除儲存格中的註解。只需在任何包含註解的單元格中呼叫此方法即可將其刪除。這對於清理試算表或以程式方式更新註解資訊非常有用。

在 Excel 中加入註解所需的最少代碼是多少?

使用 IronXL 新增註解的最小程式碼只有一行:IronXl.WorkBook.Create().DefaultWorkSheet["B2"].First().AddComment("Quick tip!", "Dev")。這會建立一個工作簿、選取單元格 B2,並新增包含內容和作者的註解 - 不需要額外設定。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/ready_to_started_202509.php
Line: 12
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 489
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/ready_to_started_202509.php
Line: 19
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 489
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

準備好開始了嗎?
Nuget 下載 1,890,100 | 版本: 2026.3 剛剛發布

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/still_scrolling_202512.php
Line: 17
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 71
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/how-to/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/still_scrolling_202512.php
Line: 24
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 71
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/how-to/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

Still Scrolling Icon

還在捲動嗎?

想要快速證明? PM > Install-Package IronXl.Excel
執行範例 觀看您的資料變成試算表。