在项目中,我们经常需要将查找出来的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