生成excel
pom支持
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.4.7</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.16</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.16</version>
</dependency>
// 文件内容获取
List<BaseObject> list = new ArrayList<>();
list.add(QbTjwjqkBdqk.builder()
.bdnm("11111")
.bddh("121")
.build());
//自定义标题别名
ExcelWriter writer = ExcelUtil.getWriter();
// 一次性写出内容,使用默认样式,强制输出标题
writer.write(list, true);
//ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
//writer.flush(byteOut);
// 通过工具类创建writer,默认创建xls格式
response.setContentType("application/vnd.ms-excel;charset=utf-8");
String name = "1111";
response.setHeader("Content-Disposition", "attachment;filename=" + name + ".xls");
ServletOutputStream out = null;
try {
out = response.getOutputStream();
writer.flush(out, true);
} catch (IOException e) {
e.printStackTrace();
} finally {
// 关闭writer,释放内存
writer.close();
//此处记得关闭输出Servlet流
IoUtil.close(out);
}
解析excel
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes);
ExcelReader reader = ExcelUtil.getReader(byteArrayInputStream);
List<BaseObject> readAll = reader.readAll(BaseObject.class);
InputStream转为byte[]
public byte[] toByteArray(InputStream input) throws IOException {
ByteArrayOutputStream output = new ByteArrayOutputStream();
byte[] buffer = new byte[4096];
int n = 0;
while (-1 != (n = input.read(buffer))) {
output.write(buffer, 0, n);
}
return output.toByteArray();
}