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

QQ登录

只需一步,快速开始

tiny88

注册会员

12

主题

40

帖子

104

积分

注册会员

积分
104
tiny88
注册会员   /  发表于:2024-9-20 16:49  /   查看:182  /  回复:7
5金币
系统里表格都存成ssjson格式情况下,希望可以实现批量导出。可以提供解决方案或者思路吗

最佳答案

查看完整内容

请问下图文之间的联系是什么呢? 如果您的业务场景中从数据库获取ssjson文件,也有可行方案。SpreadJS的导出Excel和PDF分别需要通过Workbook:export()和Workbook:savePDF()触发,也就是需要一个Workbook实例。但是,您也说“希望用户在不打开页面情况下一键导出文件”,那么,就需要在导出前创建一个不可见的Workbook实例,在其中读入ssjson文件,再通过该Workbook执行导出。要让Workbook不可见,只需要在创建Workbook实例时 ...

7 个回复

倒序浏览
最佳答案
最佳答案
Wilson.Zhang
超级版主   /  发表于:2024-9-20 16:49:16
来自 6#
tiny88 发表于 2024-9-25 08:54
ssjson文件是保存在数据库里的,希望用户在不打开页面情况下一件导出文件

请问下图文之间的联系是什么呢?

如果您的业务场景中从数据库获取ssjson文件,也有可行方案。SpreadJS的导出Excel和PDF分别需要通过Workbook:export()和Workbook:savePDF()触发,也就是需要一个Workbook实例。但是,您也说“希望用户在不打开页面情况下一键导出文件”,那么,就需要在导出前创建一个不可见的Workbook实例,在其中读入ssjson文件,再通过该Workbook执行导出。要让Workbook不可见,只需要在创建Workbook实例时不传入DOM元素即可。可参考如下伪码:

  1. //  假设存储了ssjson文件数据
  2. var ssjsonList = [];
  3. ssjsonList.forEach(ssjsonItem => {
  4.     //  创建Workbook,在浏览器页面上不可见
  5.     var curWorbook = new GC.Spread.Sheets.Workbook();
  6.     //  读入ssjson文件
  7.     curWorbook.import(ssjsonFile, successCallback?, errorCallback?, importOptions?);
  8.     //  导出为Excel文件
  9.    curWorbook.export(successCallback?, errorCallback?, exportOptions?);
  10.     //  导出为PDF文件
  11.     curWorbook.savePDF(successCallback, errorCallback, options?, sheetIndex?);
  12. });
复制代码



回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-9-23 09:42:42
2#
您好!SpreadJS本就支持将Workbook中的每个Worksheet单独导出为.ssjson,在导出时指定对应Worksheet索引即可,如下图所示:

1727055617510.png955255432.png

您当下描述的需求是否想实现:一次性将Workbook中的每个Worksheet全部导出为单独的.ssjson文件,再将每个.ssjson文件转为excel和pdf文件。我们的理解是否符合您的需求,如若存在偏差,需要您详细介绍下您的实现目标。
回复 使用道具 举报
tiny88
注册会员   /  发表于:2024-9-23 10:33:31
3#
Wilson.Zhang 发表于 2024-9-23 09:42
您好!SpreadJS本就支持将Workbook中的每个Worksheet单独导出为.ssjson,在导出时指定对应Worksheet索引即 ...

是这样的,假如有100个ssjson文件,一次导出100个pdf或100excel文件,可以吗
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-9-23 12:21:04
4#
tiny88 发表于 2024-9-23 10:33
是这样的,假如有100个ssjson文件,一次导出100个pdf或100excel文件,可以吗

那您场景中的100个.ssjson文件是如何准备的呢?实时上传还是对Workbook中的多个Worksheet或多个Workbook实时保存的呢?如果单个文件大小不重的话,性能和功能都可以支持,借助Workbook:export()和Workbook:savePDF()自定义实现即可。

可以参考官网API文档了解详情:
Workbook:export()--https://demo.grapecity.com.cn/sp ... ets.Workbook#export
Workbook:savePDF()--https://demo.grapecity.com.cn/sp ... ts.Workbook#savepdf
回复 使用道具 举报
tiny88
注册会员   /  发表于:2024-9-25 08:54:47
5#
本帖最后由 tiny88 于 2024-9-25 09:02 编辑
Wilson.Zhang 发表于 2024-9-23 12:21
那您场景中的100个.ssjson文件是如何准备的呢?实时上传还是对Workbook中的多个Worksheet或多个Workbook ...

ssjson文件是保存在数据库里的,希望用户在不打开页面情况下一件导出文件
image.png883742675.png
image.png480527953.png
回复 使用道具 举报
tiny88
注册会员   /  发表于:2024-9-25 11:29:58
7#
Wilson.Zhang 发表于 2024-9-25 11:11
请问下图文之间的联系是什么呢?

如果您的业务场景中从数据库获取ssjson文件,也有可行方案。SpreadJS ...

图文没有关系,可能是平台bug,感谢回复,可结帖
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-9-25 11:53:17
8#
本帖最后由 Wilson.Zhang 于 2024-9-25 11:56 编辑
tiny88 发表于 2024-9-25 11:29
图文没有关系,可能是平台bug,感谢回复,可结帖

看来您的问题应该得到了有效解决方案,那就结帖了。如有问题,欢迎发新帖沟通。




您可以通过上传图片功能将不需要的图片清除,避免带入到帖子或回复中,如下图所示,不是平台bug。
1727236502727.png926855773.png

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