java excel导出到本地文件_java excel导出到用户本地

展开全部

一般来说做下载功能的确是先导到服62616964757a686964616fe4b893e5b19e31333332633030务器的一个临时目录上的,然后再用一段代码把这个excel读出来,并且输出到response流里面去,给你一段可以用的代码//------------------------------

//step1. 保存一个临时excel到temp目录下

//------------------------------

//这部分自己实现,我相信你已经实现了

//假设你已经实现了保存一个excel到一个临时文件夹里面去

//并且已经生成了一个File 指向这个临时的 excel,名叫exportFile

//-------------------------------

//step2. 弹出下载对话框

//-------------------------------

if(exportFile == null){

logger.error("生成excel错误! exportFile 为空");

return;

}

//先建立一个文件读取流去读取这个临时excel文件

FileInputStream fs = null;

try {

fs = new FileInputStream(exportFile);

} catch (FileNotFoundException e) {

logger.error("生成excel错误! " + exportFile + " 不存在!",e);

return;

}

// 设置响应头和保存文件名

HttpServletResponse response = ServletActionContext.getResponse();

//这个一定要设定,告诉浏览器这次请求是一个下载的数据流

response.setContentType("APPLICATION/OCTET-STREAM");

try {

//这边的 "采购部门本月采购报表.xls" 替换成你自己要显示给用户的文件名

excelName = URLEncoder.encode("采购部门本月采购报表.xls", "UTF-8");

} catch (UnsupportedEncodingException e1) {

logger.error("转换excel名称编码错误!",e1);

}

response.setHeader("Content-Disposition", "attachment; filename=\"" + excelName + "\"");

// 写出流信息

int b = 0;

try {

//这里的 response 就是你 servlet 的那个传参进来的 response

PrintWriter out = response.getWriter();

while ((b = fs.read()) != -1) {

out.write(b);

}

fs.close();

out.close();

logger.debug(sheetName + " 文件下载完毕.");

} catch (Exception e) {

logger.error(sheetName + " 下载文件失败!.",e);

}

把这段代码放到你的servlet的最后一部分

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值