找回密码
 立即注册

QQ登录

只需一步,快速开始

sherclock

初级会员

34

主题

77

帖子

259

积分

初级会员

积分
259
sherclock
初级会员   /  发表于:2018-9-17 15:39  /   查看:6844  /  回复:12
我在数据库中查询出来数据绑定以后,然后再导出发现,导出来的数据是空的,但实际有值
image.png337290953.png image.png62509154.png


image.png57977293.png
image.png52116087.png

image.png25317687.png
image.png393606871.png


最后导出结果是: image.png468714904.png
为啥是空的?
image.png834707946.png

12 个回复

倒序浏览
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-9-17 17:41:54
沙发
您好,您这个问题应该出在toJSON()方法上,

如果你希望把绑定的数据连同表格模板一同导出,需要为toJSON()传一个参数

spread.toJSON( { includeBindingSource: true } )

参考葡萄城官网的学习指南:
https://demo.grapecity.com.cn/Sp ... dataSourceSerialize
回复 使用道具 举报
miaomiao
初级会员   /  发表于:2019-8-19 11:20:42
板凳
KevinChen 发表于 2018-9-17 17:41
您好,您这个问题应该出在toJSON()方法上,

如果你希望把绑定的数据连同表格模板一同导出,需要为toJSON ...

请问能不能把绑定的数据样式一起保存导出?
回复 使用道具 举报
yupeng
注册会员   /  发表于:2019-8-19 11:37:51
地板
miaomiao 发表于 2019-8-19 11:20
请问能不能把绑定的数据样式一起保存导出?

toJSON()方法导出,是带有样式的
回复 使用道具 举报
miaomiao
初级会员   /  发表于:2019-8-19 13:19:31
5#
本帖最后由 miaomiao 于 2019-8-19 13:22 编辑
yupeng 发表于 2019-8-19 11:37
toJSON()方法导出,是带有样式的

C:\Users\Admin\Pictures\Saved Pictures\11.pngC:\Users\Admin\Pictures\Saved Pictures\22.png

打印excel文件样式

打印excel文件样式

spreadjs中样式

spreadjs中样式
在页面里展示的和打印出来的绑定数据的样式是不同的
回复 使用道具 举报
miaomiao
初级会员   /  发表于:2019-8-19 13:27:50
6#
KevinChen 发表于 2018-9-17 17:41
您好,您这个问题应该出在toJSON()方法上,

如果你希望把绑定的数据连同表格模板一同导出,需要为toJSON ...

请问绑定数据样式没打印出来怎么解决

打印出的样式

打印出的样式

spread中样式

spread中样式
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-8-19 17:50:30
7#
您好,请您提供一下能重现问题的Demo,我们先排查一下问题的原因
回复 使用道具 举报
miaomiao
初级会员   /  发表于:2019-8-20 09:08:49
8#
KevinChen 发表于 2019-8-19 17:50
您好,请您提供一下能重现问题的Demo,我们先排查一下问题的原因

您好,我在设置table的时候是这样写的var table = sheet.tables.add('tableRecords', labels.beginCell.row, labels.beginCell.col, 1, names.length, tableStyle);

因为我希望他能插入行,所以rowCount参数只设置了1,所以打印后插入行没有样式,请问怎么给table插入行添加样式?
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-8-20 11:58:50
9#
明白了,实际上如果table是自带样式的,插入行时可以自带样式,

但注意到您的table删除了默认样式,那只能在插入行后执行两步操作:

1、采用copyTo方法复制前一行的样式,参考API:

https://demo.grapecity.com.cn/sp ... rksheet~copyTo.html

copyTo最后一个参数传入GC.Spread.Sheets.CopyToOptions.style 就可以实现只拷贝样式,参考API:

https://demo.grapecity.com.cn/sp ... .CopyToOptions.html

2、调用getRowHeight获取上一行行高,再调用setRowHeight统一行高即可。

https://demo.grapecity.com.cn/sp ... t~setRowHeight.html

https://demo.grapecity.com.cn/sp ... t~getRowHeight.html

评分

参与人数 1满意度 +5 收起 理由
miaomiao + 5 很给力!

查看全部评分

回复 使用道具 举报
miaomiao
初级会员   /  发表于:2019-8-20 14:37:32
10#
本帖最后由 miaomiao 于 2019-8-20 15:13 编辑
KevinChen 发表于 2019-8-20 11:58
明白了,实际上如果table是自带样式的,插入行时可以自带样式,

但注意到您的table删除了默认样式,那只 ...

谢谢你,copyTo可以复制前一行的样式
但是现在还有一点小问题想请教一下,问题如下:

在复制样式的过程中我采用以下方式
sheet.copyTo( 5, -1, 6, 11, -1, GC.Spread.Sheets.CopyToOptions.style);
结果如下图:

一次复制多行

一次复制多行

只有第一行是居中的,和其他行样式不一致

之后我用for循环逐行复制前一行样式
结果如下图:

for循环复制样式结果

for循环复制样式结果


请问能不能一次复制多列,是我代码问题么
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部