找回密码
 立即注册

QQ登录

只需一步,快速开始

ypge

注册会员

13

主题

64

帖子

195

积分

注册会员

积分
195
ypge
注册会员   /  发表于:2024-9-30 08:40  /   查看:450  /  回复:8
1金币
getCustomNames的行列索引在原先单元格发现变换后,不会更新行列索引

比如原先是在(6,2),当前面有新增行,(6,2)->(7,2)时,customName还是(6,2);

最佳答案

查看完整内容

您好!请问下您使用的版本号是多少呢?我们在最新的17.1.6版本测试,发现新增行后命名单元格的行列索引位置同步更新,如下动图所示。

8 个回复

倒序浏览
最佳答案
最佳答案
Wilson.Zhang
超级版主   /  发表于:2024-9-30 08:40:15
来自 2#
您好!请问下您使用的版本号是多少呢?我们在最新的17.1.6版本测试,发现新增行后命名单元格的行列索引位置同步更新,如下动图所示。
命名单元格位置变化.gif
回复 使用道具 举报
ypge
注册会员   /  发表于:2024-9-30 10:12:01
3#
Wilson.Zhang 发表于 2024-9-30 10:02
您好!请问下您使用的版本号是多少呢?我们在最新的17.1.6版本测试,发现新增行后命名单元格的行列索引位置 ...

17.1.5,我试下17.1.6
回复 使用道具 举报
ypge
注册会员   /  发表于:2024-9-30 10:23:38
4#
Wilson.Zhang 发表于 2024-9-30 10:02
您好!请问下您使用的版本号是多少呢?我们在最新的17.1.6版本测试,发现新增行后命名单元格的行列索引位置 ...

我之前直接用getRow(),getColumn();只能通过getExpression?那就是expression必须配置你这样的?
回复 使用道具 举报
不吐葡萄皮
注册会员   /  发表于:2024-9-30 11:11:59
5#
我还有一个猜测原因,楼主用的是相对引用公式,比如=Sheet1!E8在自定义名称里面然后插入行列是不变的

然后绝对引用公式=Sheet1!$E$8 会在前面插入行列之后进行偏移
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-9-30 11:16:10
6#
ypge 发表于 2024-9-30 10:23
我之前直接用getRow(),getColumn();只能通过getExpression?那就是expression必须配置你这样的?

我们在17.1.5版本测试的结果与17.1.6一致,如下图所示。
getCustomnName.png

Worksheet:getCustomName()返回NameInfo对象,通过NameInfo:getRow()和NameInfo:getColumn()获取的行列索引并非命名单元格的行列索引,而是其基行和基列的索引,这两个属性值不因添加行列改变。所以,根据您提供的信息,猜测您在设置单元格名称的代码中传参单元格行列索引为其基行和基列索引。那么,如果您想获取命名单元格的实际位置,需要通过Worksheet:getExpression()获取。

可以参考官网API文档了解详情:
Worksheet:addCustomName()--https://demo.grapecity.com.cn/spreadjs/help/api/classes/GC.Spread.Sheets.Worksheet#addcustomname
Worksheet:getCustomName()--https://demo.grapecity.com.cn/spreadjs/help/api/classes/GC.Spread.Sheets.Worksheet#getcustomname
NameInfo--https://demo.grapecity.com.cn/spreadjs/help/api/classes/GC.Spread.Sheets.NameInfo#getrow

回复 使用道具 举报
ypge
注册会员   /  发表于:2024-9-30 11:42:06
7#
我是要单元格绑定一些属性,保存后别的地方打开根据getCustomNames找到那个单元格;设置expression引用位置,已经可以了,可以结帖了。
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-9-30 11:46:01
8#
不吐葡萄皮 发表于 2024-9-30 11:11
我还有一个猜测原因,楼主用的是相对引用公式,比如=Sheet1!E8在自定义名称里面然后插入行列是不变的

然 ...

是的,确实如此。在设置单元格名称时,如果使用了相对引用单元格,在新增行列后,通过NameInfo:getExpression()得到的行列信息也不改变。应该使用绝对应用单元格。
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-9-30 11:53:13
9#
ypge 发表于 2024-9-30 11:42
我是要单元格绑定一些属性,保存后别的地方打开根据getCustomNames找到那个单元格;设置expression引用位置 ...

好的。确实如5楼的用户所言,使用相对引用形式也会影响单元格行列信息更新,所以,如果需要在新增行列后同步更新NameInfo中的行列信息,请使用绝对引用形式设置单元格名称。

如有新问题,欢迎发新帖沟通。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部