在项目中,我们经常需要将查找出来的jqGrid表单导出成Excel。原先的做法是跳转到后端,然后通过数据库中再查找一次,最后用POI导出。然而,随着需要查找的表格增多,一系列问题也随之出现:
1. 每次导出时,都需要针对性地修改代码。
2. 如果数据查询复杂,无疑会增加数据库的负担,以及导出的等待时间。
为了解决这些问题,我开始寻找相关的JavaScript导出插件。虽然网上关于这方面的内容相对较少,但经过一番努力,我终于找到了tableExport这款插件。它不仅支持导出为Excel格式,还支持导出为txt、word、json等其他数据格式。
由于这款插件最初是为table组件设计的,所以在使用到jqGrid上时,需要进行一些修改。首先,我们需要对源码进行一些调整。其次,由于这款插件是国外开发的,缺少对中文的支持。幸运的是,这些问题最终都得到了解决。
以下是我修改后的代码及效果图:
```javascript
// 修改了一部分源码
// base64部分,解决编码问题
// 新增两个encode方法对UTF-8进行编码,修改return方法。
$(this).filter(':visible').find('th') 中的可见过滤器删掉 ,
修改成
$(this).find('th')
```
最后,我附上了我的代码供大家参考。这个示例使用的是jqGrid中的新手demo。您可以访问以下链接查看代码:
https://pan.baidu.com/s/1kq7eFoYw5MhpDMo9QINxWQ
提取码:fw1d