找回密码
 立即注册

QQ登录

只需一步,快速开始

hano7758

注册会员

11

主题

22

帖子

87

积分

注册会员

积分
87
hano7758
注册会员   /  发表于:2020-11-4 10:06  /   查看:2330  /  回复:3
在项目中,先是在表格中使用setArray把数据还原到单元格中
再在单元格下一行添加数据公式,在数据为空的情况下,B列公式会出现#value!的错误
出现这种情况原因应该是B列21行-23行的单元格内容是文本,公式计算文本会出现这种错误


但是在excel中,默认空的单元格在被公式引用的时候不会被认为是文本而导致公式出现#value!的错
有什么好的办法能让现在这种setArray空数组的情况下,让B列计算公式不出现#value的问题

sheet.setArray(20, 1, [['','10','40','','']])
sheet.setArray(21, 1, [['','20','50','','']])
sheet.setArray(22, 1, [['','30','60','','']])
sheet.setFormula(23, 1, '=B21+B22-B23')
sheet.setFormula(23, 2, '=C21+C22-C23')
sheet.setFormula(23, 3, '=D21+D22-D23')

image.png786881713.png


3 个回复

倒序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-11-4 11:50:13
沙发
您好,这样做:

sheet.setArray(20, 1, [['','10','40','','']])
sheet.setArray(21, 1, [['','20','50','','']])
sheet.setArray(22, 1, [['','30','60','','']])
sheet.setFormula(23, 1, '=B21+B22-B23')
sheet.setFormula(23, 2, '=C21+C22-C23')
sheet.setFormula(23, 3, '=D21+D22-D23')
改为
sheet.setArray(20, 1, [[undefined,10,40,undefined,undefined]])
sheet.setArray(21, 1, [[undefined,20,50,undefined,undefined]])
sheet.setArray(22, 1, [[undefined,30,60,undefined,undefined]])
sheet.setFormula(23, 1, '=B21+B22-B23')
sheet.setFormula(23, 2, '=C21+C22-C23')
sheet.setFormula(23, 3, '=D21+D22-D23')
回复 使用道具 举报
hano7758
注册会员   /  发表于:2020-11-4 13:12:54
板凳
ClarkPan 发表于 2020-11-4 11:50
您好,这样做:

sheet.setArray(20, 1, [['','10','40','','']])

可以了,谢谢
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-11-4 13:35:43
地板
不客气,那就结贴了,有什么问题欢迎另开新帖进行询问。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部