背景:有小伙伴在使用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导出后消失
下载附件即可查看完整代码
|
|