C#代码实现隐藏或显示Excel中的批注

 更新时间:2026年06月02日 08:20:28   作者:2501_93070778  
Excel 中的批注是一种附加在单元格上的文本说明,本文将为大家详细介绍如何通过 C# 在 Excel 中隐藏或显示批注,有需要的小伙伴可以了解下

Excel 中的批注是一种附加在单元格上的文本说明,主要用于对单元格内容进行补充解释或提供额外信息。通过为特定单元格添加批注,用户可以更清晰地说明工作表中的数据含义。

不过,当工作表中存在大量批注时,可能会影响界面的整洁度,甚至遮挡部分内容。为了提升工作表的可读性和视觉效果,可以根据需要隐藏现有批注,使数据展示更加清晰;在需要查看说明信息时,也可以随时重新显示这些批注。

本文将介绍如何通过 C# 在 Excel 中隐藏或显示批注。

安装所需库

在开始之前,需要在 .NET 项目中添加相应的 Excel 处理库引用。您可以下载对应的 DLL 文件并手动添加到项目中,也可以通过 NuGet 包管理器进行安装。

PM> Install-Package Spire.XLS

在 Excel 中隐藏批注

通过 Excel 处理库提供的批注可见性属性,可以控制批注是否显示。将该属性设置为 false 后,即可隐藏现有批注。

以下是隐藏 Excel 批注的具体步骤:

  1. 创建一个 Workbook 实例。
  2. 使用 Workbook.LoadFromFile() 方法加载 Excel 文件。
  3. 通过 Workbook.Worksheets[] 获取指定工作表。
  4. 将目标批注的可见性属性设置为 false,以隐藏该批注。
  5. 使用 Workbook.SaveToFile() 方法保存结果文件。

完整示例代码如下:

using Spire.Xls;

namespace ShowExcelComments
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建 Workbook 对象并加载 Excel 文件
            Workbook workbook = new Workbook();
            workbook.LoadFromFile("Comments.xlsx");

            // 获取第一个工作表
            Worksheet sheet = workbook.Worksheets[0];

            // 隐藏工作表中的指定批注
            sheet.Comments[0].IsVisible = false;

            // 保存结果文件
            workbook.SaveToFile("HideComment.xlsx", ExcelVersion.Version2013);
            workbook.Dispose();
        }
    }
}

在 Excel 中显示批注

当需要查看批注内容时,可以重新显示已隐藏的批注。只需将批注的可见性属性设置为 true,即可使其重新显示。

以下是在 Excel 中显示批注的具体步骤:

  1. 创建一个 Workbook 实例。
  2. 使用 Workbook.LoadFromFile() 方法加载 Excel 文件。
  3. 通过 Workbook.Worksheets[] 获取指定工作表。
  4. 将目标批注的可见性属性设置为 true,以显示该批注。
  5. 使用 Workbook.SaveToFile() 方法保存结果文件。

完整示例代码如下:

using Spire.Xls;

namespace ShowExcelComments
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建 Workbook 对象并加载 Excel 文件
            Workbook workbook = new Workbook();
            workbook.LoadFromFile("HideComment.xlsx");

            // 获取第一个工作表
            Worksheet sheet = workbook.Worksheets[0];

            // 显示工作表中的指定批注
            sheet.Comments[0].IsVisible = true;

            // 保存结果文件
            workbook.SaveToFile("ShowComment.xlsx", ExcelVersion.Version2013);
            workbook.Dispose();
        }
    }
}

知识扩展

操作 Excel 批注的可见性,常规做法是通过 Visible 或 IsVisible 属性来控制,关键点在于找到正确的批注对象。下面汇总了几种主流 .NET 组件的方法。

使用 Spire.XLS(功能全面,API 直观)

using Spire.Xls;
// 1. 实例化 Workbook 并加载文件
Workbook workbook = new Workbook();
workbook.LoadFromFile("Comments.xlsx");
// 2. 获取第一个工作表
Worksheet sheet = workbook.Worksheets[0];
// 3. 隐藏特定批注(例如第一个批注)
sheet.Comments[0].IsVisible = false;
// 设置 sheet.Comments[0].IsVisible = true; 即可显示该批注
// 4. 隐藏或显示所有批注
foreach (ExcelComment comment in sheet.Comments)
{
    comment.IsVisible = true; // 设置为 false 则隐藏
}
// 5. 保存文件
workbook.SaveToFile("Result.xlsx", ExcelVersion.Version2013);

这种方法通过 Comments 集合索引或遍历即可轻松实现。

// 查找并控制特定单元格的批注可见性
CellRange specificCell = sheet.Range["B5"];
if (specificCell.HasComment)
{
    specificCell.Comment.IsVisible = true; // 或 false
}

使用 Aspose.Cells(功能强大,适合复杂操作)

using Aspose.Cells;
// 1. 加载工作簿
Workbook workbook = new Workbook("Comments.xlsx");
// 2. 获取第一个工作表
Worksheet worksheet = workbook.Worksheets[0];
// 3. 访问指定单元格的批注并设置可见性
Cell cell = worksheet.Cells["B5"];
if (cell.HasComment)
{
    cell.Comment.IsVisible = true;
    // cell.Comment.IsVisible = false;
}

Aspose.Cells 也为批量操作提供了类似方法。

使用 GemBox.Spreadsheet(轻量级,许可灵活)

using GemBox.Spreadsheet;
// 加载文件
SpreadsheetInfo.SetLicense("FREE-LIMITED-KEY"); 
var workbook = ExcelFile.Load("Comments.xlsx");
var worksheet = workbook.Worksheets[0];
// 获取批注对象并设置可见性
ExcelComment comment = worksheet.Cells["B5"].Comment;
comment.IsVisible = true; // 或 false

