找回密码
 立即注册

QQ登录

只需一步,快速开始

linxiang19

初级会员

25

主题

65

帖子

242

积分

初级会员

积分
242
linxiang19
初级会员   /  发表于:2021-3-9 14:37  /   查看:3502  /  回复:4
1金币
你好,我用的是12版本的,
目前遇到一个问题
我们一个表格 里面有 25列。我们每列里面有样式,有公用 有自己的独特样式,这样导致了一个问题,就是TOJSON 很容易浏览器内存溢出。
我看了下我的JSON 。
假设表格1000行数据,25列,25列 每列的样式 (字体,大小,颜色,边距,居中等),
这样 sheet.data.datatable 下的JSON 换算行数 起码 1000*25*10=25万行(样式如果设置了上面那些起码10行),
另外算上样式上的文字,这个JSON 异常具大,直接调用你们的toJson ,很容易卡死。

我原本想过是不是设计列样式,让单元格独立样式比列样式优先级低,可是也没弄好,可能方式不对
想问下你们这样独立的单元格样式,一旦涉及到表格里面的单元格时候你们怎么处理这个样式,避免JSON 太过巨大,导致打印导出什么的直接挂掉。
另外,因为我们都是保护模式下,根据权限来设置单元格锁定与否,所以即使是同一列  ,也可能锁定的情况不一样,还有就是我们自定义了些自定义控件,
我看了我们获取STYLE 好像也里面有个CELLTYPE的属性,这种也不一样









最佳答案

查看完整内容

要想减少导出json文件体积,所有样式都通过单元格来设置是不行的,可以从table样式和命名样式来入手。 导入您上传的json文件,sheet内为1000多行,20多列的table。 1、对于公用样式(如背景色,字号),可以在设计器中 通过 新建表格样式(如下图),设计整个table的样式。 2、对于需要多个单元格共用的样式,可以通过命名样式来自定义。 (技术博客链接:https://gcdn.grapecity.com.cn/fo ... 5492&extra=page%3D1) ...

4 个回复

正序浏览
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-3-9 16:15:09
4#
这边先根据您描述的需求调研下,这需要一定的时间,预计明天上午更新问题进展。
回复 使用道具 举报
linxiang19
初级会员   /  发表于:2021-3-9 15:23:06
3#
lynn512 发表于 2021-3-9 14:58
请先参考以下技术博客,了解SJS关于样式的一些知识。
https://www.grapecity.com.cn/blo ... ply-spreadjs ...

新建压缩(zipped)文件夹 (2).zip (912.59 KB, 下载次数: 256)
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-3-9 14:58:22
2#
本帖最后由 lynn512 于 2021-3-9 14:59 编辑

请先参考以下技术博客,了解SJS关于样式的一些知识。
https://www.grapecity.com.cn/blo ... ply-spreadjs-styles
https://gcdn.grapecity.com.cn/fo ... 5492&extra=page%3D1
另,从您描述的文本中无法判断您使用的是哪些样式,建议您上传下相关的json文件,
并结合业务逻辑详细的描述下您期待的样式效果(如,您提到表单保护),这边看下是否有相应的解决方案。

回复 使用道具 举报
最佳答案
最佳答案
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-3-9 14:37:10
来自 5#
要想减少导出json文件体积,所有样式都通过单元格来设置是不行的,可以从table样式和命名样式来入手。
导入您上传的json文件,sheet内为1000多行,20多列的table。
1、对于公用样式(如背景色,字号),可以在设计器中 通过 新建表格样式(如下图),设计整个table的样式。
image.png682799987.png
2、对于需要多个单元格共用的样式,可以通过命名样式来自定义。
(技术博客链接:https://gcdn.grapecity.com.cn/fo ... 5492&extra=page%3D1
image.png297501219.png
image.png12477415.png

3、对于单个单元格需要设置的样式,再通过 setStyle 单独设置。
上面设计器行为都是可以通过SJS 接口来实现的,如下:
https://demo.grapecity.com.cn/sp ... les.TableStyle.html
https://demo.grapecity.com.cn/sp ... .html#addNamedStyle
https://demo.grapecity.com.cn/sp ... sheet.html#setStyle





回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部