如何在 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 即可。

```cs:title= 使用 IronXL.Excel 在一行中添加 Excel 注释 IronXL.WorkBook.Create().DefaultWorkSheet["B2"].First().AddComment("Quick tip!", "Dev");


<div class="hsg-featured-snippet">
    <h3>最小工作流程(5 个步骤)</h3>
    <ol>
        <li><a class="js-modal-open" data-modal-id="trial-license-after-download" href="https://nuget.org/packages/IronXL.Excel/">下载 C# 库以启用注释功能</a></li>
        <li>打开现有的或创建新的Excel电子表格</li>
        <li>使用<code>AddComment</code>方法添加注释</li>
        <li>通过访问<strong>"评论"</strong>属性来检索和编辑评论。</li>
        <li>使用<code>RemoveComment</code>方法删除单元格中的注释</li>
    </ol>
</div>
<br class="clear">

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

<h3>`AddComment`接受哪些参数?

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

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

<h3>何时应使注释默认可见?

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

对于更高级的 Excel 操作任务,包括[从头开始创建新电子表格](https://ironsoftware.com/csharp/excel/how-to/create-spreadsheet/)或[管理现有工作表](https://ironsoftware.com/csharp/excel/how-to/manage-worksheet/),IronXL.Excel 提供了一整套可无缝协作的工具。 在构建数据驱动型应用程序时,您可能还需要[将 Excel 数据导出为各种格式](https://ironsoftware.com/csharp/excel/how-to/c-sharp-export-to-excel/)或[在不同电子表格类型之间进行转换](https://ironsoftware.com/csharp/excel/how-to/convert-spreadsheet-file-types/)。

<h3>如果我在已经有注释的单元格中添加注释,会发生什么情况?

当您在已包含注释的单元格上调用 `AddComment` 时,IronXL 将用新注释替换现有注释。 这种行为可确保您不会意外地在单个单元格上创建重复的注释。 如果您需要保留现有的注释内容,请首先使用 `Comment` 属性检索,然后在添加更新的注释之前对内容进行连接或合并。

```csharp
:path=/static-assets/excel/content-code-examples/how-to/add-comment-add-comment.cs

下面是一个在循环中为多个单元格添加注释的实用示例,可用于添加批量注释或验证注释:

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");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

如何编辑现有评论?

为什么 `Comment` 属性有时会返回空值? 当所选单元格没有相关注释时,`Comment` 属性将返回`null`。 在以编程方式迭代单元格时,这种情况很常见。 在尝试修改注释属性之前,请务必检查`null`,以避免`NullReferenceException`。 这种模式与 IronXL'Excel [综合 API](https://ironsoftware.com/csharp/excel/object-reference/api/) 中的其他单元格属性类似。 如果您在处理复杂的 Excel 文件时遇到意想不到的 `null` 值,[故障排除指南](https://ironsoftware.com/csharp/excel/troubleshooting/file-size-limits/)可帮助您了解 IronXL.Excel 在处理不同 Excel 格式和文件结构时的行为。 对于处理大型 Excel 文件的性能关键型应用程序,请参考[性能里程碑文档](https://ironsoftware.com/csharp/excel/product-updates/milestones-performance/)以优化您的注释操作。

我可以在注释上修改哪些属性? IronXL 的 `Comment` 对象公开了三个您可以修改的主要属性:`Author` (字符串)、`Content` (字符串) 和 `IsVisible` (布尔)。 `Author` 属性可识别创建注释的人,这对协作文档非常有用。 `Content` 包含实际的注释文本,支持多行字符串的详细注释。 `IsVisible` 控制注释是永久显示还是仅在悬停时显示。 这些注释属性可与其他单元格格式化功能一起使用。 例如,您可能希望将注释与[单元格样式和边框](https://ironsoftware.com/csharp/excel/how-to/border-alignment/)结合起来,以便在电子表格中创建视觉上截然不同的注释部分。 您还可以对带有注释的单元格应用[条件格式化](https://ironsoftware.com/csharp/excel/how-to/conditional-formatting/),使其在视觉上更加突出。

如何在创建后更改评论可见性? 通过访问单元格的 `Comment` 属性,读取 `Comment` 对象。 根据您的要求,将 `IsVisible` 属性设置为 `true` 或 `false` 。 该动态控件允许您根据用户操作或应用程序逻辑中的特定条件显示或隐藏注释。 ```csharp :path=/static-assets/excel/content-code-examples/how-to/add-comment-edit-comment.cs ``` 当[以编程方式编辑 Excel 文件](https://ironsoftware.com/csharp/excel/how-to/csharp-edit-excel-file/)时,注释提供了一种非侵入式的方法来添加元数据或注释,而不会改变实际的单元格值。 这使它们成为审计跟踪、审查流程或提供数据更改上下文的完美工具。 对于需要维护数据完整性的应用程序,可考虑[使用密码保护 Excel 文件](https://ironsoftware.com/csharp/excel/how-to/set-password-workbook/),同时仍允许进行注释修改。 * * *

如何删除单元格中的注释?

删除注释后单元格格式会发生什么变化? 删除单元格中的注释不会影响任何其他单元格属性或格式。 单元格的值、公式、样式、边框和背景颜色保持不变。 这种隔离确保了注释管理操作的安全性,不会无意中修改您精心格式化的电子表格。 这种行为符合 IronXL 的原则,即除非明确修改,否则应保留 [ 工作簿元数据](https://ironsoftware.com/csharp/excel/how-to/edit-workbook-metadata/)和格式。

我可以同时删除多个评论吗? 虽然 IronXL 没有提供同时删除工作表中所有注释的内置方法,但您可以通过迭代单元格轻松实现这一功能。 创建一个简单的循环,检查每个单元格中的注释并将其删除。 这种方法为您提供了细粒度的控制,让您可以根据作者、内容关键词或单元格位置等标准有选择性地删除注释。 Remove a comment from a cell by accessing the cell object and calling the RemoveComment method. 此操作是即时操作,无需保存工作簿即可生效,但您应保存更改以将其持久保存到磁盘。 ```csharp :path=/static-assets/excel/content-code-examples/how-to/add-comment-remove-comment.cs ``` Excel 中的注释有多种用途,不仅仅是简单的注释。 在以编程方式生成报告、为数据录入表单提供说明或在协作编辑过程中添加修订注释时,它们对于代码文档非常有价值。 在使用 [ 数据验证](https://ironsoftware.com/csharp/excel/troubleshooting/excel-limitation-data-validation-for-string-lists/)时,注释可以提供有关可接受值的有用提示。 对于复杂的数据处理工作流程,您可以将注释与[命名范围](https://ironsoftware.com/csharp/excel/how-to/named-range/)结合起来,创建更易于维护的自文档电子表格。 有了 IronXL 简单明了的 API,管理这些注释变得和其他单元格操作一样简单,使其成为在您的 C# 应用程序中创建专业、文档齐全的 Excel 文件的必备工具。 无论您是在构建[ASP.NET网络应用](https://ironsoftware.com/csharp/excel/how-to/asp-net-mvc-read-excel-file/)还是桌面解决方案,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,并添加了一个包含内容和作者的注释,无需额外设置。

Chaknith Bin
软件工程师
Chaknith 在 IronXL 和 IronBarcode 工作。他在 C# 和 .NET 方面有着深厚的专业知识,帮助改进软件并支持客户。他从用户互动中获得的见解有助于更好的产品、文档和整体体验。
准备开始了吗?
Nuget 下载 1,765,830 | 版本: 2025.12 刚刚发布