找回密码
 立即注册

QQ登录

只需一步,快速开始

俊123

初级会员

29

主题

83

帖子

234

积分

初级会员

积分
234
俊123
初级会员   /  发表于:2024-7-5 18:52  /   查看:1314  /  回复:5
100金币
请问如何根据当前comment对象获取到cell对象的文本值?    SpreadJS16

最佳答案

查看完整内容

那就用最先回复的帖子里关于后者情况的实现方案吧!代码如下: 楼主试下看是否符合需求。

5 个回复

倒序浏览
最佳答案
最佳答案
eat_grape_5
高级会员   /  发表于:2024-7-5 18:52:33
来自 4#
俊123 发表于 2024-7-8 12:01
是后者这种情况, 代码如下
                                        var activeSheet = spread1.getAc ...

那就用最先回复的帖子里关于后者情况的实现方案吧!代码如下:
  1. function checkCommentCellValue(sheet) {
  2.         var rowCount = sheet.getRowCount();
  3.         var colCount = sheet.getColumnCount();
  4.         var comments = sheet.comments;
  5.         for (var i = 0; i < rowCount; i++) {
  6.             for (var j = 0; j < colCount; j++) {
  7.                 if (comments.get(i, j)) {
  8.                     var cellVal = sheet.getValue(i, j);
  9.                     console.log(cellVal);
  10.                 }
  11.             }
  12.         }
  13.    }
复制代码


楼主试下看是否符合需求。
回复 使用道具 举报
eat_grape_5
高级会员   /  发表于:2024-7-8 10:11:27
2#
楼主所说的”当前comment“具体是值当前单元格上的comment呢还是对工作表中所有comment遍历时过程中的当前comment?


如果是前者,那当前单元格即活跃单元格,可以分别通过Worksheet:getActiveRowIndex()Worksheet:getActiveColumnIndex()获取活跃单元格的行列索引,知道了单元格位置既可以通过Worksheet:getText()Worksheet:getValue()获取单元格文本值。

如果是后者呢,目前还没有获取comment所在单元格位置的API,可以通过下述思路实现:
1. 通过Worksheet:comments获取CommentManager。
2. 遍历工作表内所有单元格,通过CommentManager:get()获取当前单元格是否有comment,如果没有则不处理,否则判断其comment文本是否符合预期,以此确定”当前comment“,或者是其他判断逻辑。
3. 对”当前comment“所在单元格,便可直接获取其文本值。

所以需要搞清楚下楼主的使用场景。



回复 使用道具 举报
俊123
初级会员   /  发表于:2024-7-8 12:01:17
3#
本帖最后由 俊123 于 2024-7-8 12:05 编辑
eat_grape_5 发表于 2024-7-8 10:11
楼主所说的”当前comment“具体是值当前单元格上的comment呢还是对工作表中所有comment遍历时过程中的当前c ...

是后者这种情况, 代码如下
                                        var activeSheet = spread1.getActiveSheet()
                                        var comments = activeSheet.comments.all();
                                        if(!isEmpty(comments)){
                                                for (var i = 0; i < comments.length; i++) {                                                        
                                                        //取批注内容
                                                        comments.text();
                                                        //取单元格内容 ??
                                                        
comments.xxxxxx
                                                }
回复 使用道具 举报
俊123
初级会员   /  发表于:2024-7-8 15:17:31
5#
遍历所有单元格可以解决, 较大文档性能有少许影响。
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-7-8 17:42:31
6#
您好,Worksheet对象上存在comments属性,其中存储了当前sheet页中所有的批注,可以根据这个对象进行遍历。

https://demo.grapecity.com.cn/sp ... ents.CommentManager
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部