如何使用 C# 在 Excel 中新增註解(不使用 Interop)
使用 IronXL 的簡易 API 在 C# 中為 Excel 儲存格新增註解——無需進行互操作。 只需在任何儲存格中呼叫 AddComment(),即可新增註解、標記或說明,且不會影響儲存格中的資料。
快速入門:僅需一行代碼即可在儲存格中新增註解
透過單一方法呼叫,即可在任何 Excel 儲存格中新增註解。 無需互操作,毫無複雜性——只需在手機上呼叫 AddComment,一切就搞定了。
簡化工作流程(5 個步驟)
- 下載 C# 函式庫以啟用註解功能
- 開啟現有或建立新的 Excel 試算表
- 請使用
AddComment方法來新增註解 - 透過存取 Comment 屬性來檢索和編輯留言
- 使用
RemoveComment方法從儲存格中移除註解
開始使用 IronXL
立即透過免費試用,在您的專案中開始使用 IronXL。
如何在 Excel 儲存格中新增註解?
AddComment 接受哪些參數?
選取儲存格,並使用 AddComment 方法在儲存格中新增註解。 預設情況下,該評論將不會顯示。 將游標懸停在儲存格上即可查看註解。 AddComment 方法接受三個參數:author(字串)以及 isVisible(布林值)。 content 和 author 參數皆為選填且可設為 null,讓您能建立空白註解或不標示作者來源的註解。
在 .NET 應用程式中處理 Excel 註解時,了解 IronXL 如何處理儲存格參照至關重要。 如果您是 IronXL 的新手,請參閱詳盡的入門指南,以了解透過程式化方式處理 Excel 檔案的基礎知識。 對於需要雲端部署的 Enterprise 應用程式,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");
Imports IronXL
Imports System.Linq
Private workBook As WorkBook = WorkBook.Create()
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
Private cellA1 As Cell = workSheet("A1").First()
Private cellD1 As Cell = 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(Nothing, Nothing, True) ' Add comment with no content and no author. The comment is set to be visible.
workBook.SaveAs("addComment.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");
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");
Imports IronXL
Imports System
' Load an existing workbook
Dim workBook As WorkBook = WorkBook.Load("salesData.xlsx")
Dim workSheet As WorkSheet = workBook.DefaultWorkSheet
' Add comments to cells that meet specific criteria
For row As Integer = 2 To 10
Dim cell = workSheet($"D{row}").First()
Dim value = cell.DoubleValue
If value > 1000 Then
' Add performance comment for high values
cell.AddComment($"Excellent performance! Value: {value:C}", "Sales Manager", True)
ElseIf value < 500 Then
' Add improvement comment for low values
cell.AddComment($"Needs attention. Current: {value:C}", "Sales Manager", False)
End If
Next
' Add timestamp comment to track last update
Dim updateCell = workSheet("A1").First()
updateCell.AddComment($"Last updated: {DateTime.Now:yyyy-MM-dd HH:mm}", "System")
workBook.SaveAs("salesDataWithComments.xlsx")
如何編輯現有的評論?
為什麼 Comment 屬性有時會傳回 Null?
當選取的儲存格沒有相關註解時,Comment 屬性會傳回 null。 這是透過程式化方式遍歷儲存格時常見的情境。 在嘗試修改註解屬性之前,請務必檢查是否存在 null,以避免 NullReferenceException 的發生。 此模式與 IronXL 完整 API 中的其他儲存格屬性相似。
若您正在處理複雜的 Excel 檔案,並遇到意料之外的 null 值,這些疑難排解指南可協助您了解 IronXL 在處理不同 Excel 格式與檔案結構時的運作行為。 針對處理大型 Excel 檔案且對效能要求極高的應用程式,請參閱效能里程碑文件以優化您的註解操作。
我可以在註解中修改哪些屬性?
IronXL 的 Comment 物件提供了三個可修改的主要屬性:Author (字串)、Content (字串) 以及 IsVisible (布林值)。 Author 屬性用於標示註解的建立者,對於協作文件相當實用。 Content 包含實際的註解文字,支援多行字串以提供詳細說明。 IsVisible 控制註解是永久顯示,還是僅在懸停時顯示。
這些註解屬性可與其他儲存格格式設定功能配合使用。 例如,您可以將註解與儲存格樣式及邊框結合,在試算表中建立視覺上清晰區分的註解區塊。 您亦可對帶有註解的儲存格套用條件格式,使其在視覺上更為醒目。
如何在建立後變更留言的可見性?
透過存取儲存格的 Comment 屬性,來取得 Comment 物件。 請根據您的需求,將 IsVisible 屬性設定為 true 或 false。 此動態控制項可讓您根據使用者操作或應用程式邏輯中的特定條件,顯示或隱藏註解。
: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");
Imports IronXL
Imports System.Linq
Private workBook As WorkBook = WorkBook.Load("addComment.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
Private cellA1 As Cell = workSheet("A1").First()
' Retrieve comment
Private comment = cellA1.Comment
' Edit comment
comment.Author = "Jane Doe"
comment.Content = "Bye World"
comment.IsVisible = True
workBook.SaveAs("editComment.xlsx")
在程式化編輯 Excel 檔案時,註解提供了一種非侵入式的方法,可在不改變實際儲存格數值的情況下,新增元資料或備註。 這使得它們非常適合用於稽核追蹤、審查流程,或為資料變更提供背景資訊。 對於需要維持資料完整性的應用程式,建議在保護 Excel 檔案的密碼安全之餘,仍允許修改註解。
如何從儲存格中移除註解?
刪除註解時,儲存格格式會發生什麼變化?
從儲存格中移除註解,不會影響其他儲存格的屬性或格式。 儲存格的數值、公式、樣式、邊框及背景顏色均維持不變。 此隔離機制可確保註解管理操作的安全性,避免無意中修改您精心排版的試算表。 此行為符合 IronXL 的原則,即除非明確修改,否則將保留工作簿的元資料與格式。
我可以一次刪除多個註解嗎?
雖然 IronXL 並未提供內建方法來同時移除工作表中的所有註解,但您可以透過遍歷儲存格輕鬆實現此功能。 建立一個簡單的迴圈,檢查每個儲存格是否有註解並將其移除。 此方法提供細緻的控制權,讓您能依據作者、內容關鍵字或儲存格位置等條件,有選擇性地移除註解。
透過存取儲存格物件並呼叫 RemoveComment 方法,即可從儲存格中移除註解。 此操作會立即生效,無需儲存工作簿即可生效,但您仍應儲存變更以將其永久儲存至磁碟。
: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");
Imports IronXL
Imports System.Linq
Private workBook As WorkBook = WorkBook.Load("addComment.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
Private cellA1 As Cell = workSheet("A1").First()
' Remove comment
cellA1.RemoveComment()
workBook.SaveAs("removeComment.xlsx")
Excel 中的註解不僅僅是簡單的註記,還具有多種用途。 這些工具對於程式化生成報告、提供資料輸入表單的操作指引,或在協作編輯時添加修訂註解等程式碼文件工作,皆具有極高價值。 在處理資料驗證時,註解可提供有關有效值的實用提示。 對於複雜的資料處理工作流程,您可以結合註解與命名範圍,建立自說明式的試算表,使其更易於維護。
透過 IronXL 直觀的 API,管理這些註解變得如同執行其他儲存格操作般簡單,使其成為您在 C# 應用程式中建立專業且文件完善的 Excel 檔案不可或缺的工具。 無論您正在開發 ASP.NET 網頁應用程式或桌面解決方案,IronXL 的註解功能都能無縫整合至您的工作流程中,且無需面對 COM 互通的複雜性。
常見問題
如何在 C# 中為 Excel 儲存格新增註解?
您可以透過 IronXL.Excel 的 AddComment 方法在 Excel 儲存格中新增註解。只需選取一個儲存格,並傳入內容、作者及可見性參數來呼叫 AddComment 即可。例如:worksheet["B2"].First().AddComment("您的註解", "作者", false)。此操作無需跨平台協作,僅需單一方法呼叫即可完成。
AddComment 方法接受哪些參數?
IronXL 的 AddComment 方法接受三個參數:content(字串)、author(字串)以及 isVisible(布林值)。content 和 author 參數皆為可選,且可設為 null,讓您能建立空白註解或不標示作者的註解。isVisible 參數則控制註解是否會在未懸停時顯示。
是否可以在不使用 Office Interop 的情況下建立 Excel 註解?
是的,IronXL 允許您在不需 Office Interop 的情況下,新增、編輯及刪除 Excel 註解。這使其非常適合無法安裝 Office 的伺服器環境與雲端部署。IronXL程式庫提供一個簡單的 API,可透過程式化方式處理所有 Excel 註解操作。
如何讓 Excel 註解預設為可見狀態?
若要在 IronXL 中預設顯示註解,請將 AddComment 方法的第三個參數設為 true。例如:cell.AddComment("Content", "Author", true)。此功能適用於培訓資料、資料輸入說明,或標示使用者必須立即看到的關鍵資訊。
我可以在 Excel 儲存格中檢索並編輯現有的註解嗎?
是的,IronXL 允許您透過存取儲存格的 Comment 屬性來檢索現有註解。檢索後,您可以修改註解的內容、作者或可見性設定。這使您能在 Excel 自動化工作流程中實現動態註解管理。
如何透過程式碼從 Excel 儲存格中移除註解?
IronXL 提供 RemoveComment 方法,用於從儲存格中刪除註解。只需在任何包含註解的儲存格上呼叫此方法,即可移除該註解。此功能對於清理試算表或透過程式碼更新註解資訊非常有用。
要在 Excel 中新增註解,最少需要哪些程式碼?
using IronXL 添加註解的最小程式碼僅需一行:IronXl.WorkBook.Create().DefaultWorkSheet["B2"].First().AddComment("Quick tip!", "Dev")。這將建立工作簿、選取 B2 儲存格,並添加包含內容與作者資訊的註解——無需任何額外設定。

