找回密码
 立即注册

QQ登录

只需一步,快速开始

nutstore
金牌服务用户   /  发表于:2021-12-15 10:52  /   查看:5804  /  回复:12
本帖最后由 Derrick.Jiao 于 2022-1-11 11:17 编辑






单元格的格式不是文本的,这个数据我们会拿来做下拉框再填回去,因为这个 bug,数据验证就过不去了。
目前临时方案是单元格设置成文本格式,这样反而可以过去了,因为验证的预期就是文本。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

12 个回复

倒序浏览
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-12-15 11:42:16
沙发
你好,请问你是如何做回填的呢?我这边直接填写数字是可以通过的,并且getValue拿到的也是数值

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
nutstore
金牌服务用户   /  发表于:2021-12-15 12:03:39
板凳
Derrick.Jiao 发表于 2021-12-15 11:42
你好,请问你是如何做回填的呢?我这边直接填写数字是可以通过的,并且getValue拿到的也是数值

我们不直接展示表格,而是用表单去代理读写数据,而且本质上这个 api getValidList 就不应该返回错误的数据格式,这是个 bug
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-12-15 13:43:58
地板
nutstore 发表于 2021-12-15 12:03
我们不直接展示表格,而是用表单去代理读写数据,而且本质上这个 api getValidList 就不应该返回错误的数 ...

我这边先做进一步确认,此贴现改为保留处理,有进展会在本帖更新(SJS-11264
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-1-10 08:56:58
5#
您好,经研发确认这个行为是开发包本身的设计,也和excel一样,不是bug,
如果需要数组的话,可以自己转换一下

如果您那边仍然会受此问题影响,欢迎回帖继续沟通



回复 使用道具 举报
nutstore
金牌服务用户   /  发表于:2022-1-10 10:21:07
6#
本帖最后由 nutstore 于 2022-1-10 10:23 编辑
Richard.Ma 发表于 2022-1-10 08:56
您好,经研发确认这个行为是开发包本身的设计,也和excel一样,不是bug,
如果需要数组的话,可以自己转换 ...

我感觉你们是不是弄错了问题或者和研发的沟通出现了问题?
这里不是需不需要数组的问题,返回值就是个数组没错,问题是数组里给的值错了。
这里正确的数据应该是 [1,2,3],而不是 ['1','2','3'],这就是 bug,不然用户就没有手段能够获取到 ValidList 中正确的值了,返回一个错误的数据怎么可能是一个“设计”,或者你让研发说说这么设计的理由?


回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2022-1-10 11:32:44
7#
nutstore 发表于 2022-1-10 10:21
我感觉你们是不是弄错了问题或者和研发的沟通出现了问题?
这里不是需不需要数组的问题,返回值就是个数 ...

你好,这是Excel里面的结构,我们在设计上也是与excel一致。



另外,如果想返回类似[1,2,3]这种,可以用formulalist,可以参考附件的demo。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
nutstore
金牌服务用户   /  发表于:2022-1-10 14:35:49
8#
本帖最后由 nutstore 于 2022-1-10 14:38 编辑
Derrick.Jiao 发表于 2022-1-10 11:32
你好,这是Excel里面的结构,我们在设计上也是与excel一致。

不对,这不合理,我举例一个合理实现的伪代码,应该是这样的:
define fn toJSONValue(rawValue): JSONValue

fn getValidList(fStr): Array<JSONValue> {
  return fStr.split(',').map(toJSONValue)
}

formula1 = '1,2,3'
formula2 = '"1","2","3"'
getValidList(formula1) // [1,2,3]
getValidList(formula2) // ['1','2','3']

这里根本不是设计上与 excel 一致不一致的问题,它这个数据结构是可以做到返回合理数据的,这个接口是你们定义的叫 getValidList,excel 的数据格式和你返回的数据格式是没有关联的,你要遵守的是你们接口的定义,除非你们名字叫 getRawValidListFormula,然后返回一个字符串的 "1,2,3",这样才是合理的。

你这里例子给的代码,是研发让你这么提供的吗,是否可以换一个研发问问
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2022-1-10 16:33:24
9#
nutstore 发表于 2022-1-10 14:35
不对,这不合理,我举例一个合理实现的伪代码,应该是这样的:
define fn toJSONValue(rawValue): JSONV ...

了解,感谢您的反馈,这边也跟我们研发同时做了二次确认。目前该接口定义情况是正如上述的描述。

您提供的例子确实也是一个比较合理的场景。我们这边也会向我们研发做建议进行改进。

基于产品的稳定性,因为有部分用户已经是按照上面的用法去使用了,直接修改会带来较大的变更。目前暂时无变更或修改的计划,后续有修改计划这边也会向研发建议并且在帖子中告知。再次感谢为产品提供的建议。
回复 使用道具 举报
nutstore
金牌服务用户   /  发表于:2022-1-11 09:59:10
10#
Derrick.Jiao 发表于 2022-1-10 16:33
了解,感谢您的反馈,这边也跟我们研发同时做了二次确认。目前该接口定义情况是正如上述的描述。

您提 ...

除非你们文档上写明了这个东西的具体工作方式,否则这里这种情况就是一个 bug,不是一个 feature,你们文档上并没有这样做出保证。
这个问题作为一个 bug 是需要修复的,而不是因为少量用户基于 bug 去实现了一些东西(这种一般叫 hack 实现)就不顾其他更广泛的用户群体的体验。
而且我认为也没有多少用户会需要这个 bug 来做东西,即使做了在升级版本后要改也很容易改动,比如 `getValidList().map(Number)`。但如果你不修这个 bug 对于普通用户来说要改则会复杂很多。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部