/**
* 根据指定的excel模板导出数据
*
* @param srcFilePath
* 输入路径
* @param desFilePath
* 输出路径
* @throws Exception
*/
@GetMapping("/downloadExcel")
public void downloadExcel(HttpServletResponse response) throws Exception {
// 根据模板创建excel工作簿
XSSFWorkbook wb = new XSSFWorkbook();
// 获取创建的工作簿第一页
XSSFSheet sheet = wb.createSheet();
// 获取第一行
XSSFRow row = sheet.createRow(0);
// 先定义创建excel表头
String[] title = { "Workstation Name", "IP", "Description" };
XSSFCell cell = row.createCell(0);
// 插入第一行数据的表头,用到上面的title数组
for (int i = 0; i < title.length; i++) {
// createCell(0)表示从左到右第一个空格哈,是依横向次插入的。
cell.setCellType(XSSFCell.CELL_TYPE_STRING);
cell = row.createCell(i);
cell.setCellValue(title[i]);
}
try {
// 清空缓存
response.reset();
// 下载使用/未知类型
response.setContentType("application/octet-stream");
String fileName = "template.xls";
// fileName = URLEncoder.encode(fileName, "utf-8");
// fileName = fileName.replace("+", "%20");
response.setHeader("Content-disposition", "attachment;filename=" + fileName);
response.flushBuffer();
// 创建Excel文件的输入流对象
OutputStream os = response.getOutputStream();
// 这时候把创建好的excel写入到输出流
wb.write(os);
// 关闭流
os.flush();
os.close();
} catch (Exception e) {
e.printStackTrace();
}
}