找回密码
 立即注册

QQ登录

只需一步,快速开始

果爸

注册会员

11

主题

35

帖子

120

积分

注册会员

积分
120
果爸
注册会员   /  发表于:2024-3-28 19:30  /   查看:2005  /  回复:7
1金币
如何通过getCustomName获取定义的名称所在的sheet页名称

最佳答案

查看完整内容

因为他是workbook级别的,不是Sheet级别的,不属于某一个sheet,这两个级别不一样,存储的地方也不同,workbook级别的customName存储在workbook上,而sheet级别的custom存储在相应的sheet上, 你想知道的应该是他引用了哪一个sheet,你可以使用spread.getCustomNames()[0].getExpression().source.getName(),这可以拿到他引用的sheet的名字。

7 个回复

倒序浏览
最佳答案
最佳答案
你的需求是什么
注册会员   /  发表于:2024-3-28 19:30:05
来自 6#
本帖最后由 你的需求是什么 于 2024-3-29 12:06 编辑

因为他是workbook级别的,不是Sheet级别的,不属于某一个sheet,这两个级别不一样,存储的地方也不同,workbook级别的customName存储在workbook上,而sheet级别的custom存储在相应的sheet上, 你想知道的应该是他引用了哪一个sheet,你可以使用spread.getCustomNames()[0].getExpression().source.getName(),这可以拿到他引用的sheet的名字。

评分

参与人数 1金币 +200 收起 理由
Richard.Huang + 200 很给力!

查看全部评分

回复 使用道具 举报
你的需求是什么
注册会员   /  发表于:2024-3-29 09:38:00
2#
你的customName是通过哪个sheet实例拿到的,不就是在哪一个sheet上吗?spread上的customName sheet也拿不到啊。
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-3-29 09:41:59
3#
本帖最后由 Richard.Huang 于 2024-3-29 09:43 编辑

您好,如楼上同学所说,我们getCustomName方法是需要对应的实例来调用的,spread拿到的只有工作簿范围内的自定义名称(不包括工作表范围),spread拿到的只有定义在该sheet范围内的自定义名称,因此您用哪个sheet实例拿到的就在哪个sheet上
image.png573521728.png
回复 使用道具 举报
夏莫听雨
注册会员   /  发表于:2024-3-29 10:00:14
4#
本帖最后由 夏莫听雨 于 2024-3-29 10:03 编辑

可以写个循环
  1. for(var i=0; i<spread.getSheetCount();i++) {
  2.           if(spread.getSheet(i).getCustomNames("aa").length > 0) {
  3.                 console.log(spread.getSheet(i).name())
复制代码
回复 使用道具 举报
果爸
注册会员   /  发表于:2024-3-29 11:44:07
5#
如果我是通过sheet.getCustomNames()方法调用,自然知道是哪个sheet页的自定义名称,但是如果通过spread.getCustomNames()方法调用的话,就无法知道是哪个sheet上的自定义名称 image.png276926573.png image.png375267943.png
回复 使用道具 举报
果爸
注册会员   /  发表于:2024-3-29 12:11:58
7#
你的需求是什么 发表于 2024-3-29 11:50
因为他是workbook级别的,不是Sheet级别的,不属于某一个sheet,这两个级别不一样,存储的地方也不同,work ...

我得问题解决了,就是你说的调用spread.getCustomNames()[0].getExpression().source.getName()这个方法,之前就是不知道通过哪个方法能返回sheet页的名称,谢谢
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-3-29 12:24:44
8#
果爸 发表于 2024-3-29 12:11
我得问题解决了,就是你说的调用spread.getCustomNames()[0].getExpression().source.getName()这个方法 ...

好的,本帖子的问题解决,这里就先结帖了。后续如果您有新的问题,也欢迎创建新的求助帖。请记得设置最佳答案。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部