如何在 C# | IronXL.Excel 中为 Excel 单元格添加注释

如何使用 C# 在 Excel 中添加注释(不带互操作)

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

使用 IronXL.Excel 的简单 API 在 C# 中为 Excel 单元格添加注释--无需互操作。 只需在任何单元格上调用 AddComment() 即可添加注释、注解或解释,且不会影响单元格数据。

快速入门:用一行简单代码向单元格添加注释

只需调用一个方法,即可在任何 Excel 单元格中添加注释。 没有交互操作,没有复杂性--只需在单元格上调用 AddComment 即可。

Nuget Icon立即开始使用 NuGet 创建 PDF 文件:

  1. 使用 NuGet 包管理器安装 IronXL

    PM > Install-Package IronXL.Excel

  2. 复制并运行这段代码。

    IronXL.WorkBook.Create().DefaultWorkSheet["B2"].First().AddComment("Quick tip!", "Dev");
  3. 部署到您的生产环境中进行测试

    立即开始在您的项目中使用 IronXL,免费试用!
    arrow pointer


如何在 Excel 单元格中添加注释?

AddComment接受哪些参数?

选择单元格,然后使用AddComment方法向单元格添加注释。 默认情况下,评论是不可见的。 将鼠标悬停在单元格上可查看注释。 AddComment 方法接受三个参数:content (字符串)、author (字符串)和 isVisible (布尔值)。 contentauthor 参数都是可选的,并且可以为空,这样您就可以创建空注释或不注明作者的注释。

在您的 .NET 应用程序中使用 Excel 注释时,了解 IronXL 如何处理单元格引用至关重要。 如果您是 IronXL 的新用户,请查看全面的入门概述,了解以编程方式处理 Excel 文件的基础知识。 对于需要云部署的企业应用程序,IronXL.Excel 可与 Azure 环境AWS Lambda 函数无缝集成。

何时应使注释默认可见?

Excel 中的注释通常默认隐藏,以保持电子表格的整洁外观。 但是,在创建培训材料、提供详细的数据录入说明或突出用户必须立即看到的关键信息等情况下,您可能需要可见的注释。 将 AddComment 的第三个参数设置为 true,以便在不悬停的情况下显示注释。

对于更高级的 Excel 操作任务,包括从头开始创建新电子表格管理现有工作表,IronXL.Excel 提供了一整套可无缝协作的工具。 在构建数据驱动型应用程序时,您可能还需要将 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")
$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");
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")
$vbLabelText   $csharpLabel

如何编辑现有评论?

为什么 Comment 属性有时会返回空值?

当所选单元格没有相关注释时,Comment 属性将返回null。 在以编程方式迭代单元格时,这种情况很常见。 在尝试修改注释属性之前,请务必检查null,以避免NullReferenceException。 这种模式与 IronXL'Excel 综合 API 中的其他单元格属性类似。

如果您在处理复杂的 Excel 文件时遇到意想不到的 null 值,故障排除指南可帮助您了解 IronXL.Excel 在处理不同 Excel 格式和文件结构时的行为。 对于处理大型 Excel 文件的性能关键型应用程序,请参考性能里程碑文档以优化您的注释操作。

我可以在注释上修改哪些属性?

IronXL 的 Comment 对象公开了三个您可以修改的主要属性:Author (字符串)、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");
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")
$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");
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")
$vbLabelText   $csharpLabel

Excel 中的注释有多种用途,不仅仅是简单的注释。 在以编程方式生成报告、为数据录入表单提供说明或在协作编辑过程中添加修订注释时,它们对于代码文档非常有价值。 在使用 数据验证时,注释可以提供有关可接受值的有用提示。 对于复杂的数据处理工作流程,您可以将注释与命名范围结合起来,创建更易于维护的自文档电子表格。

有了 IronXL 简单明了的 API,管理这些注释变得和其他单元格操作一样简单,使其成为在您的 C# 应用程序中创建专业、文档齐全的 Excel 文件的必备工具。 无论您是在构建ASP.NET网络应用还是桌面解决方案,IronXL.Excel的注释功能都能无缝集成到您的工作流程中,而无需复杂的COM Interop。

常见问题解答

如何用 C# 在 Excel 单元格中添加注释?

您可以使用 IronXL.Excel 的 AddComment 方法为 Excel 单元格添加注释。只需选择一个单元格,然后使用内容、作者和可见性参数调用 AddComment。例如:worksheet["B2"].First().AddComment("您的评论", "Author", false)。这不需要交互操作,只需调用一个方法即可实现。

AddComment 方法接受哪些参数?

IronXL 的 AddComment 方法接受三个参数:content(字符串)、author(字符串)和 isVisible(布尔值)。内容和作者参数都是可选的,可以为空,这样就可以创建空评论或没有作者署名的评论。isVisible 参数控制评论是否在不悬停的情况下显示。

不使用 Office Interop 能否创建 Excel 注释?

是的,IronXL.Excel 允许您添加、编辑和删除 Excel 注释,而无需 Office Interop。这使得它非常适合于无法安装 Office 的服务器环境和云部署。该库提供了一个简单的应用程序接口,能以编程方式处理所有 Excel 注释操作。

如何使 Excel 注释默认为可见?

要使 IronXL 中的注释默认可见,请将 AddComment 方法的第三个参数设置为 true。例如:cell.AddComment("Content", "Author", true)。这对于培训材料、数据录入说明或突出显示用户必须立即看到的关键信息非常有用。

能否检索和编辑 Excel 单元格中的现有注释?

是的,IronXL 允许您通过访问单元格的注释属性来检索现有的注释。检索后,您可以修改评论的内容、作者或可见性设置。这样就可以在 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 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。

准备开始了吗?
Nuget 下载 1,846,091 | 版本: 2026.2 刚刚发布