springboot从数据库查出数据导出到excel

需求:从数据库查出一个List,将list导入到excel中。

这种问题太常见了网上这种一找一大堆,但是每次找的都不一定能完全能成功。因此把这次的记录下来。

这里只记录核心的service部分,用的是apache的poi工具:

public ResponseEntity<> exportExcel(List<Object> dataList,List<String> keyList){

   JSONArray dataArray=JSONArray.parseArray(JSON.toJSONString(datalist,SerializerFeature.WriteMapNullValue))
    Workbook work=new XSSFWorkbook();
    Sheet sheet=workbook,createSheet(String.valueof(System.currentTimeMillis()));
    Row row;
    row=sheet.createRow((short)0);
    for(int i=0;i<keyList.size;i++){//这里的第一行把字段名放进去
        cell=row.createCell(i)
        cell.setCellValue(keyList.get(i));//这里的keyList为字段注释
       }

    for(int i=1;i<dataArray.size()+1;i++){//dataArray为数据,从第二行开始装数据
        row=sheet.createRow((short)i);
        for(int j=0;j<keyList.size;j++){
            cell=row.createCell(j);
            cell.setCellValue(dataArray.getJSONObject(i-1).getString(keyList.get(j)));}
    }

    ByteArrayOutputStream baos=new ByteArrayOutputStream();
    workbook.write(baos);
    workbook.close();

    HttpHeaders headers=new HttpHeaders();
              headers.add(HttpHeaders.CONTENT_DISPOSITION,"attachment;filename="+System.currentTimeMills()+".xlsx");
    headers.add(HttpHeaders.CONTENT_TYPE,"application/vnd.ms-excel;charset=utf-8");
    return new ResponseEntity<>(baos.toByteArray(),headers,HttpStatus.CREATED);

}

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以通过以下步骤将数据库数据导出成txt文件,并保存至桌面: 1. 在Spring Boot项目中添加依赖: ```xml <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-io</artifactId> <version>1.3.2</version> </dependency> ``` 2. 编写导出数据的代码 ```java import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.List; import org.apache.commons.io.FileUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.stereotype.Component; @Component public class ExportData implements CommandLineRunner { @Autowired private UserRepository userRepository; @Override public void run(String... args) throws Exception { List<User> users = userRepository.findAll(); if (users != null && !users.isEmpty()) { String fileName = "users.txt"; File file = new File(System.getProperty("user.home") + "/Desktop/" + fileName); FileWriter writer = new FileWriter(file); for (User user : users) { writer.write(user.getId() + "," + user.getName() + "," + user.getEmail() + "\n"); } writer.close(); System.out.println("Data exported successfully to: " + file.getAbsolutePath()); } else { System.out.println("No data found to export!"); } } } ``` 3. 运行Spring Boot应用程序,导出数据 当应用程序启动时,`CommandLineRunner`接口的`run`方法将被调用,该方法将从数据库中检索用户列表,并将其写入桌面上的`users.txt`文件中。如果没有找到数据,则输出“无数据导出!”的消息。 导出的文件将保存在桌面上,您可以根据需要更改文件名和路径。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值