easyexcel导入_程序员:Java操作导出excel的三种方法,POI、easyExcel、Hutool

这篇博客介绍了在Java项目中,使用Apache POI、EasyExcel和Hutool三种不同库进行Excel导出操作的实践经验。作者详细展示了如何使用POI创建2007格式的Excel文件,并提供了代码示例,包括数据准备、标题设置和导出方法。通过对比,读者可以了解不同库的使用场景和优缺点。

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

前言

最近在开发一个管理后台,有一些excel的导出和导入操作,以前都是使用POI操作excel,这一次尝试了别的人组件:easyExcel和Hutool,今天就来分享一下,这三种方式中POI操作导出excel。

使用POI导出2007格式的excel文件。

pom.xml

使用的是poi的3.13版本,此方法适用于老项目(使用时注意jar包冲突!)

org.apache.poipoi3.13org.apache.poipoi-ooxml3.13org.apache.poipoi-ooxml-schemas3.13`

// 在没有掌握这个方法之前,请不要擅自更改集合的key!!!!!!

集合准备:

//    封装 item 的集合 (数据最终封装的集合)Map data = new HashMap();//    封装 dataMap List> item = new ArrayList>();//    要导出的数据 map 集合(标题 + 数据)Map dataMap = new HashMap();//    标题 list 集合List title = new ArrayList();//    数据 list 集合List> varList = new ArrayList>();//    每一行数据的map集合 Map vpd = new HashMap(32);

数据准备

class Father{    private String name;    private int    age;    private String address;}List> list = new ArrayList<>();for (int i = 0; i < 10; i++) {    Father fa = new Father();    fa.setName("姓名是:"+ i);    fa.setAge(i);    fa.setAddress("地址:"+ i);list.add(fa);}标题列List title = new ArrayList();title.add("姓名");// 标题列1title.add("年龄");// 标题列2title.add("地址");// 标题列3dataMap.put("titles", title);

取出数据

for (int i = 0; i < list.size(); i++) {    Map vpd = new HashMap(32);    //    请注意,有多少列,var按照顺序进行排列    vpd.put("var1", list.get(i).getName());    vpd.put("var2", list.get(i).getAge());    vpd.put("var2", list.get(i).getAddress());    //     将每一行的数据,追加到集合 varList中。    varList.add(vpd);} 封装数据集dataMap.put("varList", varList);item.add(dataMap);//    最终封装的 导出的excel 的数据集data.put("data", item);

调用导出工具类,进行导出(ExportExcel 实体类)

ExportExcel erv = new ExportExcel(); // 执行excel操作String fileName = "XXXXXXXXXXXXXXXXXXXXX";//    方法一://    因为要将excel 结果返回到浏览器中,所以要把response传递到工具类中。erv.excelViewPoi(fileName, data, response);//    方法二://    也可以 设置 @RequestMapping 的参数produces = "application/vnd.ms-excel;charset=UTF-8" 服务端通知客户端,响应的数据类型为excel

ExportExcel(导出excel 工具类)

package liren.office;import java.io.IOException;import java.io.OutputStream;import java.util.List;import java.util.Map;import org.apache.poi.ss.usermodel.CellStyle;import org.apache.poi.ss.usermodel.Font;import org.apache.poi.xssf.streaming.SXSSFCell;import org.apache.poi.xssf.streaming.SXSSFRow;import org.apache.poi.xssf.streaming.SXSSFSheet;import org.apache.poi.xssf.streaming.SXSSFWorkbook;/*** 导入到EXCEL* 类名称:ExportExcel .java* 类描述:导出2007格式的excel* @author LiRen* @version 1.0 */public class ExportExcel {public void excelViewPoi(String fileName,Map model, HttpServletResponse response) {List> list = (List>)model.get("data");SXSSFWorkbook workbook = new SXSSFWorkbook(10000);for (Map map : list) {SXSSFSheet sheet;SXSSFCell cell;sheet = workbook.createSheet(String.valueOf(map.get("sheet")));List titles = (List) map.get("titles");int len = titles.size();  CellStyle headerStyle = workbook.createCellStyle(); //标题样式headerStyle.setAlignment(CellStyle.ALIGN_CENTER);headerStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER);Font headerFont = workbook.createFont();//标题字体headerFont.setBoldweight(Font.BOLDWEIGHT_BOLD);headerFont.setFontHeightInPoints((short)11);headerStyle.setFont(headerFont);short width = 20,height=25*20;sheet.setDefaultColumnWidth(width);for(int i=0; i> varList = (List>) map.get("varList");int varCount = varList.size();for(int i=0; i vpd = varList.get(i);for(int j=0;j
adff17eceb0180e8c9214b25572670b7.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值