找回密码
 立即注册

QQ登录

只需一步,快速开始

Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-3-8 16:08:23
11#
lin666 发表于 2018-3-8 14:51
你这样写也不行

又试了几次  可以了  但是如果设置公式了话 表格上会有个初始值!DIV/0   这个东西可 ...

我这样写没有问题啊,试过了才发的,出现DIV/0,您Sheet2!E9:Sheet2!N9,没有值吧或存在空的单元格吧,有数值就不会出现。这个在Excel中也是一样的,是正常现象,因为空的单元格怎样去算平均
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-3-8 16:11:52
12#
lin666 发表于 2018-3-8 15:24
这个问题跟7楼的问题其实是一样的  我设置了sheet1.setFormula(8, 4, '=IF(sheet2!E9 >= 80,"合格","不合格 ...

正常啊,您把公式在Excel上试一下,结果是一样的,Excel默认空单元格的值就是0
回复 使用道具 举报
lin666
初级会员   /  发表于:2018-3-8 16:21:50
13#
ClarkPan 发表于 2018-3-8 16:11
正常啊,您把公式在Excel上试一下,结果是一样的,Excel默认空单元格的值就是0

1 我知道啊。。 我的意思是  如果那边的单元格为空的话  我这边的单元格也希望是空的  而不是DIV/0  不好看
2 你还没回答我另外一个问题  就是excel原文件设置的数据验证和单元格公式  在网页上打开之后有没有办法直接用这个数据验证和单元格公式
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-3-8 17:01:31
14#
本帖最后由 ClarkPan 于 2018-3-8 17:06 编辑
lin666 发表于 2018-3-8 16:21
1 我知道啊。。 我的意思是  如果那边的单元格为空的话  我这边的单元格也希望是空的  而不是DIV/0  不好 ...

这个没办法啊,控件本身显示是要跟Excel保持一致的,Excel显示的也是DIV/0所以SpreadJS显示DIV/0很正常啊,也没有途径去更改

您指的无法直接使用是不是无法弹处验证错误的提示?
如果是这样设置:
spread.options.highlightInvalidData = true;
spreadjs默认支持的是这种红圈提示的方式进行错误提示
如果您想用其他方式进行错误提示,您可以监听ValidationError事件,在事件中自行进行处理。
http://demo.gcpowertools.com.cn/ ... customDataValidator
另外请您将与本贴主题无关的问题另开新帖进行询问,这样对您跟踪问题也更加方便,也方便不容易漏了您的问题
回复 使用道具 举报
lin666
初级会员   /  发表于:2018-3-8 17:13:35
15#
本帖最后由 lin666 于 2018-3-8 17:17 编辑
ClarkPan 发表于 2018-3-8 17:01
这个没办法啊,控件本身显示是要跟Excel保持一致的,Excel显示的也是DIV/0所以SpreadJS显示DIV/0很正常啊 ...

1 第一个问题无法处理先放着
2 第二个问题好像可以  我再试试看
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-3-8 17:20:50
16#
我都说了是有的,只是因为spread.options.highlightInvalidData = false,所以默认输入错了没有进行提示,所以让您在导入后设置spread.options.highlightInvalidData = true;设置了后输入错误就会有红框提示了,而且我也说了,如果您不想要红框提示是可以进行自定义处理的,监听ValidationError事件就可以,比如您可以在事件中可以alert一个输入错误,或者自己画个div然后弹出来进行错误提示(类似Excel中那种)。所以您好好看清楚我的回答,我之前已经给您了回答了
回复 使用道具 举报
lin666
初级会员   /  发表于:2018-3-9 10:09:27
17#
ClarkPan 发表于 2018-3-8 17:20
我都说了是有的,只是因为spread.options.highlightInvalidData = false,所以默认输入错了没有进行提示, ...

那关于公式会显示DIV/0的问题能不能以其他的方式处理掉  造成的效果是那边输入数据之后再做判断?
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-3-9 10:50:23
18#
SpreadJS代码本身没有可改变的地方,只能从公式入手,外面嵌套一个IFERROR函数,像这样:
=IFERROR(IF(AVERAGE(Sheet2!E9:Sheet2!N9)>=50,"合格","不合格"),"")
回复 使用道具 举报
lin666
初级会员   /  发表于:2018-3-9 15:01:19
19#
ClarkPan 发表于 2018-3-9 10:50
SpreadJS代码本身没有可改变的地方,只能从公式入手,外面嵌套一个IFERROR函数,像这样:
=IFERROR(IF(AVE ...

1 这样也没有效果啊
2 有个新的问题 就是在excel上打印出来是A4纸大小的为什么用spreadjs的打印插件打印出来的效果很糟糕 而且 还没有A4纸那么大  只有一小块?
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-3-9 15:08:06
20#
有效果啊,如下图所示:
未设置IFERROR处理,如果引用单元格没有数据,就会出现您之前说的#DIV/0的效果:
image.png395993651.png
image.png833892211.png
设置之后在引用单元格没有数据的时候就不会显示#DIV/0:
image.png288920897.png
image.png729508361.png
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部