找回密码
 立即注册

QQ登录

只需一步,快速开始

硕㏒

金牌服务用户

53

主题

144

帖子

467

积分

金牌服务用户

积分
467

[已处理] 图表隐藏或删除

硕㏒
金牌服务用户   /  发表于:2024-9-23 16:29  /   查看:628  /  回复:10
1金币
我在使用贵公司的表格软件时遇到了一个问题,希望能得到您的帮助。
具体场景如下:在同一个工作表中,我创建了两个图表——图表1和图表2。我希望这两个图表的状态能够根据A1单元格的值动态变化。具体需求是:
  • 当A1单元格的值为1时,图表1应该显示,而图表2则应该被隐藏(或删除);
  • 当A1单元格的值为2时,图表1应该被隐藏(或删除),而图表2则应该显示。
请问是否可以通过贵公司产品的内置功能来实现这一需求?无论是利用内置公式还是允许自定义函数的方式均可。

最佳答案

查看完整内容

您好,除了楼上提到的可以通过remove来删除,还可以使用isVisible接口来控制图表的显示和隐藏。 参考链接:https://demo.grapecity.com.cn/spreadjs/help/api/classes/GC.Spread.Sheets.Charts.Chart#isvisible

10 个回复

倒序浏览
最佳答案
最佳答案
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-9-23 16:29:54
来自 8#
您好,除了楼上提到的可以通过remove来删除,还可以使用isVisible接口来控制图表的显示和隐藏。

参考链接:https://demo.grapecity.com.cn/sp ... rts.Chart#isvisible
回复 使用道具 举报
硕㏒
金牌服务用户   /  发表于:2024-9-23 16:44:01
2#
如果需要用自定义函数的话,spreadjs和gcexcel都需要,麻烦提供下相关的api
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-9-23 17:34:54
3#
本帖最后由 Wilson.Zhang 于 2024-9-23 17:36 编辑

您好!通过ChartCollection:add()添加图表时需要为图表设置名称,这样便可以根据图标名称通过ChartCollection:remove()删除指定图表。而关于A1单元格的值,可以通过ValueChanged事件跟踪A1单元格值的变化情况。具体地,如下思路所述:

1. 注册ValueChanged事件。
2. 在ValueChanged事件的处理函数中,判断发生值变化的单元格是否为A1。
3. 如果为A1,且A1当前值为1,则通过ChartCollection:remove()删除图表2,在删除前保存图表2的参数,便于恢复。
4. 如果为A1,且A1当前值为2,则通过ChartCollection:remove()删除图表1,在删除前保存图表1的参数,便于恢复。

如果您想参考IF公式自定义公式实现,可以尝试将上述步骤中ValueChanged事件处理函数中的逻辑封装入自定义公式,看能否满足您的需求。

可以参考官网API文档了解详情:
ChartColection:remove()--https://demo.grapecity.com.cn/spreadjs/help/api/classes/GC.Spread.Sheets.Charts.ChartCollection#remove
ValueChanged--https://demo.grapecity.com.cn/spreadjs/help/api/classes/GC.Spread.Sheets.Events#valuechanged
回复 使用道具 举报
硕㏒
金牌服务用户   /  发表于:2024-9-23 17:51:56
4#
image.png435783385.png

直接在页面上手动操作,怎么给图表设置名称,图表是模板提前配置好的,不是代码设置的名称
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-9-23 18:00:22
5#
硕㏒ 发表于 2024-9-23 17:51
直接在页面上手动操作,怎么给图表设置名称,图表是模板提前配置好的,不是代码设置的名称

您可以参考如下动图所示的方式设置:


鼠标设置图表名称.gif

回复 使用道具 举报
硕㏒
金牌服务用户   /  发表于:2024-9-23 18:08:22
6#
image.png974410095.png

image.png370222472.png
image.png728632201.png
我这边打印出来的不是自己填写的名称
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-9-24 08:43:58
7#
硕㏒ 发表于 2024-9-23 18:08
我这边打印出来的不是自己填写的名称

您好!根据您提供的信息,理解您应该是想获取图表的标题,用Chart:title()可查询或设置图表的标题,如下图所示:

1727138516965.png453880614.png

通过Chart:name()查询所得的图表名称与通过ChartCollection:add()添加图表是设置的第一个参数name一致,如下图所示,用于ChartCollection对象管理图表。

1727138542858.png933865051.png

可以参考官网API文档了解详情:
Chart:title()--https://demo.grapecity.com.cn/spreadjs/help/api/classes/GC.Spread.Sheets.Charts.Chart#title
Chart:name()--https://demo.grapecity.com.cn/spreadjs/help/api/classes/GC.Spread.Sheets.Charts.Chart#name
ChartCollection:add()--https://demo.grapecity.com.cn/spreadjs/help/api/classes/GC.Spread.Sheets.Charts.ChartCollection#add

回复 使用道具 举报
硕㏒
金牌服务用户   /  发表于:2024-9-24 16:23:24
9#
本帖最后由 硕㏒ 于 2024-9-24 16:25 编辑

好的,我先研究下
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-9-24 16:34:00
10#
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部