找回密码
 立即注册

QQ登录

只需一步,快速开始

酷比勒

注册会员

5

主题

15

帖子

66

积分

注册会员

积分
66
最新发帖
酷比勒
注册会员   /  发表于:2024-4-9 09:11  /   查看:553  /  回复:7
1金币
本帖最后由 Richard.Huang 于 2024-4-11 15:51 编辑

产品:SpreadJS
版本:V17.0.6

使用spread.export方法导出excel文件,但是不能导出绑定的数据,而是把模板的数据导出了。
已经设置includeBindingSource: true
我的需求是把多个spread对象合并成一个spread导出至同一个excel文件的不同sheet中。
  1. <div>
  2. <div>  for (let i = 0; i < spreadRefs.length; i++) {
  3.     const tempSpread = spreadRefs[i];
  4.     const sheetCount = tempSpread.getSheetCount();
  5.     for (let j = 0; j < sheetCount; j++) {
  6.       const sheet = tempSpread.getSheet(j);
  7.       let sheetJSON = JSON.stringify(sheet.toJSON());
  8.       const newSheet = new GC.Spread.Sheets.Worksheet('sheet' + i + '_');
  9.       newSheet.fromJSON(JSON.parse(sheetJSON));
  10.       newSheet.name(sheetNames[i]);
  11.       spread.addSheet(spread.getSheetCount(), newSheet);
  12.     }
  13.   }
  14.   spread.removeSheet(0);
  15.   spread.export(
  16.      function (blob: any) {
  17.       saveAs(blob, 'test.xlsx');
  18.     },
  19.     function () {
  20.     },
  21.     {
  22.       fileType: GC.Spread.Sheets.FileType.excel,
  23.       includeBindingSource: true,
  24.       includeStyles: true,
  25.       includeFormulas: true,
  26.       saveAsView: false,
  27.       rowHeadersAsFrozenColumns: false,
  28.       columnHeadersAsFrozenRows: false,
  29.       includeUnusedNames: false,
  30.       includeEmptyRegionCells: false,
  31.       includeAutoMergedCells: false,
  32.       includeCalcModelCache: false,
  33.     },
  34.   );</div></div>
复制代码

7 个回复

倒序浏览
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-4-9 10:02:00
沙发
您好,注意到您在export之前,通过fromJSON和toJSON实现了工作簿的合并,但是您没有配置对应的option,因此在toJSON时丢失了对应的绑定数据,您应该在toJSON是也将includeBindingSource也设置为true:https://demo.grapecity.com.cn/sp ... 5%E5%AF%BC%E5%87%BA
image.png678147277.png
回复 使用道具 举报
酷比勒
注册会员   /  发表于:2024-4-9 16:17:32
板凳
我重新设置DataSource,数据可以导出了。
但是我导出的样式不正确,导出excel的表格高度与合并单元格样式都不存在了,这个是什么原因呢?
回复 使用道具 举报
酷比勒
注册会员   /  发表于:2024-4-9 16:19:57
地板
Richard.Huang 发表于 2024-4-9 10:02
您好,注意到您在export之前,通过fromJSON和toJSON实现了工作簿的合并,但是您没有配置对应的option,因此 ...

我重新设置DataSource,数据可以导出了。
但是我导出的样式不正确,导出excel的表格高度与合并单元格样式都不存在了,这个是什么原因呢?
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-4-9 17:29:16
5#
酷比勒 发表于 2024-4-9 16:19
我重新设置DataSource,数据可以导出了。
但是我导出的样式不正确,导出excel的表格高度与合并单元格样 ...

您好,您说的表格高度和合并单元格指的是table还是工作簿,如果是前者,那么原因是因为Excel文件并不支持table区域合并单元格,您可以打开一个excel文件进行测试,如果是后者,从您的代码无法判断原因所在,建议在合并之前先导出成xlsx文件查看是否存在问题。如果依然无法找到问题所在,建议提供一份可供我们复现的demo,方便我们进一步调研,或者在我附件demo 的基础上进行更改,只要能让我们复现即可。

SpreadJS合并多个文件.html

8.32 KB, 下载次数: 27

回复 使用道具 举报
酷比勒
注册会员   /  发表于:2024-4-13 13:12:46
6#
Richard.Huang 发表于 2024-4-9 17:29
您好,您说的表格高度和合并单元格指的是table还是工作簿,如果是前者,那么原因是因为Excel文件并不支持 ...

请问您的demo是在V17版本上吗?
我的问题在V17版本没问题。
V16版本出错,连续两次导出时,第二次导出会提示下面错误。
  1. TypeError: Cannot read properties of undefined (reading 'length')
  2.     at R.getStyleIndex (chunk-IEAEV474.js?v=85172c90:5331:153)
  3.     at Z.wh (chunk-IEAEV474.js?v=85172c90:12732:460)
  4.     at Q.Workbook.wh (chunk-IEAEV474.js?v=85172c90:6659:69)
  5.     at F.Workbook.save (@grapecity_spread-sheets-io.js?v=5ad7548b:11633:68)
  6.     at F.Workbook.export (@grapecity_spread-sheets-io.js?v=5ad7548b:11618:16)
  7.     at gamenPrint (TEST.vue:1721:3)
  8.     at callWithErrorHandling (chunk-LK3QBVAH.js?v=85172c90:1806:18)
  9.     at callWithAsyncErrorHandling (chunk-LK3QBVAH.js?v=85172c90:1814:17)
  10.     at emit (chunk-LK3QBVAH.js?v=85172c90:2092:5) Proxy(Object) 'https://vuejs.org/errors/#runtime-6'
复制代码
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-4-15 09:31:49
7#
酷比勒 发表于 2024-4-13 13:12
请问您的demo是在V17版本上吗?
我的问题在V17版本没问题。
V16版本出错,连续两次导出时,第二次导出 ...

您好,看您帖子描述是V17版本,您目前V16版本有问题可以考虑升级到V17后进行测试和使用
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2024-4-24 11:31:33
8#
没有看到您再回复,这个帖子先结帖了。如果有新的问题,可以发新帖沟通
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部