使用hutool实现Excel表格导出
使用hutool实现Excel导出其实直接拿取用就好了 ,只需要更改一下数据源 实体类等导入依赖<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.1.0</version></depend
·
使用hutool实现Excel导出
其实直接拿取用就好了 ,只需要更改一下数据源 实体类等
导入依赖
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.1.0</version>
</dependency>
<!-- Excel导出 -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
controller
@RequestMapping("excle")
@ResponseBody
public String excle(HttpServletRequest request){
Date date=new Date();
SimpleDateFormat format=new SimpleDateFormat("yyyyMMddHHmm");
try{
//从会话取的数据 就是从数据库查询的 因为我前台是一个表格 就是表格的数据
List<Sale> Sale =(List<Sale>) request.getSession().getAttribute("excle");
List<List<String>> rowAll = new ArrayList<List<String>>();
String fileName = "订单信息数据"+format.format(date);
if (Sale != null && Sale.size() > 0) {
int size = Sale.size();
List<String> row = CollUtil.newArrayList("编号","订单id", "商品id", "名称", "数量", "售价","总价","客户id","客户姓名","备注");
rowAll.add(row);
// 循环添加数据到excel中
for (int i = 0; i <Sale. size(); i++) {
Sale s = Sale.get(i);
System.out.println(s.getSaleid()+"111");
//这个里面必须是string类型 之前我就踩坑了 一直报错
List<String> rowItem = CollUtil.newArrayList((i + 1) + "", s.getSaleid(),s.getProid(),s.getPname(),s.getNum().toString(),s.getPrice().toString(),s.getTotal().toString(),s.getCusid(),s.getCusname(),s.getMarks());
rowAll.add(rowItem);
}
// 生成excel
//导出辅助类
TestExportExcell.export(rowAll, fileName);
}
System.out.println("数据导出成功!");
}catch (Exception e){
e.printStackTrace();
System.out.println("数据导出失败!");
}
return "1";
}
TestExportExcell
public static void export(List<List<String>> rowAll, String fileName) throws IOException {
ExcelWriter writer = ExcelUtil.getWriter();
writer.setColumnWidth(-1, 30);
writer.setRowHeight(-1,20);
//你要保存到哪里 就给哪里的路径就行了
FileOutputStream output = new FileOutputStream("C:\\Users\\shenjian\\Desktop\\1-工程\\market\\src\\main\\java\\com\\hbh\\tools\\"+fileName+".xls");
// 一次性写出内容
writer.write(rowAll);
writer.flush(output);
// 关闭writer,释放内存
writer.close();
}
写完之后跑一波
成功
更多推荐
已为社区贡献3条内容
所有评论(0)