找回密码
 立即注册

QQ登录

只需一步,快速开始

Wmh20210707

注册会员

13

主题

26

帖子

91

积分

注册会员

积分
91
Wmh20210707
注册会员   /  发表于:2022-12-26 15:11  /   查看:857  /  回复:3
本帖最后由 Clark.Pan 于 2023-1-10 13:44 编辑

现有需求:

导出指定的列的图表,可以指定某些列可见或不可见。
我此处使用了 sheet.setColumnVisible(index,boolean),这个方法。
之后使用了spread.tojson()方法


image.png187951048.png
问题是,当我这样导出后,原有视图也随之更改。比如我指定“序号”列和“借款人姓名”列,不可见。点导出后,原视图这两列也不可见。

我的需求是:原视图不变,仅导出的excel内容,指定列不可见。
我应该如何去做呢?

3 个回复

倒序浏览
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-12-26 18:12:47
沙发
您在导出的excel时,可以复制一份spread,

var spread = new GC.Spread.Sheets.Workbook();
此时在此spread对象上,获取sheet,然后设置是否可见。然后通过toJSON()导出此复制后的工作簿对象。
如下代码 所示
image.png559412536.png
  1. var temp_spread = new GC.Spread.Sheets.Workbook()
  2.                 let json = spread.toJSON();
  3.                 temp_spread.fromJSON(json) //复制到空的工作簿
  4.                 var sheet2 = temp_spread.getActiveSheet()
  5.                 //复制空工作簿后,修改列是否可见


  6.                 let fileName= 'demo.xlsx';
  7.                 var export_json = JSON.stringify(temp_spread.toJSON());
  8.                 excelIo.save(export_json, function (blob) {
  9.                     saveAs(blob, fileName);
  10.                 }, function (e) {
  11.                     console.log(e);
  12.                 });
复制代码


回复 使用道具 举报
Wmh20210707
注册会员   /  发表于:2022-12-28 13:14:16
板凳
试了一下,这样做,表格里的数据没有带过去。我还是导出后手动设置所有列可见,这样比较简单。
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-12-28 17:06:58
地板
本帖最后由 Ellia.Duan 于 2023-1-10 13:55 编辑

您的问题解决了就好。有问题随时沟通
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部