找回密码
 立即注册

QQ登录

只需一步,快速开始

scodi

注册会员

11

主题

37

帖子

114

积分

注册会员

积分
114
scodi
注册会员   /  发表于:2021-11-17 18:04  /   查看:3355  /  回复:13
本帖最后由 Clark.Pan 于 2021-11-17 18:19 编辑

问题:已经定义好一个模版

image.png25559386.png
使用了spreadJs在浏览器可以填充数据并且导出excel。
比如有10组数据,分别导出10个excel目前是没有问题的,但是现在有一个进阶版的需求,希望能只导出一个excel,最好是一个sheet(sheet太多不好阅读)。就是说这个模版需要循环10次,然后内容都在一个sheet里,能实现吗?







13 个回复

倒序浏览
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-11-19 09:37:35
推荐
scodi 发表于 2021-11-19 09:26
试了一下copyTo
这个方法是不是对复制的区域大小有要求?
报无效的 row count: 9(必须在1到17之间)

这边写了一个demo,你可以参考一下

区域模板.zip

5.21 KB, 下载次数: 285

回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-11-17 18:18:55
沙发
这个牵扯到sheet之间合并的操作,比较复杂,需利用到前后端结合的方式来完成。后端要用到GcExcel的组件。您可以具体提供一下您的模板和测试数据,期望的效果原型。我们调研一下能否实现。
回复 使用道具 举报
scodi
注册会员   /  发表于:2021-11-17 18:39:52
板凳
我们只有spreadJs

这是模版json 1637142537176.JSON (45.42 KB, 下载次数: 254)
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-11-18 10:54:18
地板
scodi 发表于 2021-11-17 18:39
我们只有spreadJs

这是模版json

如果是在同一个sheet中复用同一个模板这种情况,就单从SpreadJS而言,只能在同一个表单上设计多个相同的模板并且给上不同的绑定路径。
也就是类似下面的设计,并且给上不同的绑定路径
image.png479017333.png
回复 使用道具 举报
scodi
注册会员   /  发表于:2021-11-18 11:31:10
5#
这样肯定不行,数据的条数是变化的。
那么换一种思路,我知道在不同的sheet中复用模版的方法,应该就是直接改变ssjson的object对象,然后再依次对sheet进行setDataSource,如果说的不对请指正。
这样对话我得到了很多sheet,最后我有没有办法把这些sheet合并成一个sheet?
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-11-18 12:30:04
6#
scodi 发表于 2021-11-18 11:31
这样肯定不行,数据的条数是变化的。
那么换一种思路,我知道在不同的sheet中复用模版的方法,应该就是直 ...

就SpreadJS来说,我们有区域模板可以实现,可以直接使用,但是无法对这个模板进行编辑且导出excel
https://demo.grapecity.com.cn/sp ... lls/range-template#

不过,可以参考上面这个链接的思路,自己实现一个区域模板的功能。
例如,我们创建的模板为下图。然后根据需求去复用时,先加载这个模板。
image.png103839720.png

其中,我们可以用copyTo这个接口将对应的模板进行复制,这是api
https://demo.grapecity.com.cn/sp ... rksheet.html#copyTo

例如复用两次之后,我们将模板的路径改为下图所示。最后就根据数据源和绑定路径进行绑定。
image.png147194518.png
回复 使用道具 举报
scodi
注册会员   /  发表于:2021-11-19 09:26:03
7#
试了一下copyTo
这个方法是不是对复制的区域大小有要求?
报无效的 row count: 9(必须在1到17之间)
回复 使用道具 举报
scodi
注册会员   /  发表于:2021-11-19 10:51:59
9#
这个例子copyTo的rowCount参数很小,你改大一点试试,比如30
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-11-19 11:04:40
10#
scodi 发表于 2021-11-19 10:51
这个例子copyTo的rowCount参数很小,你改大一点试试,比如30

这个rowCount是指被复制的rowCount,也就是最开始的模板的行数。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部