请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

uviwwer

金牌服务用户

6

主题

7

帖子

53

积分

金牌服务用户

积分
53
uviwwer
金牌服务用户   /  发表于:2021-2-22 11:27  /   查看:1540  /  回复:2
我们系统前台用的vue+SPreadjs,目前用户需要编辑的数据6000行,大概100多列,如果不设定文本格式,用户在单元格内输入2021/1/1,我们后台值获取到的是/OADate(44197)/,如果设定文本格式,目前按区域设定的,该挂起绘画也挂起了,效率又非常低,设定一次大概10秒左右,代码如下:
sheet.suspendPaint();
sheet.getRange(1, 1, sheet.getRowCount(), sheet.getColumnCount()).formatter(new GC.Spread.Formatter.GeneralFormatter('@'));
sheet.resumePaint();


这种情况该如何解决?

2 个回复

倒序浏览
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-2-22 11:41:31
沙发
您好,关于设置区域文本格式这边测试了6000行、200列的表格没有复现您描述的问题,这边测试大概时间为3s左右。建议您在加载您的json文件前设置格式。或者您上传一下能复现问题的demo,这边看下具体是什么原因。
image.png88008421.png

另外,关于OADate的问题您可以参考这个链接,获取指定区域的数据可以getArray,然后进行响应的转换。
https://gcdn.grapecity.com.cn/fo ... mp;highlight=OADATE
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-2-22 11:51:12
板凳
另外,您可以尝试用setDefaultStyle的方式添加整个表单的默认样式为文本
var style = new GC.Spread.Sheets.Style();
style.formatter = "@";
sheet.suspendPaint();
sheet.setDefaultStyle(style)
sheet.resumePaint();
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部