找回密码
 立即注册

QQ登录

只需一步,快速开始

[处理中] 导入导出问题

cmbsjdev
金牌服务用户   /  发表于:2024-10-24 09:26  /   查看:183  /  回复:13
1金币
本帖最后由 Wilson.Zhang 于 2024-10-25 09:46 编辑

产品:SpreadJS
版本:17.1.7
调研编号:SJS-26958,SJS-26968
Last Review:2024-10-25
当前进展:非功能问题,设计使然。
SJS-26958,Excel无单元格类型概念,仅保存单元格内容。
SJS-26968,复选框单元格类型回显时先通过逗号分隔符切分内容。

cc76afdeab7c3e685a5cb0509fd0956.jpg896220397.png
1.导出excel再导入spread设计器,文件名丢失

image.png539955749.png
2.还有这个选项本来是勾选的,重新导入来就不勾选了

13 个回复

倒序浏览
Wilson.Zhang
超级版主   /  发表于:5 天前
沙发
您好!正在调研该问题,调研编号为SJS-26958,需要一些时间,之后会及时向您同步结论,请您耐心等候。
回复 使用道具 举报
cmbsjdev
金牌服务用户   /  发表于:5 天前
板凳
Wilson.Zhang 发表于 2024-10-24 09:55
您好!正在调研该问题,调研编号为SJS-26958,需要一些时间,之后会及时向您同步结论,请您耐心等候。
{:5 ...

好的
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:5 天前
地板

我没能复现您所说的第二个问题,需要您提供一个能够复现的demo。
回复 使用道具 举报
cmbsjdev
金牌服务用户   /  发表于:5 天前
5#
本帖最后由 cmbsjdev 于 2024-10-24 16:01 编辑
Wilson.Zhang 发表于 2024-10-24 10:26
我没能复现您所说的第二个问题,需要您提供一个能够复现的demo。

选多项的时候会有问题
动画.gif

designer.vue

2.75 KB, 下载次数: 14

回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:5 天前
6#
cmbsjdev 发表于 2024-10-24 15:51
选多项的时候会有问题

使用您提供的demo复现了问题现象,正在调研,调研编号为SJS-26968。需要一些时间,之后会及时向您同步结论,请您耐心等候。
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:4 天前
7#
您好!现将调研结果同步给您。

1. MS Excel中没有SpreadJS中单元格类型的概念,在导出为xlsx文件时,Excel仅会保留单元格中的值,在此处即FileUpload中的文件流(base64)。因此,在导入xlsx文件时,仅能从中获取单元格值,文件名也无从获取。

2. 您使用CheckBoxList单元格类型并选择了多个选项,在导出的xlsx文件中依然仅保留单元格内容。您在读入xlsx文件后通过内容回显单元格类型是可行的,不过多选时记录的单元格内容之间由逗号分隔符隔开,因此,在读入后也需要将单元格内容同步根据逗号分隔符隔开后再回填至单元格中。附上demo,以供参考,运行效果如下图所示。
CheckBoxListTest.gif

Demo -Upgrade.html

5.22 KB, 下载次数: 15

回复 使用道具 举报
cmbsjdev
金牌服务用户   /  发表于:4 天前
8#
本帖最后由 cmbsjdev 于 2024-10-25 11:34 编辑
Wilson.Zhang 发表于 2024-10-25 09:44
您好!现将调研结果同步给您。

1. MS Excel中没有SpreadJS中单元格类型的概念,在导出为xlsx文件时,Exc ...

1.应该可以从base64字符串解析到文件名吧
2.设计器里显示就是逗号隔开的,实际是个数组吗
image.png530529479.png
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:4 天前
9#
cmbsjdev 发表于 2024-10-25 11:17
1.应该可以从base64字符串解析到文件名吧
2.设计器里显示就是逗号隔开的,实际是个数组吗

1. 一般base64码中只包含文件内容,而不包含文件名等元数据。Excel只是SpreadJS可以兼容导出的一种文件类型,而SpreadJS更建议的序列化文件类型是ssjson和sjs,这些文件类型可以保存在SpreadJS电子表格中设置的所有内容。

2. CheckBoxList多选后的数据内容由逗号隔开,这个与当前情况一致。在读入xlsx文件将单元格文本内容复原为复选框选择内容时,需要根据逗号先将文本内容切割为字符串数组,将字符串数组赋值给复选框单元格方能复原。所以需要修改读入后的代码,如下图所示。
复选单元格.png558898925.png
回复 使用道具 举报
cmbsjdev
金牌服务用户   /  发表于:4 天前
10#
Wilson.Zhang 发表于 2024-10-25 11:58
1. 一般base64码中只包含文件内容,而不包含文件名等元数据。Excel只是SpreadJS可以兼容导出的一种文件类 ...

这样修改以后,相较于其他的选一个的,在1w行的数据情况下,会有一个延时显示的效果,延时了5s左右,有点久
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部