java后台实现excel⽂件下载功能
java中对于excel⽂件的操作,有读取,写⼊,上传等功能,在对excel⽂件进⾏操作时,为了让使⽤者更加直观的制作excel数据,必然会有下载模板excel⽂件功能,这⾥以学⽣基本信息模板excel⽂件为例,实现对指定路径下的excel⽂件进⾏下载的后台代码。
对excel⽂件的操作使⽤到poi接⼝,对于不同拓展名的excel⽂件调⽤不同的对象,maven导⼊jar包语句可以参考。
我们在这⾥操作的对象是.xlsx格式的excel⽂件。代码如下:
/**
* 学⽣excel模板下载,可⽤于批量新建,修改学⽣对象,
*
* @param response
* @param request
* @return
*/
@RequestMapping(value = "downLoadStuInfoExcel", produces = "text/html;charset=UTF-8")
public void downLoadStuInfoExcel(HttpServletResponse response, HttpServletRequest request) {
JSONObject rt = new JSONObject();
//json对象,⽤来记录下载状态值,写⼊log中,也可以把状态值返回到前台,这⼀部分可有可⽆。
rt.put("status", "1");
rt.put("message", "");
rt.put("result", "");
//学⽣新建excel下载模板保存地址从配置⽂件中读取
String folderPath = Bundle("systemconfig").getString("stuExcelDownLoadPath") + File.separator + "stuTemplateExcel.xlsx";
File excelFile = new File(folderPath);
//判断模板⽂件是否存在
if (!ists() || !excelFile.isFile()) {
rt.put("status", "0");
rt.put("message", "模板⽂件不存在");
// JSONString();
}
//⽂件输⼊流
FileInputStream fis = null;
XSSFWorkbook wb = null;
//使⽤XSSFWorkbook对象读取excel⽂件
try {
fis = new FileInputStream(excelFile);
java浏览器下载wb = new XSSFWorkbook(fis);
fis.close();
} catch (Exception e) {
e.printStackTrace();
rt.put("status", "0");
rt.put("message", "模板⽂件读取失败");
// JSONString();
}
//设置contentType为vnd.ms-excel
response.setContentType("application/vnd.ms-excel;charset=utf-8");
response.setCharacterEncoding("utf-8");
// 对⽂件名进⾏处理。防⽌⽂件名乱码,这⾥前台直接定义了模板⽂件名,所以就不再次定义了
//String fileName = CharEncodingEdit.processFileName(request, "stuTemplateExcel.xlsx");
// Content-disposition属性设置成以附件⽅式进⾏下载
response.setHeader("Content-disposition", "attachment;filename=stuTemplateExcel.xlsx");
//调取response对象中的OutputStream对象
OutputStream os = null;
try {
os = OutputStream();
wb.write(os);
os.flush();
os.close();
} catch (IOException e) {
e.printStackTrace();
rt.put("status", "0");
rt.put("message", "模板⽂件下载失败");
}
logger.info("下载学⽣模板⽂件结果:" + rt.toJSONString());
//JSONString();
}
注意事项:
1. 对excel⽂件读取使⽤了FileInputStream对象,然后⽣成新的XSSFWorkbook对象
2. 在⽂件的读取和写⼊的动作完成后,把对应的流关闭
下载得到的excel模板⽂件:
以上就是对Java中下载excel⽂件后台处理的总结归纳。欢迎⼀起探讨更加⾼效的解决⽅案
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论