找回密码
 立即注册

QQ登录

只需一步,快速开始

Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-10-14 16:49:40
11#
这边调研了下,可以通过 text value的映射关系间接解决此问题。
大致思路如下:

1、设置 editorValueType  为text
2、遍历单元格,找到使用combobox的单元格,
使用 sheet.getCellType(1,1).items() 获取combobox的数据集。
image.png955527343.png

3、使用getValue()方法可以获取选择的下拉值 (即items中的text值) ,
通过items中text 与 value 的映射关系,找到对应的 value,以此进行数据存储。

您可以按照以上思路先测试下, 有问题在贴中交流。
回复 使用道具 举报
肥夏米
初级会员   /  发表于:2021-10-18 18:29:10
12#
这个暂时解决了一个问题。
但是现在还有个问题,就是我们有两个功能,一个是保存数据,一个是导出excel文件,这两个操作都是把ssjson转成文件流后传给后端。但是我保存数据的时候需要保存value,导出文件的时候需要导出text, 有什么办法吗?能不能在生成ssjson之前设置它的值类型呢。。
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-10-18 18:31:42
13#
关于此需求需要整理下思路,预计明天回复您。
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-10-19 11:02:31
14#
思路如下:
1、设置 editorValueType  为value
2、此时可以正常保存数据
3、遍历单元格,找到使用combobox的单元格,
使用 sheet.getCellType(1,1).items() 获取combobox的数据集。

4、使用getValue()方法可以获取选择的下拉值 (即items中的value值) ,
通过items中text 与 value 的映射关系,找到对应的 text。
5、在导出文件前,使用 setValue 方法将combobox单元格原先的value(value值)修改为 (text值)
6、“导出Excel文件”,此时excel文件中combobox显示的为text。
7、“导出excel文件”后,使用 setValue 方法将combobox 的value改回原先的(value值),
以此实现 导出excel文件 不影响原有的数据,可以正常“保存数据”。


回复 使用道具 举报
肥夏米
初级会员   /  发表于:2021-10-19 11:23:43
15#
导出前转成text,保存数据前转成value是吗?
默认就是value, 也没点过导出,直接保存数据,就没必要再转吧?那要怎么知道当前是value还是text呢。。
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-10-19 11:32:45
16#
”导出前转成text,保存数据前转成value是吗“
导出前转成text,导出结束后转成value。这样保存数据时自然也是value。

“默认就是value, 也没点过导出,直接保存数据,就没必要再转”
是的,
只有在导出Excel文件时,才需要将value转为text,因为只有这样才能使得combobox 显示为text。

“怎么知道当前是value还是text“
默认就是value,即使在导出excel前将value转为text,但是在导出excel后又将text转为value了。(具体看第7步骤)
所以可以理解为”保存数据时“始终都是value的形态。

回复 使用道具 举报
肥夏米
初级会员   /  发表于:2021-10-19 13:57:42
17#
好的,感谢。。我们先按这种方式试试,你们后面会有别的更好的更新吗?针对combobox
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-10-19 14:30:20
18#
对于combobox, value与text 方式属于产品设计,目前没有其他相关计划了。
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 立即注册
返回顶部