需求描述:
需要完成这样一个功能:后台通过poi生成excle,前台点击按钮可直接下载。
代码逻辑(核心部分):
第一种:
public String generatePlanExcel(@RequestParam(value = "planId") int planId, HttpServletRequest request, HttpServletResponse response) throws Exception{
// 1.创建新的Excel工作簿(workbook)
// 1.1 07版本的Excel需要XSSFWorkbook对象
Workbook workbook = new XSSFWorkbook();
// 2.使用workbook创建sheet
// 2.1在Excel工作簿中建一工作表(sheet),其名为缺省值 Sheet0
//Sheet sheet = workbook.createSheet();
// 2.2如要新建一名为"预案详细信息"的工作表,其语句为:
Sheet sheet = workbook.createSheet("预案详细信息");
...
String fileName = planRecordAndResources.getName() + ".xlsx";
ByteArrayOutputStream os = new ByteArrayOutputStream();
workbook.write(os);
byte[] content = os.toByteArray();
InputStream is = new ByteArrayInputStream(content);
// 设置response参数,可以打开下载页面
response.reset();
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName,"utf-8"));
response.setHeader("Content-Length", String.valueOf(is.available()));
response.