导出资源路径下的指定文件,代码如下:
@Slf4j
public class ExcelUtil {
public static void exportExcel(String filename, String path, HttpServletResponse response) throws Exception {
ClassPathResource classPathResource = new ClassPathResource(path);
InputStream in = classPathResource.getInputStream();
OutputStream output = null;
Workbook workbook = null;
try {
if (filename.endsWith("xls")) {//2003
workbook = new HSSFWorkbook(in);
} else if (filename.endsWith("xlsx")) { //2007
workbook = new XSSFWorkbook(in);
}
output = response.getOutputStream();
//定义浏览器响应表头
response.setHeader("Content-disposition", "attachment;filename=" +
URLEncoder.encode(filename, "UTF-8"));
//定义下载的类型,标明是excel文件
response.setContentType("application/vnd.ms-excel;charset=UTF-8");
//这时候把创建好的excel写入到输出流
if (workbook != null) {
workbook.write(output);
}
output.flush();
} catch (Exception e) {
log.error("exceptionInfo", e);
} finally {
if (output != null) {
output.close();
}
}
}
public static void exportDoc(String filename, String path, HttpServletResponse response) throws Exception {
ClassPathResource classPathResource = new ClassPathResource(path);
OutputStream outputstream = response.getOutputStream();
InputStream is = classPathResource.getInputStream();
try {
XWPFDocument document = new XWPFDocument(is);
filename = new String(filename.getBytes("gb2312"), "ISO8859-1");
response.setHeader("Content-Disposition", "attachment; filename=" + filename);
response.setContentType("application/msword;charset=UTF-8");
if (document != null) {
document.write(outputstream);
}
outputstream.flush();
} catch (Exception e) {
log.error("导出出错:%s", e.getMessage());
throw ReturnCodeExt.BUSINESS_EXCEPTION.getException("文档下载失败");
} finally {
if (outputstream != null) {
outputstream.close();
}
}
}
}