找回密码
 立即注册

QQ登录

只需一步,快速开始

scp@dahua
金牌服务用户   /  发表于:2017-7-6 09:03  /   查看:4039  /  回复:3
如下数据绑定,设置了 position  visible: false,excel导出时会把position添加到隐藏栏位中。
请问,不需要将position导出也不要添加到隐藏栏位中,如何处理?
var datasource = [
           { name: 'Alice', age: 27, birthday: '1985/08/31', position: 'PM' }
        ];

        var colInfos = [
           { name: 'name', displayName: 'Display Name', size: 120 },
           { name: 'birthday', displayName: 'Birthday', formatter: 'd/M/yy', size: 120 },
           { name: 'age', displayName: 'Age', size: 120},
           { name: 'position', displayName: 'Position', size: 120, visible: false },
        ];
        sheet.autoGenerateColumns = false;
        
        sheet.bindColumns(colInfos);
        sheet.setDataSource(datasource);

3 个回复

倒序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-7-6 15:34:08
沙发
本帖最后由 ClarkPan 于 2017-7-6 15:38 编辑

您好,您可以在导出时先将其显示出来,再导出,再隐藏。例如您给的例子中sheet.setColumnVisible(3, true);然后导出,然后再设置sheet.setColumnVisible(3, false);
回复 使用道具 举报
scp@dahua
金牌服务用户   /  发表于:2017-7-6 15:41:01
板凳
ClarkPan 发表于 2017-7-6 15:34
您好,您可以在导出时先将其显示出来,再导出,再隐藏。例如您给的例子中sheet.setColumnVisible(3, true); ...

是我问题没描述清楚吗?  我是不需要导出隐藏栏位
因为导出到excel里后,复制会把隐藏栏位也复制出来
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-7-6 16:55:26
地板
scp@dahua 发表于 2017-7-6 15:41
是我问题没描述清楚吗?  我是不需要导出隐藏栏位
因为导出到excel里后,复制会把隐藏栏位也复制出来

您好,是这样的,导入导出我们的处理逻辑是所见即所得,也就是说您的视图中是什么样子,导出就是什么样子,如果您隐藏了,导出那么也是隐藏的。

如果您想导出是不导出隐藏列,只能讲当前spread通过fromJSON和toJSON复制一个临时的spread中,然后将临时spread中的隐藏列的数据源删除,然后导出临时spread即可。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部