找回密码
 立即注册

QQ登录

只需一步,快速开始

ArnoldH

注册会员

5

主题

17

帖子

48

积分

注册会员

积分
48
ArnoldH
注册会员   /  发表于:2019-6-20 17:01  /   查看:3280  /  回复:7
您好:
      迷你图的数据源是通过“var data = new spreadNS.Range(1, 0, 8, 1);”这种一个区域的形式来指定的,也就是说数据都是来源于多个相邻的单元格。如果我希望通过“A3, B5, B7, D5"这种形式来指定数据源,有没有什么办法?
      目前我想到的是在一个隐藏的区域内通过公式引用A3,B5....等单元格的值,但是这个办法会要求额外增加行或列,并且对动态构造数据源的代码带来比较大的复杂度。所以想请问您是否有什么其他办法来指定数据源?

7 个回复

倒序浏览
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-6-20 17:58:53
沙发
根据您的描述,您需要的应该是函数迷你图,函数迷你图可以指定引用单元格,

参考示例:

https://demo.grapecity.com.cn/Sp ... /demos/pieSparkline

如图:

image.png907127075.png

评分

参与人数 1满意度 +5 收起 理由
ArnoldH + 5 很给力!

查看全部评分

回复 使用道具 举报
ArnoldH
注册会员   /  发表于:2019-6-21 08:59:51
板凳
好的,我学习一下,谢谢!
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-6-21 09:13:36
地板
好的,谢谢您的评分,有问题欢迎继续交流~
回复 使用道具 举报
ArnoldH
注册会员   /  发表于:2019-6-21 09:20:31
5#
本帖最后由 ArnoldH 于 2019-6-21 10:02 编辑

还是不行。

如果这样写函数是可以的:
=LINESPARKLINE(E4:E6,0)

如果这样写函数就不行:
=LINESPARKLINE({E4,E5,E6},0)

回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-6-21 12:25:41
6#
您好,关于这个问题,我们做了一些调研,

不同的迷你图公式的参数设计是不一样的,例如LINESPARKLINE确实不支持这样的引用方式,无论采用双引号、花括号或者INDIRECT函数都是这样,

但某些迷你图函数是可以的,但也有特殊性,例如:
https://demo.grapecity.com.cn/Sp ... mos/bulletSparkline


针对您的问题,有两个办法:

1、隐藏区域如果不方便,可以采用隐藏表单实现,例如这样的引用是支持的:

  1. sheet.setFormula(2, 2, '=PIESPARKLINE(Sheet2!B3:B8,"#919F81","#D7913E","CEA722","#B58091","#8974A9","#728BAD")');
复制代码


2、使用自定义迷你图函数实现,例如:
https://demo.grapecity.com.cn/Sp ... s/customSparklineEx
这个方法相对更灵活,可以自定义参数的个数和形式,但实现起来相对也比较麻烦,需要您自己绘制迷你图的样式。

这两种方法供您参考。

评分

参与人数 1满意度 +5 收起 理由
ArnoldH + 5 很给力!

查看全部评分

回复 使用道具 举报
ArnoldH
注册会员   /  发表于:2019-6-24 13:48:57
7#
收到,谢谢!
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-6-24 14:30:48
8#
感谢您的反馈与评分,有问题欢迎继续交流~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部