找回密码
 立即注册

QQ登录

只需一步,快速开始

面向对象

注册会员

9

主题

27

帖子

86

积分

注册会员

积分
86
面向对象
注册会员   /  发表于:2017-11-7 19:23  /   查看:6913  /  回复:13
现有需求需要进行数据绑定数据有三列
第一列是文本数据,第二列第三列是金额数据
但是目前数据绑定上去都是默认格式
金额格式的设置》
var cell = sheet.getRange(data.row + 1, data.col, data.data.length, data.colCount + 1);
cell.formatter("0.00");
文本格式的设置》
var cell1 = sheet.getRange(data.row - 1, data.col, data.data.length, 1);
cell1.hAlign(GC.Spread.Sheets.HorizontalAlign.center);
设置列宽》
sheet.setColumnWidth(data.row - 1, 350);
设置行高》
for(var r = data.row; r < data.data.length;r++){
sheet.setRowHeight(r,30);
}

使用如上代码去进行样式和格式设置,但是会相当的慢,导致页面出现无响应。

我现在有没有办法去解决这种问题
比如我在数据绑定的时候就把样式作为数据绑定的一个参数设置进去,有没有提供这样的一个API

谢谢!

13 个回复

倒序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-11-8 11:56:14
沙发
本帖最后由 ClarkPan 于 2017-11-8 12:00 编辑

您好,绑定时候在colInfo中可以设置该列的formatter, 参考
http://demo.gcpowertools.com.cn/ ... s/sheetLevelBinding
image.png772591247.png 另外列宽也是可以在里面进行设置的,size属性就是
其余设置循环进行设置的,如果您发现设置还是很慢,您可以在设置之前使用suspendPaint来暂停重绘,全部设置完之后使用resumePaint一并重绘,减少重绘次数,提高性能。
回复 使用道具 举报
面向对象
注册会员   /  发表于:2017-11-8 16:32:43
板凳
ClarkPan 发表于 2017-11-8 11:56
您好,绑定时候在colInfo中可以设置该列的formatter, 参考
http://demo.gcpowertools.com.cn/ ... s/shee ...

样式问题已解决,我是直接使用暂停绘制的方法操作,好多了

现在又有一个问题,我在表格中使用了数据绑定,之后再导出,导出的文件总是会报错误提示

然后绑定的动态数据在导出文件中根本就没有了。
回复 使用道具 举报
面向对象
注册会员   /  发表于:2017-11-8 16:44:20
地板
面向对象 发表于 2017-11-8 16:32
样式问题已解决,我是直接使用暂停绘制的方法操作,好多了

现在又有一个问题,我在表格中使用了数据绑 ...

导出代码
/**
* 导出台账实例数据
*/
function exportAccountInst() {
        var fileName = taskInstInfo["taskName"] + ".xlsx";
        var json = spread.toJSON();
        // 若需要对导出文件设置密码,传入password属性即可
        // var password = $("#password").val();
        excelIo.save(json, function(blob) {
                saveAs(blob, fileName);
        }, function(e) {
                Alert.error("导出台账实例失败!");
        }/*
                 * , { password : password }
                 */);
}
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-11-8 18:29:09
5#
您好:
导出绑定内容需要添加includeBindingSource: true 像这样
spread.toJSON( { includeBindingSource: true } )
参考文档:
http://demo.gcpowertools.com.cn/ ... dataSourceSerialize
回复 使用道具 举报
面向对象
注册会员   /  发表于:2017-11-8 20:26:19
6#
ClarkPan 发表于 2017-11-8 18:29
您好:
导出绑定内容需要添加includeBindingSource: true 像这样
spread.toJSON( { includeBindingSource ...

OK绑定数据是导出来了,但是提示信息还是有

blob425239257.png

blob819118346.png

还有这个导出的格式是定的吗?

这样的话公式什么的不生效了就,需要双击选中单元格之后才能生效,而实际中数据行很多,这样一个个点的话会很头疼。
blob108643492.png

回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-11-9 09:22:50
7#
面向对象 发表于 2017-11-8 20:26
OK绑定数据是导出来了,但是提示信息还是有

这个问题应该不是格式的问题,您把您导出的ssjson和导出的Excel都发来我看一下具体是什么原因。
回复 使用道具 举报
面向对象
注册会员   /  发表于:2017-11-9 10:34:15
8#
ClarkPan 发表于 2017-11-9 09:22
这个问题应该不是格式的问题,您把您导出的ssjson和导出的Excel都发来我看一下具体是什么原因。

/**
* 导出台账实例数据
*/
function exportAccountInst() {
        var json = "";
        if(existDataSource){
                json = spread.toJSON({ includeBindingSource: true});
        }else{
                json = spread.toJSON();
        }
        var fileName = taskInstInfo["taskName"] + ".xlsx";
        // 若需要对导出文件设置密码,传入password属性即可
        // var password = $("#password").val();
        excelIo.save(json, function(blob) {
                saveAs(blob, fileName);
        }, function(e) {
                Alert.error("导出台账实例失败!");
        }/*
                 * , { password : password }
        */);
}

JSON EXCEL.zip

25.9 KB, 下载次数: 169

导出的Excel和JSON文件

回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-11-9 15:17:46
9#
您好,原因是这样的在SpreadJS中table 的名称是可以重名的,但是在Excel中是不可以的。所以导出Excel就会报错。解决方法,您修改一下table的名称,让其不重名就可以了
回复 使用道具 举报
面向对象
注册会员   /  发表于:2017-11-9 15:44:25
10#
ClarkPan 发表于 2017-11-9 15:17
您好,原因是这样的在SpreadJS中table 的名称是可以重名的,但是在Excel中是不可以的。所以导出Excel就会报 ...

谢谢!关于报错问题已解决。
现在问题是我在数据绑定的表格下面设置了一个合计行,手动的写入了SUM公式,列的格式同设为“#,##0.00”,在系统中是正常生效的

但是导出后,所有数据都是以文本形式显示,SUM计算的结果就全部为0了,如下
blob810779723.png
我在双击对应金额的单元格之后,SUM才计算出正确结果
blob233722838.png

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