一般創建HSSFWorkbook的過程寫在業務層,這里為了減少代碼暫時放在controller
@Controller public class PoiController {
//返回一個ResponseEntity類型 @RequestMapping("poidownloadtest.html") public ResponseEntity<byte[]> poiDownloadTest() throws UnsupportedEncodingException{ //創建一個excel並寫入測試內容 HSSFWorkbook workbook=new HSSFWorkbook(); HSSFSheet sheet=workbook.createSheet("downloadTestSheet"); HSSFRow row=sheet.createRow(0); HSSFCell cell=row.createCell(0); cell.setCellValue("downTest");
//創建結束
//創建一個字節數組輸出流對象 ByteArrayOutputStream outputStream=new ByteArrayOutputStream(); try {
//將excel寫入輸出流 workbook.write(outputStream); } catch (IOException e) { e.printStackTrace(); } HttpHeaders headers=new HttpHeaders(); String fileName=new String("downloadTest.xls".getBytes("UTF-8"),"iso-8859-1"); headers.setContentDispositionFormData("attachment", fileName); headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); ResponseEntity<byte[]> returnFile=new ResponseEntity<byte[]> (outputStream.toByteArray(),headers,HttpStatus.CREATED); try { outputStream.close(); } catch (IOException e) { e.printStackTrace(); } return returnFile; } }