Derrick.Jiao 发表于 2020-12-8 15:12:52

SpreadJS删除指定列导出Excel

背景:有小伙伴在使用SpreadJS的时候会有这一个需求,表格在展示的时候需要将表格的内容完全展示,但是导出Excel的时候需要删除某行或者某列。ExcelIO用作导入导出Excel,但是无法删除指定行列导出。

思路:我们在初始化的时候可以创建两个workbook,一个用于数据展示,一个用于导出Excel。我们将展示的workbook1通过toJSON转为ssjson,再通过formJSON导入到workbook2。这时候我们需要的操作(删除行列等)都在workbook2中进行。Excel也是将workboo2导出。

我们来看下代码:
首先,我们创建两个DOM承载两个workbook,并将其中一个隐藏。
<div id="ss" class="sample-spreadsheets"></div>
<div id="ss1" class="sample-spreadsheets" style="display: none;"></div>

然后,我们将workbook1的数据toJSON,并在workbook2 fromJSON
spread.fromJSON(jsonData);
    var str = spread.toJSON()
    spread1.fromJSON(str);

此时,我们需要删除最后两列导出,只需在workbook2中操作,这部分用户是无感知的
var sheet = spread1.getActiveSheet();
    sheet.deleteColumns(6,2);

实现效果如下,页面展示的G和H导出后消失


下载附件即可查看完整代码

果果xxxxk 发表于 2021-12-7 16:54:09

请问deleteColumns是哪个版本支持的,谢谢&#128591;

果果xxxxk 发表于 2021-12-7 17:08:13

如果执行两遍sheet.deleteColumns(col, colCount);
是会相应第二次的列的索引吧?

Derrick.Jiao 发表于 2021-12-7 17:55:40

果果xxxxk 发表于 2021-12-7 17:08
如果执行两遍sheet.deleteColumns(col, colCount);
是会相应第二次的列的索引吧?

v9就开始支持了,这是v9的用法


删除之后,后面的行索引也会发生变化,需要重新确定行索引。
页: [1]
查看完整版本: SpreadJS删除指定列导出Excel