批量数据根据模板生成数据文件(EXCEL)

本文介绍了如何在Java项目中利用阿里巴巴的EasyExcel库创建Excel模板,生成大量数据并写入新文件。作者提供了数据实体类定义、数据生成的代码片段,以及文件路径的处理。

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

这样的文章很多,但是我还是依然写一个,希望能够帮助到部分朋友

依赖:

		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>easyexcel</artifactId>
			<version>2.2.3</version>
		</dependency>

模板,我用的是E:\test\addSim003.xlsx:

首先需要一个数据实体:

package com.text;

import com.alibaba.excel.annotation.ExcelProperty;

/****************************************
 * @Description 请使用一句话描述
 * @Date 2024/1/30 11:23
 * @Author admin
 * @Version 0.0.0.0.0
 ****************************************/
public class DataDetail {
    @ExcelProperty(index = 0)
    private String imeiNumber;
    @ExcelProperty(index = 1)
    private String sv;
    @ExcelProperty(index = 2)
    private String clientType;
    @ExcelProperty(index = 3)
    private String deviceType;
    @ExcelProperty(index = 4)
    private String factoryName;
    @ExcelProperty(index = 5)
    private String useUnit;
    @ExcelProperty(index = 6)
    private String factoryDate;
    @ExcelProperty(index = 7)
    private String remark;

    public String getImeiNumber() {
        return imeiNumber;
    }

    public void setImeiNumber(String imeiNumber) {
        this.imeiNumber = imeiNumber;
    }

    public String getSv() {
        return sv;
    }

    public void setSv(String sv) {
        this.sv = sv;
    }

    public String getClientType() {
        return clientType;
    }

    public void setClientType(String clientType) {
        this.clientType = clientType;
    }

    public String getDeviceType() {
        return deviceType;
    }

    public void setDeviceType(String deviceType) {
        this.deviceType = deviceType;
    }

    public String getFactoryName() {
        return factoryName;
    }

    public void setFactoryName(String factoryName) {
        this.factoryName = factoryName;
    }

    public String getUseUnit() {
        return useUnit;
    }

    public void setUseUnit(String useUnit) {
        this.useUnit = useUnit;
    }

    public String getFactoryDate() {
        return factoryDate;
    }

    public void setFactoryDate(String factoryDate) {
        this.factoryDate = factoryDate;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }
}

数据生成及全量代码:

package com.text;

import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.metadata.fill.FillConfig;
import org.apache.commons.lang3.StringUtils;

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

/****************************************
 * @Description 请使用一句话描述
 * @Date 2024/1/30 9:48
 * @Author admin
 * @Version 0.0.0.0.0
 ****************************************/
public class MainTest {

    public static void main(String[] args) {
        List<DataDetail> dataList = new ArrayList<>();
        DataDetail d;
        for (int i = 0; i < 50000; i++) {
            d = new DataDetail();
            d.setImeiNumber("100010001" + StringUtils.leftPad(String.valueOf(i), 6, "0"));
            d.setFactoryDate("2024/1/2");
            d.setSv("21");
            d.setClientType("测试终端");
            d.setDeviceType("B类设备");
            d.setFactoryName("人民北路IMSI制造厂");
            d.setUseUnit("通号通信");
            d.setRemark(StringUtils.leftPad(String.valueOf(i), 6, "0"));
            dataList.add(d);
        }
        String templatePath = "E:\\test\\addSim003.xlsx";
        String outputPath = "E:\\test\\addSim004.xlsx";
        try {
            InputStream inputStream = new FileInputStream(templatePath);
            OutputStream outputStream = new FileOutputStream(outputPath);
            ExcelWriter ew = EasyExcel.write(outputStream).withTemplate(inputStream).build();
            WriteSheet ws = EasyExcel.writerSheet().build();
            FillConfig fillConfig = FillConfig.builder().forceNewRow(true).build();
            ew.fill(dataList, fillConfig, ws);
            ew.finish();
            outputStream.flush();
            outputStream.close();
            inputStream.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

最终生成文件,E:\test\addSim004.xlsx:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值