设为首页 加入收藏

TOP

ArrayList/MySQL数据批量写入Excel表格(一)
2023-09-23 15:44:34 】 浏览:250
Tags:ArrayList/MySQL Excel 表格
ArrayList/MySQL数据集合写入Excel
1.文章概述:
  写入 Excel 文件通常需要使用一些库或工具,而"EasyExcel"通常是指的阿里巴巴开源的EasyExcel库。这个库可以让我们在Java中简便地进行Excel文件的读写操作。
2.导入配置:
 <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>3.2.0</version>
</dependency>
 <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.2</version>
</dependency>

3.Excel模板类

package com.ccc.bean.tools_enty;

import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;


@NoArgsConstructor
@Data
public class WriteDataBean  implements Comparable {
   // Excel标头名称
    @ExcelProperty("a")
    private String a;
    @ExcelProperty("b")
    private String b;

    public String getA() {
        return a;
    }

    public void setA(String a) {
        this.a = a;
    }

    public String getB() {
        return b;
    }

    public void setB(String b) {
        this.b = b;
    }

    @Override
    public int compareTo(Object o) {
//        //可设置排序
//        if (o instance of WriteDataBean){ 
// WechatOfficialAccountBean wechatOfficialAccountBean= (WechatOfficialAccountBean) o;
// return this.getUpload_time().hashCode()-wechatOfficialAccountBean.getUpload_time().hashCode();
// }
throw new ClassCastException("不能转换 WriteDataBean ");
 } 
}

  

4.工具类示例代码:

package com.ccc.tools;

import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.felephantst.bean.tools_enty.WriteDataBean;

import java.io.*;
import java.util.ArrayList;
import java.util.List;

/**
 * @ClassName: FileTool
 * @Description TODO 操作文件工具类
 * @Author: 东霖
 * @Date: 2023/9/12 13:19
 * @Version 1.0
 **/
public class FileTool {

    /**
     * 读取指定文件
     *
     * @param filePath
     * @return 返回一个字符串集合
     */
    public static List<String> readFile(String filePath) {
        List<String> stringList = new ArrayList<>();
        try {
            FileReader fr = new FileReader(filePath);
            BufferedReader bf = new BufferedReader(fr);
            String str;
            // 按行读取字符串
            while ((str = bf.readLine()) != null) {
                stringList.add(str);
            }
            bf.close();
            fr.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return stringList;
    }

    /**
     * TODO: 小数据量写出数据到 Excel(2000条左右用这个)
     *
     * @param bean        模板类
     * @param outFilePath 输出路径全称:test.xlsx
     * @param sheetName   excel Sheet 名称
     * @param collect     数据集
     */
    public static void writeMinDataExcel(Class<?> bean, String outFilePath, String sheetName, ArrayList collect) {
        OutputStream outputStream = null;
        try {
            outputStream = new FileOutputStream(outFilePath);
            EasyExcel.write(outputStream, bean).sheet(sheetName).doWrite(collect);
            //写出到文件
            outputStream.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /**
     * TODO: 大数据量写出数据到 Excel(2000条左右用这个)
     *
     * @param bean        模板类
     * @param outFilePath 输出路径全称:test.xlsx
     * @param sheetName   excel Sheet 名称
     * @param sizeLimitDataList     数据集
     * @param sizeLimit   设置多少条数据为一个Sheet
     */
    public static void writeMaxDataExcel(Class<?> bean, String outFilePath, String sheetName, ArrayList sizeLimitDataList, Integer sizeLimit) {
        // 总Sheet数
        int num = sizeLimitDataList.size() / sizeLimit + (sizeLimitDa
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇再聊Java Stream的一些实战技能与.. 下一篇61基于java的学生考勤管理系统设..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目