0.downloadModel
@Override
public JsonResult<String> downloadModel(HttpServletRequest request, HttpServletResponse response,
@RequestParam(name = "filename", required = false) String filename) {
try {
if (StringUtils.isBlank(filename)) {
filename = "生产月计划(销售)上传模板.xlsx";
}
Workbook workbook = POIHelper.getModelWorkbook(filename);
ResponseUtil.downloadByWorkbook(workbook, filename, request, response);
} catch (IOException e) {
throw new RuntimeException("导出模板发生错误" + e.getMessage(), e);
}
return new JsonResult<>(true, 200, "生产月计划(销售)板下载成功", "成功");
}
1.getModelWorkbook方法
public static Workbook getModelWorkbook(String modelName) throws IOException {
InputStream is = null;
Workbook var2;
try {
is = ModelUtils.getInputStream(modelName, "/model/excel/");//在resource路径下创建model/excel,放xlxs到这个包下
var2 = WorkbookFactory.create(is);
} finally {
NIOHelper.close(is);
}
return var2;
}
2.getInputStream
public static InputStream getInputStream(String modelName, String path) {
return ModelUtils.class.getResourceAsStream(path + modelName);
}
3.create
public static Workbook create(InputStream inp) throws IOException, EncryptedDocumentException {
return create((InputStream)inp, (String)null);
}
4.downloadByWorkbook方法
public static void downloadByWorkbook(Workbook workbook, String fielName, HttpServletRequest request, HttpServletResponse response) {
ServletOutputStream os = null;
try {
resetResponseToDownload(fielName, request, response);
os = response.getOutputStream();
workbook.write(os);
os.close();
} catch (IOException var9) {
log.error("download error message: {}", var9.getMessage());
throw new RuntimeException(var9.getMessage());
} finally {
NIOHelper.close(os);
}
}