文件上传下载--动态数据的填充与解析

参考资料:(我在写的时候加入了当前项目里前任的用法)
https://www.cnblogs.com/janson071/p/10119935.html
返回值:

return new ResponseEntity<>(bytes, headers, HttpStatus.CREATED);
构造器--org.springframework.http
public ResponseEntity(T body, MultiValueMap<String, String> headers, HttpStatus status) {
        super(body, headers);
        Assert.notNull(status, "HttpStatus must not be null");
        this.statusCode = status;
    }

涉及大量对ResponseEntity对思考和使用:
可以参考----虽然个人感觉意义不大,还不如在使用时直接百度需要的结果,而不是一大堆方法.
HttpStatus(状态码)https://blog.csdn.net/csdn1844295154/article/details/78980174
HttpHeaders(消息头:请求头和响应头)https://www.cnblogs.com/honghong87/articles/6941436.html

在当前项目中使用到的:

HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
        headers.setContentDispositionFormData("attachment", XLSX_NAME);
        HttpStatus.CREATED

枚举

并不专属于这部分功能,一个熟练的枚举使用者,应当像这里的HttpStatus一样,而不是仅仅将枚举作为常量的存放库
----方法的参数类型就应当是枚举

模版的动态填充

1.原模版文件的输入
HSSFWorkbook:是操作Excel2003以前(包括2003)的版本,扩展名是.xls; 
XSSFWorkbook:是操作Excel2007的版本,扩展名是.xlsx;
SXSSFworkbook:从POI 3.8版本开始,提供了一种基于XSSF的低内存占用的API----SXSSF
当数据量超出65536条后,在使用HSSFWorkbook或XSSFWorkbook,程序会报OutOfMemoryError:
	Javaheap space;内存溢出错误。这时应该用SXSSFworkbook。

try (InputStream inputStream = ByteSource.wrap(resource).openStream()) {
	try (XSSFWorkbook workbook = new XSSFWorkbook(inputStream)) {
	}
} catch (IOException ex) {
      log.error("createDownloadExcelTemplate fill excel", ex);
    }
2.表格解析
// 默认取第一个子表
xssfSheet = xssfWorkbook.getSheetAt(0);    
//默认第一行为标题行,index = 0
XSSFRow titleRow = xssfSheet.getRow(0);
//每个单元格(cell)的数据
XSSFCell xssfCell = xssfRow.getCell(cellIndex);
//创建工作表
xssfSheet = xssfWorkbook.createSheet();
//创建单元格,单元格的属性是字符串
sheet.getRow(0).createCell(1, CellType.STRING);
3.返回与关闭
workbook.write(outputStream);
byte[] bytes = outputStream.toByteArray();

try {
      outputStream.close();
    } catch (IOException e) {
      log.error("createDownloadExcelTemplate close stream", e);
    }
发布了25 篇原创文章 · 获赞 0 · 访问量 553

猜你喜欢

转载自blog.csdn.net/weixin_43343786/article/details/104498407