JAVA使用EasyExcel数据库动态导出Excel。

本文介绍如何在Java中使用EasyExcel库进行数据导出,提供了详细的示例代码,包括表头设置和数据填充,以及一个实际运行的测试Demo。

导入EasyExcel依赖

Gradle

implementation group: 'com.alibaba', name: 'easyexcel', version: '2.2.6'

Maven

<!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>easyexcel</artifactId>
    <version>2.2.6</version>
</dependency>

demo代码,拿来即用

//保存路径与名字
    private final static String fileName = "E:\\" + System.currentTimeMillis() + ".xlsx";
    @Test
//    public static void easyUtil(List<String> heads,String head,List<Map<String, Object>> list){
   
   
	  			
    public void easyUtil(){
   
   
        List<String> heads = new ArrayList<>();		//表头信息
        heads.add("银行名称");
        heads.add("期间新增项目");
        heads.add("期间新增担保总额");
        heads.add("期间新增解保项目数");
        heads.add("期间新增解保金额");
        heads.add("在保项目数");
        heads.add("在保余额");
        heads.add("银行利率");
        String head="惠农通数据表";			//主表头
        List<Map<String, Object>> list = new ArrayList<>();
        Map<String,Object> test = new LinkedHashMap<>();		//手动添加测试数据(可根据需要从数据库查询)
        test.put("t1", 1);
        test.put("t2", 2);
        test.put("t3", 3);
        test.put("t4", 4);
        test.put("t5", 5);
        test.put("t6", 6);
        test.put("t7", 7);
        test.put
EasyExcel是阿里巴巴开源的一款基于JavaExcel操作工具,它简化了读写Excel的工作,使得从数据库导出数据到Excel文件变得相对容易。以下是使用EasyExcel数据库数据导出Excel并供用户下载的基本步骤: 1. **添加依赖**:首先需要在项目中添加EasyExcel的Maven或Gradle依赖。 ```xml <!-- Maven --> <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>最新版本号</version> </dependency> // 或者 Gradle implementation 'com.alibaba:easyexcel:最新版本号' ``` 2. **创建数据映射**:定义一个实体类,用于对应数据库表的结构,并实现`DataModel`接口,方便数据转换。 ```java public class User implements DataModel<User> { private String name; private int age; // getters and setters... } ``` 3. **配置读取器**:编写一个`RowMapper`,负责将数据库行映射到Excel单元格。 ```java List<User> users = new ArrayList<>(); RowMapper<User> rowMapper = (Map<String, Object> map) -> { User user = new User(); // 解析数据库字段并赋值给User对象 user.setName((String) map.get("name")); user.setAge(Integer.parseInt(map.get("age").toString())); return user; }; ``` 4. **读取数据库并写入Excel**:通过EasyExcel的`doRead`方法,结合`rowMapper`和数据库查询结果生成Excel文件。 ```java import com.alibaba.excel.EasyExcel; import com.alibaba.excel.read.metadata.ReadSheet; import com.alibaba.excel.read.metadata.ReadWorkbook; // ... 其他数据库连接和查询代码 ... doRead(userList, new File("output.xlsx"), readSheet -> { readSheet.setHeadRowData(0); // 如果第一行是表头,则设置为headRowData }); ``` 5. **提供下载**:最后,可以使用HTTP响应或下载链接的方式让用户下载生成的Excel文件。 ```java @GetMapping("/download") public ResponseEntity<byte[]> downloadUsersExcel() throws IOException { byte[] bytes = Files.readAllBytes(new File("output.xlsx").toPath()); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); headers.setContentDispositionFormData("attachment", "users.xlsx"); return ResponseEntity.ok().headers(headers).body(bytes); } ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

languageStudents

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值