Extjs导出excel数据
来源:互联网 发布:双11数据 编辑:程序博客网 时间:2024/05/16 06:48
环境:前台:Extjs;后台hibernate+struct
需求:前台查询结果分页显示,导出到excel时需要导出所有符合查询调节的记录。
前台:
var panel = Ext.getCmp('qRINFPanel');var form = panel.getForm();var params = grid.getStore().baseParams;params['filename']='projects.xls';params['q_pDomain'] = getAgentDomain();form.standardSubmit=true;var paramstr='';for(var s in params){paramstr+=s+"="+params[s]+"&";}var reg=new RegExp('undefined','g'); //创建正则RegExp对象 paramstr=paramstr.replace(reg,''); //去掉未赋值的参数默认值form.url='exportProjects.action?'+paramstr;form.method='POST';form.submit();
qRINFPanel为panel的id,params里面还有其他参数,这个是存储前台查询用的参数对象。
前台将查询参数转换为json格式放在url中(不要用Extjs.encode方法,很坑,后台request.getParameter获取不到),后台拿到查询参数后,从数据库查询记录,然后生成excel,以流的形式输出到前台下载即可。
后台代码:
public void exportProjects() {boolean status = false;String rtnMsg = "项目信息导出失败";ServletOutputStream os = null;System.out.println("导出检索到的项目信息");fileName = request.getParameter("filename");List<ProjectCell> projectList = getProjects("", "");try {response.reset();response.setContentType("application/msexcel;charset=UTF-8");response.setCharacterEncoding("UTF-8");response.addHeader("Content-Disposition", "attachment;filename=\""+ new String(fileName.getBytes("UTF-8"), "ISO8859_1")+ "\"");os = response.getOutputStream();// 判断格式String type = getPostfix(fileName);System.out.println(type);if (type.equals("")) {status = false;rtnMsg = "未知的文件格式";} else if (type.equalsIgnoreCase("xls")) {writeXLS(os, projectList);status = true;rtnMsg = "项目信息导出成功";os.flush();os.close();// rtnMsg=file.getAbsolutePath().replace("\\", "/");} else if (type.equalsIgnoreCase("xlsx")) {writeXLSX(os, projectList);status = true;rtnMsg = "项目信息导出成功";os.flush();os.close();} else {status = false;rtnMsg = "不支持的文件格式:" + type;}} catch (FileNotFoundException e) {e.printStackTrace();status = false;rtnMsg = "服务器文件不存在,请联系管理员";} catch (IOException e) {e.printStackTrace();status = false;rtnMsg = "服务器文件操作IO异常,请联系管理员";} catch (NullPointerException e) {e.printStackTrace();status = false;rtnMsg = "空指针异常,请联系管理员";}/** * 获取操作结果 */String result = "{success:" + status + ",rtnMsg:'" + rtnMsg + "'}";System.out.println(result);}
其中,getProjects("","") 方法是从request中取参数进行查询,返回List数组
0 0
- Extjs导出excel数据
- Extjs中将数据导出为Excel表格
- ExtJS:Grid数据导出至excel实例
- ExtJS实现Excel导出
- Extjs导出Excel
- ExtJS实现Excel导出
- extjs中导出excel
- ExtJS 导出 Excel
- ExtJS实现Excel导出
- ExtJs grid导出Excel
- ExtJS实现Excel导出
- extjs导出Excel文档
- ExtJS实现Excel导出
- Extjs将GridPanel中的数据导出到Excel的方法
- ExtJS Grid 导出Excel文件
- extjs grid 分页 导出 excel
- extjs 导出Excel 解决方法 extjs export excel 信息 消息
- ExtJs Grid导出到Excel(修正版)
- jquery ajax实例
- 兔子--Android Studio出现错误:Error:Execution failed for task ':myapp:dexDebug'. com.android.ide.common.pro
- 报考指导:盘点985高校中的20所“精英大学”
- UML
- .html执行php
- Extjs导出excel数据
- Get max consecutive occurrences of value in array
- 什么是硬件设计
- Oracle插入之 insert all、insert first
- 985大学名单及分档排名分析
- 汉诺塔 递归与非递归实现 (2)
- csdn 回文距离
- 河南省第七届程序设计大赛A.物资调度
- 阿里巴巴新手,如何入门,该从哪里开始学习-阿里巴巴学习--潭州阿里巴巴