找回密码
 立即注册

QQ登录

只需一步,快速开始

eyAndrew

金牌服务用户

72

主题

314

帖子

912

积分

金牌服务用户

积分
912
eyAndrew
金牌服务用户   /  发表于:2022-10-23 20:38  /   查看:1789  /  回复:16
image.png765551757.png

如图: 我新增一个名称管理器, 怎么获取我存放的引用位置,
image.png430163878.png
使用这个方法,获取不到。

我的需求是: 使用名称管理器,来存放多个引用位置(sheetName修改,行列更新,引用位置会自动更新),拿到引用位置 获取数据

16 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-10-24 10:07:26
沙发
我们没太理解你说的“获取我存放的引用位置”,如果是想要获取这个自定义名称的公式中包含的所有引用单元格区域,可以通过
workbook.getCustomNames()[1].getExpression().value

workbook.getCustomNames()[1].getExpression().value2
这两个参数来获取,
如下图,获取到value中会嵌套value和value2,直到拿到所有的引用

image.png195504149.png
回复 使用道具 举报
eyAndrew
金牌服务用户   /  发表于:2022-10-24 10:11:46
板凳
image.png485754699.png
回复 使用道具 举报
eyAndrew
金牌服务用户   /  发表于:2022-10-24 10:12:04
地板
我获取不到这个value。。。
回复 使用道具 举报
eyAndrew
金牌服务用户   /  发表于:2022-10-24 10:12:42
5#
image.png12900389.png image.png559170836.png
回复 使用道具 举报
eyAndrew
金牌服务用户   /  发表于:2022-10-24 10:27:55
6#
本帖最后由 Ellia.Duan 于 2022-11-17 17:03 编辑

比如我的引用位置在名称管理器弹框上显示是,=Sheet11!$E2:$F4, 我想直接拿到这个  =Sheet11!$E2:$F4, 然后 getRange  getArray获取区域内的数据。
回复 使用道具 举报
eyAndrew
金牌服务用户   /  发表于:2022-10-24 17:32:24
7#
???
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-10-24 18:28:04
8#
本帖最后由 Richard.Ma 于 2022-10-24 18:31 编辑

抱歉忘记回复了,这块分情况

通过getExpression().type就可以判断表达式是什么类型的
https://demo.grapecity.com.cn/sp ... tml#.ExpressionType

上面回复的是有公式计算的,type是9


如果你引用的就只是一个位置,比如你说的=Sheet11!$E2:F4,
那么type是1
这个是引用的一个区域,没有公式计算,直接可以通过下面的代码就能获取到区域

workbook.getCustomNames()[1].getExpression().column
workbook.getCustomNames()[1].getExpression().endColumn
workbook.getCustomNames()[1].getExpression().row
workbook.getCustomNames()[1].getExpression().endRow




回复 使用道具 举报
eyAndrew
金牌服务用户   /  发表于:2022-10-24 18:50:48
9#
也就是说 tpye1 无办法直接获取 =Sheet11!$E2:F4 这种位置信息,  你那个type9,是怎么定义的呢? 是可以直接获取引用的位置信息么? 支持引用自动更新么?
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-10-25 10:29:43
10#
上面的代码不是已经包含了具体的行列位置了吗,获取sheet的话,你可以通过source属性来获取
workbook.getCustomNames()[1].getExpression().source

我不确定你说的无办法直接获取是什么意思,是不是你是要拿到这个公式本身呢,如果是要公式本身的话也简单,可以通过expressionToFormula转换一下,就能拿到公式字符串了
https://demo.grapecity.com.cn/sp ... expressionToFormula

type9就是正常的逻辑运算类型比如A1+B1/C1这种。

这个引用其实就和你用excel公式是一样的,是支持自动更新的


我建议你可以留一下电话,咱们电话沟通一下可能更清楚一些
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部