import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.core.io.ClassPathResource; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; /** * @author 王慧 * @description poi导出excel * @date 2020/1/8 */ @RestController public class DownloadText { /** * Text模板下载 * * @param response * @param request * @return */ @RequestMapping(value = "/textExport") public ResponseEntity<Resource> excel2007Export(HttpServletResponse response, HttpServletRequest request) { try { ClassPathResource cpr = new ClassPathResource("/templates/test.txt"); downLoadExcel("test.txt", response, cpr); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return new ResponseEntity<Resource>(HttpStatus.OK); } public static void downLoadExcel(String fileName, HttpServletResponse response, ClassPathResource cpr) throws IOException { InputStream input = null; BufferedOutputStream output = null; try { response.setCharacterEncoding("UTF-8"); response.setHeader("content-Type", "application/vnd.ms-excel"); response.setHeader("Content-Disposition", "attachment;filename=\"" + URLEncoder.encode(fileName, "UTF-8") + "\""); input = cpr.getInputStream(); output = new BufferedOutputStream(response.getOutputStream());; byte[] buffer = new byte[4096]; // 缓冲区 int n = (-1); while ((n = input.read(buffer, 0, 4096)) > -1) { output.write(buffer, 0, n); } response.flushBuffer(); } catch (IOException e) { e.printStackTrace(); }finally { if (input != null) input.close(); if (output != null) output.close(); } } }
原文:https://www.cnblogs.com/wangdahui/p/12523397.html