使用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();
    }

写完之后跑一波

成功

在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