java后台实现excel文件下载功能

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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 = ResourceBundle.getBundle("systemconfig").getString("stuExcelDownLoadPath") + File.separator + "stuTemplateExcel.xlsx";
File excelFile = new File(folderPath);
//判断模板⽂件是否存在
if (!excelFile.exists() || !excelFile.isFile()) {
rt.put("status", "0");
rt.put("message", "模板⽂件不存在");
// return rt.toJSONString();
}
//⽂件输⼊流
FileInputStream fis = null;
XSSFWorkbook wb = null;
//使⽤XSSFWorkbook对象读取excel⽂件
try {
fis = new FileInputStream(excelFile);
wb = new XSSFWorkbook(fis);
fis.close();
} catch (Exception e) {
e.printStackTrace();
rt.put("status", "0");
rt.put("message", "模板⽂件读取失败");
// return rt.toJSONString();
}
//设置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 = response.getOutputStream();
wb.write(os);
os.flush();
os.close();
} catch (IOException e) {
e.printStackTrace();
rt.put("status", "0");
rt.put("message", "模板⽂件下载失败");
}
("下载学⽣模板⽂件结果:" + rt.toJSONString());
//return rt.toJSONString();
}
注意事项:
1. 对excel⽂件读取使⽤了FileInputStream对象,然后⽣成新的XSSFWorkbook对象
2. 在⽂件的读取和写⼊的动作完成后,把对应的流关闭
下载得到的excel模板⽂件:
以上就是对Java中下载excel⽂件后台处理的总结归纳。

欢迎⼀起探讨更加⾼效的解决⽅案。

相关文档
最新文档