使用hutool实现Excel导入导出
引入pom文件
cn.hutool
hutool-all
4.6.10
org.apache.poi
poi-ooxml
3.17-beta1
xerces
xercesImpl
2.12.0
导入 Excel
将excel 中的内容添加到list集合当中list泛型为object
inputStream ->流
//conroller 接收参数
@RequestParam(value = “file”, required = false) MultipartFile file
//获取到流 传输到 service层
InputStream inputStream = file.getInputStream();
List<List> list = new ArrayList<List>();
Excel07SaxReader reader = new Excel07SaxReader(createRowHandler(list));
reader.read(inputStream, 0);
list.for 进行自己业务逻辑代码 存表什么的
private static RowHandler createRowHandler(final List<List> list) {
return new RowHandler() {
public void handle(int sheetIndex, int rowIndex, List rowlist) {
list.add(rowlist);
}
};
}
导出 项目内Excel文件(模板下载之类的)
controller参数为
HttpServletResponse response, HttpServletRequest request
try {
String fileName = “DeviceDownLoad.xlsx”;
//excel 为放置excel模板位置文件夹名称 filePath 为打包后的地址
String filePath = getClass().getResource("/excel/" + fileName).getPath();
// 通过工具类创建writer,默认创建xls格式
ExcelWriter writer = ExcelUtil.getWriter(filePath);
//设置要下载的文件的名称
response.setHeader(“content-Type”,“application/vnd.ms-excel”);
response.setHeader(“Content-disposition”, “attachment;fileName=”" + URLEncoder.encode(fileName,“UTF-8”)+""");
//通知客服文件的MIME类型
response.setCharacterEncoding(“UTF-8”);
ServletOutputStream out= response.getOutputStream();
writer.flush(out, true);
// 关闭writer,释放内存
writer.close();
//此处记得关闭输出Servlet流
IoUtil.close(out);
} catch (IOException e) {
e.printStackTrace();
}
导出Excel
List dtos = new List();
dtos.add();
…
//dtos 为自己逻辑代码之后的 list集合名称 需要导出的内容
List rows = CollUtil.newArrayList(dtos);
// 通过工具类创建writer,默认创建xls格式
ExcelWriter writer = ExcelUtil.getWriter(true);
//自定义标题别名 name age 对应自己实体类的属性名
writer.addHeaderAlias(“name”, “名字”);
writer.addHeaderAlias(“age”, “年龄”);
//自定义标题
writer.merge(10, “学生数据”);
// 一次性写出内容,使用默认样式,强制输出标题
writer.write(rows, true);
//设置要下载的文件的名称
response.setHeader(“content-Type”,“application/vnd.ms-excel”);
//目前不支持中文名称
response.setHeader(“Content-disposition”, “attachment;fileName=”" + URLEncoder.encode(“student.xlsx”,“UTF-8”)+""");
//通知客服文件的MIME类型
response.setCharacterEncoding(“UTF-8”);
ServletOutputStream out= response.getOutputStream();
writer.flush(out,true);
// 关闭writer,释放内存
writer.close();
IoUtil.close(out);
本文介绍了如何使用Hutool库在Java中实现Excel的导入和导出。首先,通过MultipartFile接收上传的Excel文件,使用Excel07SaxReader读取内容并存入list进行业务处理。接着,展示了导出Excel的方法,包括从模板文件下载和自定义内容导出,通过HttpServletResponse响应下载。最后,详细展示了导出过程,包括设置标题别名、合并单元格和写入内容。
4333

被折叠的 条评论
为什么被折叠?



