/**
*js层
*/
downLoad = function(){
var params = {
"value" : $("#id").val()
};
window.open("/down/downLoad?value="+$("#id").val());//不可以使用ajax请求,因为流无法传输到前端,需要另打开界面。路径+传输到controller的值
};
/**
*controller层
*/
@RequestMapping(value = "/downLoad", method=RequestMethod.POST,produces="text/html;charset=UTF-8" )
public ModelAndView downLoad(int value) throws Exception {
List<String> downList = new ArrayList<String>();
List<String> headList = new ArrayList<String>();
HttpServletResponse response = getResponse();
response.reset();
response.setCharacterEncoding("UTF-8");
response.setContentType("application/octet-stream");
//String downloadFileName =new String("下载".getBytes("utf-8"),"iso-8859-1");//一般是utf-8但是ie下载时,文件名会乱码
String downloadFileName =new String("下载".getBytes("gb2312"),"iso-8859-1");//IE11下文件名不会乱码
// downloadFileName += new String(bi.getBatchName().getBytes("utf-8"),"iso-8859-1")+"-";
downloadFileName += new String(bi.getBatchName().getBytes("gb2312"),"iso-8859-1")+"-";
downloadFileName += new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());//在文件名中加入下载的年月日时分秒
response.setHeader("Content-Disposition", "attachment; filename=\""+ downloadFileName + ".csv\"");
ServletOutputStream sos = response.getOutputStream();
boolean isSuccess=CsvUtils.exportCsv(sos ,headList,downList);
return null;//不需要返回前端任何内容
}
/**
*exportCsv方法
*/
public static boolean exportCsv(ServletOutputStream outputStream,List<String> headList, List<String> dataList){
boolean isSucess=false;
try {
StringBuilder sb = new StringBuilder();
if(headList!=null && !headList.isEmpty()){
for(String data : headList){
sb.append(data);
sb.append("\r");//在这里需要将数据一行一行展示
}
}
if(dataList!=null && !dataList.isEmpty()){
for(String data : dataList){
sb.append(data);
sb.append("\r");
}
}
outputStream.write(sb.toString().getBytes("GBK"));//写入输出流
outputStream.flush();//缓存流
isSucess=true;
} catch (Exception e) {
e.printStackTrace();
isSucess=false;
}finally{
if(outputStream!=null){
try {
outputStream.close();//一定要将流关闭,否则日志中会出错
outputStream=null;
} catch (IOException e) {
e.printStackTrace();
}
}
}
return isSucess;
}
相关推荐
java导出数据时,如果对数据格式没有特殊要求,为了提高效率可以导出CSV格式的文件,导出CSV文件不支持多个sheet页。
2.生成csv,中文无乱码,数据不会科学计数法; 3.支持大数据下载; 4.后台服务java语言实现,前端不限制; 5.前端代码: <a href ="[removed]void(0)" class="layui-btn"> <i class="fa fa-refresh"> 导出...
java 导出csv格式文件(支持实体类输入)
1.将数据导成.csv格式,并压缩成.zip格式后,显示下载提示(含保存文件路径) 2.前后台代码都有哦
java实现后端数据导出成csv文件并上传到指定的sftp服务器,主要是使用univocity-parsers来做的csv文件导出以及采用jsch来完成csv文件的sftp上传。
亲测OK,可直接导出excel文件,csv文件;不用指定下载路劲,直接下载到本地,服务器不用生成临时文件。
csv.js导出csv格式文件 CSV.js 是一个简单,超快的用于 CSV 解析和编码的 JavaScript 工具库,兼容浏览器,AMD 和 NodeJS 环境。
轻松解决普通poi形式导出Excel的中出现的栈溢出问题,此资源可实现千万级数据分批导出csv文件,测试实现16500000条数据大概80秒左右;具体表里内容。
csv导出使用的使用的是univocity-parsers的支持类库,sftp上传采用的是jsch的类库,两者结合实现了数据导出成csv文件并上传指定服务器
java 解析csv文件例子,csv文件 中文乱码问题
java使用jdbc将数据库数据导出到csv文件
csv的文件的导入导出可能会用的到,需要的可以下一下把
主要介绍了java生成csv文件乱码的解决方法,大家可以直接看下面的示例
java csv大数据量导出(千万级别,不会内存溢出),多线程导出 ,生产环境已经很稳定的使用着
fastadmin 导出csv文件
NULL 博文链接:https://312256159-qq-com.iteye.com/blog/1686213
高性能导出csv,高性能导出csv,高性能导出csv,高性能导出csv
主要介绍了Java避免UTF-8的csv文件打开中文出现乱码的方法,结合实例形式分析了java操作csv文件时使用utf-16le编码与utf8编码相关操作技巧,需要的朋友可以参考下
主要为大家详细介绍了java导出生成csv文件的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
使用io流写如文件导出csv文件,使用jsp实现。简单的方法可以推广!