JS&简单POI实现前端多个jqgrid列表导出Excel

前两天接到一个需求,用户需要将前端展示的多个jqgrid批量导出,因为jqgrid是动态生成的多个列表,并且具有相同行合并效果,由于每个列表没有分页,所以打算通过前端将数据收集,而不是利用POI进行数据查询再导出。

1.首先要获取每个jqgrid名字,该项可以通过定义变量,在每次动态生成的时候将名字存入一个数组。

JS&简单POI实现前端多个jqgrid列表导出Excel

2.通过js遍历每个jqgrid的列标题和数据内容,存入数组,此处根据具体需求修改,由于我是要导出的带有合并同类行的效果,所以当发现下一行如果和上一行的标题列相同就不显示。

JS&简单POI实现前端多个jqgrid列表导出Excel

3.并不是纯前端实现导出,所以要将数据传到后台,拼form表单提交,将数据放入隐藏域,通过Java POI技术导出,前面遍历出来的是数组。

JS&简单POI实现前端多个jqgrid列表导出Excel

4.后台处理很简单,因为不需要根据条件去数据库查询,只需要将我们传过去的数据按上面约定好的每个jqgrid按照@符号分割,然后循环创建sheet就好,此处可以改善,比如给每个sheet命名,加上一些样式,或者把每个jqgrid放入同一sheet页等,不过这些都不是事,做到现在就能愉快的导出啦~

JS&简单POI实现前端多个jqgrid列表导出Excel