使用Hutool工具excel导出
程序员文章站
2022-06-28 09:54:56
这里给出个小示例导入依赖 cn.hutool hutool-all 5.5.4 ...
这里给出个小示例
导入依赖
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.5.4</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
实体类
import lombok.AllArgsConstructor;
import lombok.Data;
import java.util.Date;
@Data
@AllArgsConstructor
public class User {
private String name;
private int age;
private Date birthday;
}
控制器层
import cn.hutool.core.io.IoUtil;
import cn.hutool.poi.excel.ExcelUtil;
import cn.hutool.poi.excel.ExcelWriter;
import com.example.jsonexer.entity.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Controller
public class ExportController {
@GetMapping("/export")
public void exports(HttpServletResponse response){
//模拟数据
List<User> list= new ArrayList<User>();
list.add(new User("zhangsan",12,new Date()));
list.add(new User("zhangsan1",18,new Date()));
list.add(new User("zhangsan2",23,new Date()));
list.add(new User("zhangsan3",25,new Date()));
list.add(new User("zhangsan4",30,new Date()));
list.add(new User("zhangsan5",36, new Date()));
//通过工具类创建writer,默认创建xls格式
ExcelWriter writer = ExcelUtil.getWriter();
//自定义标题名
writer.addHeaderAlias("name","姓名");
writer.addHeaderAlias("age","年龄");
writer.addHeaderAlias("birthday","生日");
// 合并单元格后的标题行,使用默认标题样式
writer.merge(2,"申请人员信息");
//一次性写出内容,使用默认样式,强制输出标题
//Iterable<?> data
writer.write(list,true);
//response为HttpServeltReponse对象
response.setContentType("application/vnd.ms-excel;charset=utf-8");
//弹出下载对话框的文件名,不能为中文,中文请自行编码
String name = "申请学院";
try {
name = URLEncoder.encode(name,StandardCharsets.UTF_8.toString());
response.setHeader("Content-Disposition","attachment;filename="+name+".xls");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
ServletOutputStream out= null;
try{
out = response.getOutputStream();
writer.flush(out,true);
}catch (IOException e){
e.printStackTrace();
}finally {
//关闭writer,释放内存
writer.close();
}
IoUtil.close(out);
}
}
本文地址:https://blog.csdn.net/weixin_43862596/article/details/111866197
推荐阅读
-
C#使用oledb导出数据到excel的方法
-
使用POI导出百万级数据到excel的解决方案
-
使用Python导出Excel图表以及导出为图片的方法
-
C#使用winform简单导出Excel的方法
-
【C#常用方法】2.DataTable(或DataSet)与Excel文件之间的导出与导入(使用NPOI)
-
使用工具 plsqldev将Excel导入Oracle数据库
-
C#使用NPOI将List数据导出到Excel文档
-
Yii框架使用PHPExcel导出Excel文件的方法分析【改进版】
-
使用python将大量数据导出到Excel中的小技巧分享
-
建议收藏:.net core 使用EPPlus导入导出Excel详细案例,精心整理源码已更新至开源模板