java 生成Excel文件导出
Posted 派大星敲代码
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 生成Excel文件导出相关的知识,希望对你有一定的参考价值。
Hutool工具类中有关于excel导出的工具类,非常好用
第一步,我们先导入依赖
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.2.4</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>3.17</version>
</dependency>
第二步,直接上导出方法
/**
* 导出excel
* @param response
*/
public void daochu(HttpServletResponse response) throws UnsupportedEncodingException
//这里我们定义一下需要导出的数据
List<TbProducts> tbProducts = new ArrayList<TbProducts>()
add(new TbProducts(1,"牛奶","6.50","500ml"));
add(new TbProducts(2,"可乐","3.50","650ml"));
add(new TbProducts(3,"咖啡","7.50","500ml"));
add(new TbProducts(4,"啤酒","9.50","500ml"));
;
//使用工具类创建writer,默认的是xls
ExcelWriter writer = ExcelUtil.getWriter();
//自定义别名,给数据字段起一个别名
writer.addHeaderAlias("id","商品编号");
writer.addHeaderAlias("productName","商品名称");
writer.addHeaderAlias("price","商品价格");
writer.addHeaderAlias("page","商品规格");
//设置标题,并且合并单元格
writer.merge(3,"商品信息");
//写入内容
writer.write(tbProducts,true);
//设置编码不然中文会乱码
response.setContentType("application/vnd.ms-excel;charset=utf-8");
//filename=() 设置文件名
response.setHeader("Content-Disposition","attachment;filename="+new String("商品表".getBytes("utf-8"),"ISO-8859-1")+".xls");
//把目标写入流
ServletOutputStream out= null;
try
out = response.getOutputStream();
writer.flush(out, true);
catch (IOException e)
e.printStackTrace();
finally
// 关闭writer,释放内存
writer.close();
IoUtil.close(out);
提醒一下不要用postman测试效果
不然中文名就变成response了,还是把post请求换成get在浏览器请求,就不会出现中文名默认成response这种小坑了
感谢阅读!
以上是关于java 生成Excel文件导出的主要内容,如果未能解决你的问题,请参考以下文章
无限极分类+商品导出excel(Thinkphp5,数据读取无限极,个人限制导出5级)