Grails导出csv格式的文件
来源:互联网 发布:淘宝手机收藏地址转换 编辑:程序博客网 时间:2024/05/17 06:49
grails让csv报表的导出变得简单,如果是以前的SSH,这个操作就麻烦的多了,grails导出csv的原理其实就是运用消息头和ContentType,前端部分就是用jquery和一个jquery插件就OK了
1.csv导出前台界面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head> <script type="text/javascript" src="/easyui/jquery-1.8.0.min.js" ></script><script type="text/javascript" src="/js/jquery.count_down_2.0.js"></script><script type="text/javascript"> $("document").ready(function(){ }); var intervalId; function intervaReportHandlerTag(){ intervalId = setInterval("searchReportHandlerTag()",5000); } function loadout(){ intervaReportHandlerTag(); //$("#sub").attr("disabled", "disabled"); $('#sub').countDownInit(180, '导出结束', function() { $('#sub').countDownStop(); alert('网络超时,请稍后再试!'); }, null, null, '导出中 '); var that=$("#sub"); $("#form").submit(); $('#sub').countDownStart(); } //报表处理完成标识 function searchReportHandlerTag(){ $.post("/excelExport/searchReportHandlerTag",null,function(res){ if(res.flag){ $('#sub').countDownStop(); $("#sub").removeAttr("disabled"); $('#sub').val("导出为excel"); clearInterval(intervalId); } },'json'); }</script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>导出csv</title></head><body> <form id="form" action="/excelExport/exportExcel" method="POST"> 输入信息:<textarea rows="3" cols="40" name="message"></textarea><br/> <input type="button" id="sub" value="导出为excel" onclick="loadout()"/> </form></body></html>
界面如下:
2.控制器里的导出方法和导出状态获取的代码
def exportExcel={session.loadOver=falseresponse.setContentType("text/csv");response.setContentType("application/csv;charset=GBK");response.setHeader("Content-Disposition", "attachment;FileName=test.csv");OutputStream out = null;try {//out = new FileOutputStream(new File("d:\\text.csv"));out=response.getOutputStream();}catch (Exception e) {e.printStackTrace();}StringBuffer head = new StringBuffer();head.append("歌手名称,歌曲");head.append("\n");out.write(head.toString().getBytes("GBK"));out.flush();def sp=params.message.split(";");def buf=new StringBuffer();for(int i=0;i<sp.length;i++){def sp2=sp[i].split(",");def bf=new StringBuffer(); bf.append("\""+sp2[0]+"\"");bf.append(",\""+sp2[1]+"\"");bf.append("\n");buf.append(bf.toString());}out.write(buf.toString().getBytes("GBK"));out.flush();out.close();session.loadOver=true;}//导出标识def searchReportHandlerTag = {JSONObject json=new JSONObject()if(session.loadOver){}else{session.loadOver=false; //如果null定义为已处理完}json.put("flag", session.loadOver);render json.toString()}
最后来看下,导出时的效果
csv显示如下所示:
0 0
- Grails导出csv格式的文件
- 导出CSV格式的文件
- 用csv格式的文件代替poi导出xls文件
- android 将SQLite数据库的表格导出为csv格式,并解析csv文件
- 导出CSV文件,中文乱码,使用“GB2312”格式导出
- DateGridView导出到csv格式的Excel
- HBase导出CSV格式数据的方法
- php导入导出CSV格式的数据
- MYSQL导出CSV的2种格式
- 检查CSV文件的格式
- c#实现将Excel文件导出为csv和UTF8格式的txt文件
- 导出CSV格式
- 数据库文件导出csv格式
- 导出csv 格式
- 导出下载csv格式的表格(逗号分隔文件)的servlet代码,留待以后调用
- php 导出成csv或是excel格式的js文件(带序号)
- 自己写的导出CSV文件
- 导出为CSV文件的类
- SSH整合,SPRING注入失败解决方案
- 2014百度之星预赛1004 Labyrinth
- 指针的理解
- OCP-1Z0-051 第174题 事务的组成
- Linux DDNS配置
- Grails导出csv格式的文件
- C++数据成员
- 机房收费重构——关于面向对象和分层的纠结
- Div+CSS 布局大全DIV+CSS布局大全
- 美媒称中国正造第二架歼31 大量应用激光打印
- MPI聚合通信之MPI_Barrier函数
- 句柄类的应用以减少重复编译
- Flex 复杂XML 解析XML
- Unix下配置Scheduler的过程和出现的NQSError问题