核心在于 comment.IsVisible 属性。

使用 GrapeCity Documents for Excel(GcExcel,高性能)

using GrapeCity.Documents.Excel;
// 1. 创建工作簿并加载文件
Workbook workbook = new Workbook();
workbook.Open("Comments.xlsx");
// 2. 获取第一个工作表
IWorksheet worksheet = workbook.Worksheets[0];
// 3. 设置批注可见性
IComment comment = worksheet.Range["B5"].Comment;
comment.Visible = true; // 或 false

comment.Visible 是控制显示的关键属性。

使用 NPOI(开源、免费,但需手动处理索引)

using NPOI.XSSF.UserModel;
using NPOI.SS.UserModel;
// 1. 加载工作簿
XSSFWorkbook workbook = null;
using (FileStream file = new FileStream("Comments.xlsx", FileMode.Open, FileAccess.Read))
{
    workbook = new XSSFWorkbook(file);
}
// 2. 获取第一个工作表
ISheet sheet = workbook.GetSheetAt(0);
// 3. 遍历所有行和单元格查找并修改批注
for (int rowIndex = 0; rowIndex <= sheet.LastRowNum; rowIndex++)
{
    IRow row = sheet.GetRow(rowIndex);
    if (row != null)
    {
        for (int cellIndex = 0; cellIndex < row.LastCellNum; cellIndex++)
        {
            ICell cell = row.GetCell(cellIndex);
            if (cell != null && cell.CellComment != null)
            {
                // 注意:NPOI 主要通过替换文本模拟显示/隐藏,
                // 此处演示如何访问批注对象
                var comment = cell.CellComment;
                comment.String = new XSSFRichTextString(comment.String.String); 
                // 或者考虑删除批注再重新添加来模拟显示/隐藏
            }
        }
    }
}
// 4. 保存文件
using (FileStream file = new FileStream("Result.xlsx", FileMode.Create))
{
    workbook.Write(file);
}

NPOI 获取批注直接通过 cell.CellComment,其核心是直接修改 Visible 属性的库。

总结

本文介绍了如何通过 C# 在 Excel 工作表中隐藏和显示批注。通过修改批注对象的可见性属性,可以灵活控制批注的显示状态:将其设置为 false 可隐藏批注,使工作表界面更加整洁;设置为 true 则可重新显示批注,方便查看补充说明信息。

借助这种方式,开发者可以根据实际业务需求动态管理批注的显示效果,在保证数据可读性的同时,提升 Excel 文档的整体展示体验。

到此这篇关于C#代码实现隐藏或显示Excel中的批注的文章就介绍到这了,更多相关C#隐藏或显示Excel批注内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • c#基础——了解程序结构

    c#基础——了解程序结构

    这篇文章主要介绍了c# 程序结构的相关资料,文中讲解非常细致,帮助大家更好的理解和学习C#,感兴趣的朋友可以了解下
    2020-07-07
  • C# 实现superpowers进化功能示例

    C# 实现superpowers进化功能示例

    本文提供了一个“超级能力进化”功能示例,包括基础类定义、进化逻辑和测试用例,建议增加MaxLevel限制、特殊进化条件、能力树系统、属性成长系统,并完善异常处理和经验值验证逻辑,以增强功能的灵活性和复杂性
    2026-04-04
  • 使用C#实现将RTF转换为PDF

    使用C#实现将RTF转换为PDF

    RTF(Rich Text Format)是一种通用的文档格式,允许用户在不同的文字处理软件中保存和交换格式化文本,下面我们就来看看如何使用C#实现将RTF转换为PDF吧
    2025-11-11
  • C#中decimal保留2位有效小数的实现方法

    C#中decimal保留2位有效小数的实现方法

    这篇文章主要介绍了C#中decimal保留2位有效小数的实现方法,针对decimal变量保留2位有效小数有多种方法,可以使用Math.Round方法以及ToString先转换为字符串等操作来实现。具体实现方法感兴趣的朋友跟随小编一起看看吧
    2019-10-10
  • dotnet core链接mongodb代码实例

    dotnet core链接mongodb代码实例

    这篇文章主要介绍了dotnet core链接mongodb代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • C#使用异步流高效处理序列数据的方法详解

    C#使用异步流高效处理序列数据的方法详解

    C#中的异步流(Async Streams),异步流是C# 8.0引入的一个新特性,它允许你异步地处理序列数据,非常适合处理大量数据或长时间运行的任务,本文给大家介绍了C#使用异步流高效处理序列数据的方法步骤,需要的朋友可以参考下
    2024-11-11
  • Unity UGUI LayoutRebuilder自动重建布局介绍及使用

    Unity UGUI LayoutRebuilder自动重建布局介绍及使用

    这篇文章主要为大家介绍了Unity UGUI LayoutRebuilder自动重建布局介绍及使用,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • C#判断指定驱动器是否已经准备就绪的方法

    C#判断指定驱动器是否已经准备就绪的方法

    这篇文章主要介绍了C#判断指定驱动器是否已经准备就绪的方法,涉及C#针对硬件IO操作的技巧,需要的朋友可以参考下
    2015-04-04
  • C#调用Python脚本的简单示例

    C#调用Python脚本的简单示例

    这篇文章主要为大家详细介绍了C#调用Python脚本的简单示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • C# WINFORM自定义异常处理方法

    C# WINFORM自定义异常处理方法

    这篇文章主要介绍了一个简单的统一异常处理方法。系统底层出现异常,写入记录文件,系统顶层捕获底层异常,显示提示信息。需要的可以参考一下
    2021-12-12

最新评论