使用easyExcel导出数据到excel表中

简介: 使用easyExcel导出数据到excel表中

0、引入包:

compile 'com.alibaba:easyexcel:2.2.6'

1、通过模板生成xlsx文件:
定义模板:
在这里插入图片描述
组装map的列表数据:

JSONArray arrays = new JSONArray(ret);
        for (int i = 0; i < arrays.length(); i++) {
            JSONObject json = (JSONObject) arrays.get(i);
            String id = json.getString("id");
            String name = json.getString("name");
            json = json.getJSONObject("extraData");
            long folder_used = json.getLong("folder_used");
            long folder_capacity = json.getLong("folder_capacity");
            
            Map<String,Object> map = new HashMap<String, Object>();
            
            map.put("id", id);
            map.put("name", name);
            map.put("folder_used", folder_used);
            map.put("folder_capacity", folder_capacity);
            map.put("used_prcent", decimalFormat.format(folder_used/folder_capacity));
            map.put("folder_used_G", decimalFormat.format(folder_used/1024/1024/1024));
            map.put("folder_capacity_G", decimalFormat.format(folder_capacity/1024/1024/1024));
            datas.add(map);
            datas.add(map);
        }
         String templateFileName = "template.xlsx";
         String fileName =  System.currentTimeMillis() + ".xlsx";
        EasyExcel.write(fileName).withTemplate(templateFileName).sheet().doFill(datas);

关键代码只有一行:

EasyExcel.write(fileName).withTemplate(templateFileName).sheet().doFill(datas);

2、无模板,直接写文件

定义model类:

import com.alibaba.excel.annotation.ExcelProperty;

public class ExportData {

    @ExcelProperty("ID")
    private String id;
    @ExcelProperty("名称")
    private String name;
    @ExcelProperty("类型")
    private String idType;
    @ExcelProperty("总空间")
    private float capacity;
    @ExcelProperty("已用空间")
    private float used;
    
    
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getIdType() {
        return idType;
    }
    public void setIdType(String idType) {
        this.idType = idType;
    }
    public float getCapacity() {
        return capacity;
    }
    public void setCapacity(float capacity) {
        this.capacity = capacity;
    }
    public float getUsed() {
        return used;
    }
    public void setUsed(float used) {
        this.used = used;
    }
    
}

组装list,填入

List<ExportData>  datas = getData()
String fileName = System.currentTimeMillis() + ".xlsx";
EasyExcel.write(fileName, ExportData.class).sheet("模板").doWrite(datas);

组装多个,生成多个sheet

public static void export(String fileName,List<List<ExportData>> datas,List<String> sheetNames) {
        ExcelWriter excelWriter = null;
        
        try {
            // 这里 指定文件
            excelWriter = EasyExcel.write(fileName).build();
            for (int i = 0; i < datas.size(); i++) {
                // 每次都要创建writeSheet 这里注意必须指定sheetNo 而且sheetName必须不一样。
                // 可以每次都变,我这里为了方便 所以用的同一个class 实际上可以一直变
                WriteSheet writeSheet = EasyExcel.writerSheet(i, sheetNames.get(i)).head(ExportData.class).build();
                List<ExportData> dataList = datas.get(i);
                excelWriter.write(dataList, writeSheet);
            }
        } finally {
            // 千万别忘记finish 会帮忙关闭流
            if (excelWriter != null) {
                excelWriter.finish();
            }
        }
    }
相关文章
|
5月前
|
Python
如何根据Excel某列数据为依据分成一个新的工作表
在处理Excel数据时,我们常需要根据列值将数据分到不同的工作表或文件中。本文通过Python和VBA两种方法实现该操作:使用Python的`pandas`库按年级拆分为多个文件,再通过VBA宏按班级生成新的工作表,帮助高效整理复杂数据。
|
5月前
|
数据采集 数据可视化 数据挖掘
用 Excel+Power Query 做电商数据分析:从 “每天加班整理数据” 到 “一键生成报表” 的配置教程
在电商运营中,数据是增长的关键驱动力。然而,传统的手工数据处理方式效率低下,耗费大量时间且易出错。本文介绍如何利用 Excel 中的 Power Query 工具,自动化完成电商数据的采集、清洗与分析,大幅提升数据处理效率。通过某美妆电商的实战案例,详细拆解从多平台数据整合到可视化报表生成的全流程,帮助电商从业者摆脱繁琐操作,聚焦业务增长,实现数据驱动的高效运营。
|
7月前
|
存储 安全 大数据
网安工程师必看!AiPy解决fscan扫描数据整理难题—多种信息快速分拣+Excel结构化存储方案
作为一名安全测试工程师,分析fscan扫描结果曾是繁琐的手动活:从海量日志中提取开放端口、漏洞信息和主机数据,耗时又易错。但现在,借助AiPy开发的GUI解析工具,只需喝杯奶茶的时间,即可将[PORT]、[SERVICE]、[VULN]、[HOST]等关键信息智能分类,并生成三份清晰的Excel报表。告别手动整理,大幅提升效率!在安全行业,工具党正碾压手动党。掌握AiPy,把时间留给真正的攻防实战!官网链接:https://www.aipyaipy.com,解锁更多用法!
|
5月前
|
Python
Excel中如何批量重命名工作表与将每个工作表导出到单独Excel文件
本文介绍了如何在Excel中使用VBA批量重命名工作表、根据单元格内容修改颜色,以及将工作表导出为独立文件的方法。同时提供了Python实现导出工作表的代码示例,适用于自动化处理Excel文档。
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
2135 10
|
5月前
|
Python
将Excel特定某列数据删除
将Excel特定某列数据删除
|
6月前
|
Java 测试技术 数据库
spring号码归属地批量查询,批量查询号码归属地,在线工具,可按省份城市运营商号段分类分开分别导出excel表格
简介:文章探讨Spring Boot项目启动优化策略,通过自定义监听器、异步初始化及分库分表加载优化等手段,将项目启动时间从280秒缩短至159秒,提升约50%,显著提高开发效率。
|
12月前
|
人工智能 自然语言处理 Java
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
FastExcel 是一款基于 Java 的高性能 Excel 处理工具,专注于优化大规模数据处理,提供简洁易用的 API 和流式操作能力,支持从 EasyExcel 无缝迁移。
2759 65
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
|
10月前
|
分布式计算 Hadoop 大数据
从Excel到Hadoop:数据规模的进化之路
从Excel到Hadoop:数据规模的进化之路
231 10
|
12月前
|
存储 Java easyexcel
招行面试:100万级别数据的Excel,如何秒级导入到数据库?
本文由40岁老架构师尼恩撰写,分享了应对招商银行Java后端面试绝命12题的经验。文章详细介绍了如何通过系统化准备,在面试中展示强大的技术实力。针对百万级数据的Excel导入难题,尼恩推荐使用阿里巴巴开源的EasyExcel框架,并结合高性能分片读取、Disruptor队列缓冲和高并发批量写入的架构方案,实现高效的数据处理。此外,文章还提供了完整的代码示例和配置说明,帮助读者快速掌握相关技能。建议读者参考《尼恩Java面试宝典PDF》进行系统化刷题,提升面试竞争力。关注公众号【技术自由圈】可获取更多技术资源和指导。

热门文章

最新文章