使用hutool实现Excel表格导出

这篇博客介绍了如何利用Hutool和Apache POI库在Java中实现Excel数据的导出。首先引入相关依赖,然后在Controller中获取数据并转化为适合Excel格式的列表,最后通过TestExportExcell工具类将数据写入到Excel文件并保存到指定路径。整个过程简洁明了,便于理解与复用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

写完之后跑一波

成功

在这里插入图片描述

Hutool是一个功能强大的Java工具包,它包含了一套方便易用的Excel操作模块,可以帮助开发者快速地将数据导出Excel文件中。使用Hutool导出Excel表格的一般步骤如下: 1. 首先,你需要在项目中添加Hutool-Excel依赖。如果你使用Maven,可以在pom.xml文件中添加: ```xml <dependency> <groupId> cn.hutool </groupId> <artifactId> hutool-all </artifactId> <version> 最新版本号 </version> </dependency> ``` 替换`最新版本号`为Hutool的最新稳定版本。 2. 导入必要的库,并创建一个新的ExcelWriter对象: ```java import cn.hutool.poi.excel.Excel; import cn.hutool.poi.excel.ExcelWriter; // ... Excel excel = Excel.write(response.getOutputStream()); // 创建ExcelWriter,响应流用于输出结果 ``` 3. 然后,你可以定义一个实体类(如有必要),并将数据填充到这个类中: ```java public class User { private String name; private int age; // 添加其他字段... } List<User> userList = ...; // 假设你有一个User对象列表 // 将用户列表转换为行数据 List<Map<String, Object>> data = userList.stream() .map(user -> Map.of("name", user.getName(), "age", user.getAge())) .collect(Collectors.toList()); ``` 4. 写入数据到工作表: ```java excel.row(data); // 将数据写入第一张工作表 excel.finish(); // 结束写入操作并关闭流 ``` 这只是一个基本示例,实际操作可能会更复杂,比如处理多个工作表、设置样式、合并单元格等。完整的代码应根据你的数据结构和需求进行调整。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值