借助Aapose.Cells 使用 C# 在 Excel 中读取、添加和编辑线程注释
Excel 中的线程注释是协作工作的重要功能。它允许多个用户在共享文档中添加、编辑和查看对话线程。在某些情况下,我们可能需要以编程方式管理这些线程注释。在这篇博文中,我们将学习如何使用 C# 在 Excel 中读取、添加和编辑线程注释。
Aspose.Cells 是Excel电子表格编程API,可加快电子表格的管理和处理任务,支持构建能够生成,修改,转换,呈现和打印电子表格的跨平台应用程序。同时不依赖于Microsoft Excel或任何Microsoft Office Interop组件,Aspose API 支持旗下产品覆盖文档、图表、PDF、条码、OCR、CAD、HTML、电子邮件等各个文档管理领域,为全球.NET 、Java、C ++等10余种平台开发人员提供丰富的开发选择。
用于管理线程评论的 C# Excel API
为了处理 Excel 工作表中的线程注释,我们将使用Aspose.Cells for .NET API。它是一个功能强大的电子表格编程 API,使开发人员能够在 .NET 应用程序中创建、操作和转换 Excel 文件。通过利用 Aspose.Cells for .NET,我们可以轻松地在 Excel 工作表中添加、读取、编辑或删除线程注释。
要使用 API,请下载 DLL或使用以下命令从NuGet安装它:
PM> Install-Package Aspose.Cells
使用 C# 在 Excel 中添加线程注释
- 创建Workbook类的实例。
- 通过索引访问特定工作表。
- 使用Add()方法将作者添加到ThreadedCommentAuthors集合。
- 通过索引获取新创建的作者的ThreadedCommentAuthor类对象。
- 使用AddThreadedComment()方法添加线程注释。该方法以单元格名称、注释文本和 ThreadedCommentAuthor 对象作为参数。
- 使用Workbook.Save(string)方法保存 Excel 文件。
以下代码示例显示如何使用 C# 向 Excel 工作表添加线程注释。
// This code example demonstrates how to add threaded comments in an Excel worksheet
// Create an instance of the Workbook class
Workbook workbook = new Workbook();// Access the first worksheet
Worksheet worksheet = workbook.Worksheets[0];// Add an Author
var authorIndex = workbook.Worksheets.ThreadedCommentAuthors.Add("Aspose Test", "", "");
var author = workbook.Worksheets.ThreadedCommentAuthors[authorIndex];// Add Threaded Comment
worksheet.Comments.AddThreadedComment("A1", "Test Threaded Comment", author);// Save the output file
workbook.Save("AddThreadedComments_out.xlsx");
阅读 Excel 中特定单元格的线程注释
要从 Excel 工作表中的指定单元格读取线程注释,请按照以下步骤操作:
- 使用Workbook类加载现有的 Excel 文件。
- 通过索引访问工作表。
- 使用GetThreadedComments()方法获取特定单元格的线程注释。该方法以单元格名称作为参数。
- 循环浏览所有主题评论并阅读详细信息。
以下代码示例显示如何使用 C# 从 Excel 工作表中读取指定列的线程注释。
// This code example demonstrates how to read threaded comments for a specified cell in an Excel worksheet
// Load an existing Excel file
Workbook workbook = new Workbook("AddThreadedComments_out.xlsx");// Access the first worksheet
Worksheet worksheet = workbook.Worksheets[0];// Get Threaded Comments for a specific cell
var threadedComments = worksheet.Comments.GetThreadedComments("A1");// Read the threaded comments
foreach (var comment in threadedComments)
{
Console.WriteLine("Author Name: " + comment.Author.Name);
Console.WriteLine("Threaded comment Notes:" + comment.Notes);
}Author Name: author@domain.com
Threaded comment Notes:Test Threaded Comment
使用 C# 读取 Excel 中的所有主题注释
类似地,我们可以按照以下步骤读取 Excel 工作表中所有可用的主题评论:
- 使用Workbook类加载现有的 Excel 文件。
- 循环浏览所有评论并逐一阅读主题评论。
以下代码示例显示如何使用 C# 从 Excel 工作表读取所有线程注释。
// This code example demonstrates how to read threaded comments for a specified cell in an Excel worksheet
// Load an existing Excel file
Workbook workbook = new Workbook("AddThreadedComments_out.xlsx");// Access the first worksheet
Worksheet worksheet = workbook.Worksheets[0];// Get all the comments
var comments = worksheet.Comments;// Read all the threaded comments
foreach (var comment in comments)
{
// Process threaded comments
foreach (var threadedComment in comment.ThreadedComments)
{
Console.WriteLine("Author Name: " + threadedComment.Author.Name);
Console.WriteLine("Threaded comment author User Id: " + threadedComment.Author.UserId);
Console.WriteLine("Threaded comment author ProviderId:" + threadedComment.Author.ProviderId);
Console.WriteLine("Threaded comment Notes:" + threadedComment.Notes);
}
}
使用 C# 在 Excel 中编辑线程注释
请按照以下步骤更新 Excel 中的任何主题评论:
- 使用Workbook类加载现有的 Excel 文件。
- 通过索引访问工作表。
- 使用GetThreadedComments()方法获取特定单元格的线程注释。该方法以单元格名称作为参数。
- 更新评论的注释属性。
- 使用Workbook.Save(string)方法保存 Excel 文件。
以下代码示例展示如何使用 C# 编辑 Excel 工作表中的线程注释
// This code example demonstrates how to edit threaded comments in an Excel worksheet
// Load an existing Excel file
Workbook workbook = new Workbook("AddThreadedComments_out.xlsx");// Access the first worksheet
Worksheet worksheet = workbook.Worksheets[0];// Get Threaded Comments for a specific cell
var threadedComments = worksheet.Comments.GetThreadedComments("A1");
var comment = threadedComments[0];// Update the comment note
comment.Notes = "Updated Comment";// Save the output file
workbook.Save("EditThreadedComments.xlsx");
使用 C# 删除 Excel 中的主题评论
我们还可以按照以下步骤删除Excel工作表中特定单元格的线程注释:
- 使用Workbook类加载现有的 Excel 文件。
- 通过索引访问工作表。
- 使用RemoveAt()方法从评论集合中删除评论。该方法以单元格名称作为参数。
- 使用Save(string)方法保存Excel文件。
以下代码示例显示如何使用 C# 删除 Excel 工作表中的线程注释。
// This code example demonstrates how to delete threaded comments in an Excel worksheet
// Load an existing Excel file
Workbook workbook = new Workbook("AddThreadedComments_out.xlsx");// Get all the comments
var comments = workbook.Worksheets[0].Comments;// Remove Comments
comments.RemoveAt("A1");// Save the output file
workbook.Save("DeleteThreadedComments.xlsx");
结论
在本文中,我们学习了如何使用 C# 读取、添加、编辑和删除 Excel 工作表中的线程注释。通过利用 Aspose.Cell for .NET,您可以轻松地在 C# 应用程序中操作 Excel 工作表。
相关文章:
借助Aapose.Cells 使用 C# 在 Excel 中读取、添加和编辑线程注释
Excel 中的线程注释是协作工作的重要功能。它允许多个用户在共享文档中添加、编辑和查看对话线程。在某些情况下,我们可能需要以编程方式管理这些线程注释。在这篇博文中,我们将学习如何使用 C# 在 Excel 中读取、添加和编辑线程注释。 Aspose.Cells 是…...
关于c++ grpc 和 c# grpc 通信的问题 以及 grpc 认证问题
一、c 和 c# 通信 c# 端服务器 如果域名 输入的是 https ,则 c 端需要匹配使用,也就是c 端需要进行安全认证。如果是http 则c 端不需要认证(基于c#的grpc 未 通信成功) 参考如下网址可以写一个简单的 .net grpc服务器 (…...
C++进阶(14)类型转换、IO流
文章目录 一、类型转换C语言隐式类型转换强制类型转换 C类型转换的情况类型转换的函数(4个) 二、IO流1、缓冲区2、提高输入输出效率3、文件操作文件权限写操作 --- ofstream文本方式写入二进制方式写入 读操作 --- ifstream文本方式读取二进制方式读取 其…...
配置oss cdn加速静态资源访问 阿里云
效果对比 配置cdn下载速度对比 步骤 1: 登录阿里云控制台控制台主页,找到并点击“对象存储 OSS” 创建存储空间(Bucket) 设置权限 步骤 2: 获取外网访问地址 步骤 3 在 CDN 中使用该地址 复制该外网访问地址 打开全站加速 DCDN/域名管理 添…...
实现 前端框架 SPA 路由功能:Hash 模式与 History 模式的手动实现
前言 在前端框架(如 Vue.js、React 等)中,路由管理通常会配置一个 router 对象来定义 URL 路径与组件的映射关系。 路径(path): 这是浏览器 URL 的一部分,比如 /home 或 /about。组件(compone…...
去中心化的新时代:Web3技术的全球影响
随着技术的不断演进,Web3正引领互联网的去中心化新时代。相较于传统的Web1和Web2,Web3通过去中心化、区块链和智能合约等技术,正在重塑网络的运作方式。这一变革不仅提升了网络的安全性和透明度,也对全球经济、社会和文化产生了深…...
初始redis:List
列表 List 相当于数组或者顺序表。 对于List来说,两侧都可以插入和删除,时间复杂度是O(1)。 有很多的操作,比如 llen 可以获取List的长度,lrem 可以删除元素 ,lrange可以去一个字符串 , lindex可以根据下标…...
Java | Leetcode Java题解之第355题设计推特
题目: 题解: class Twitter {private class Node {// 哈希表存储关注人的 IdSet<Integer> followee;// 用链表存储 tweetIdLinkedList<Integer> tweet;Node() {followee new HashSet<Integer>();tweet new LinkedList<Integer&g…...
MVC与三层架构分层
1. 应用分层 应用分层类似公司的组织架构。我们进行项目开发时,最开始功能简单,前后端放在一起开发,但随着项目功能的复杂,项目会被前端和后端不同的团队接手,甚至更细粒度的团队。甚至后端开发也会根据功能再进行细分…...
Go语言基础--switch
在Go语言中,switch语句是一种非常强大的控制流结构,它允许一个变量的值与多个case进行比较,并根据匹配的结果执行不同的代码块。与C、C或Java中的switch不同,Go语言的switch更灵活,支持没有显式条件的switch࿰…...
【数字ic自整资料】AXI握手协议及outstanding
参考资料: ic基础|时序篇:握手协议valid和ready的时序优化_valid和ready握手信号-CSDN博客 https://zhuanlan.zhihu.com/p/365573848 1、AXI握手协议 当我们遇到时序违例时,通常采用的方式为插入寄存器(打拍)或者是…...
C++ //练习 18.13 什么时候应该使用未命名的命名空间?
C Primer(第5版) 练习 18.13 练习 18.13 什么时候应该使用未命名的命名空间? 环境:Linux Ubuntu(云服务器) 工具:vim 解释 当需要将实体限定在特定文件中,并且不会作用于不同文件…...
yum小bug
这个错误是在克隆的机子上安装mysql时,查看有无mysql发现的 [rootwebserve-2 backup] # yum list installed | grep mysql Repository cr is listed more than once in the configuration Repository fasttrack is listed more than once in the configuration 这…...
GDB的基本使用
我有话说 因为时间和精力原因,本文写的虎头蛇尾了,除了启动调试与程序执行以外只有少量截图演示,只是简单的说明。如果有需要可以联系我,我有时间的话会把演示补上,谢谢理解。 启动调试与程序执行 启动调试并传递参数…...
如何利用AI创作高质量的文章
讯飞星火 利用AI创作高质量的文章需要遵循以下步骤: 确定主题和目标受众:在开始写作之前,明确文章的主题和目标受众。这将帮助你确定文章的风格、结构和内容。 收集资料和信息:在撰写文章之前,进行充分的研究&#x…...
开源的量化交易领域平台vn.py(VeighNa)
一:vn.py(VeighNa)下的工具以及社区版和Elite版的区别 vn.py是一款广泛应用于量化交易领域的开源软件,它主要有以下用途和功能: 1. 交易系统开发框架:vn.py提供了一个完整的交易系统开发框架,可…...
选择搜索引擎进行搜索
<!DOCTYPE html> <html> <head><meta charset"utf-8"><title>选择搜索引擎进行搜索</title><script>function searchSelectedEngine() {var keyword document.getElementById(keyword).value;var engine document.getEl…...
安卓framework修改density
安卓平台,不同屏幕分辨率需要修改density值,以适配UI显示,比如字体大小等. 命令行下进入安卓SDK源码的device/目录 再根据不同芯片厂进入不同目录, 比如展锐就是 cd device/sprd, 高通是device/qcom/搜索关键字"ro.sf.lcd_density", grep -nr “ro.sf.lcd_density”…...
我们如何将数据输入到神经网络中?
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 下面我拿识别美女的例子来给大家介绍如何将美女的图片数据输入到神经网络中。 此例中,待输入的数据是一张图像。为了存储图像…...
基于python模板的药品名称识别系统设计与实现
博主介绍: 大家好,本人精通Java、Python、C#、C、C编程语言,同时也熟练掌握微信小程序、Php和Android等技术,能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验,能够为学生提供各类…...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...
TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...
Python 实现 Web 静态服务器(HTTP 协议)
目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1)下载安装包2)配置环境变量3)安装镜像4)node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1)使用 http-server2)详解 …...
实战设计模式之模板方法模式
概述 模板方法模式定义了一个操作中的算法骨架,并将某些步骤延迟到子类中实现。模板方法使得子类可以在不改变算法结构的前提下,重新定义算法中的某些步骤。简单来说,就是在一个方法中定义了要执行的步骤顺序或算法框架,但允许子类…...
图解JavaScript原型:原型链及其分析 | JavaScript图解
忽略该图的细节(如内存地址值没有用二进制) 以下是对该图进一步的理解和总结 1. JS 对象概念的辨析 对象是什么:保存在堆中一块区域,同时在栈中有一块区域保存其在堆中的地址(也就是我们通常说的该变量指向谁&…...
