EasyExcel 集成国际化实现导入导出

1、配置文件准备

1.1 pom.xml 导入EasyExcel 依赖包

     

        <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.9</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>1.1.1</version>
        </dependency>

1.2 配置i18n 国际化文件

  在resources 目录下,点击右键-->new --> Resource Bundle 创建国际化文件,如下图所示:

  

 

1.3  在yml 文件中配置国际化文件地址messages:  和 需要导出的excel文件头的国际化key

二、编写excel 配置文件

2.1 构造导出对象



import com.alibaba.excel.metadata.BaseRowModel;
import lombok.Data;
import org.apache.commons.lang3.ObjectUtils;

import javax.servlet.http.HttpServletResponse;
import java.util.List;



public class EasyExcelParams {

    /**
     * excel文件名(不带拓展名)
     */
    private String excelNameWithoutExt;
    /**
     * sheet名称
     */
    private String sheetName ="sheet1";
    /**
     * 是否需要表头
     */
    private boolean needHead = true;
    /**
     * 数据
     */
    private List<? extends BaseRowModel> data;

    /**
     * 数据模型类型
     */
    private Class<? extends BaseRowModel> dataModelClazz;

    /**
     * 响应
     */
    private HttpServletResponse response;


    public EasyExcelParams(String excelNameWithoutExt, String sheetName, List<? extends BaseRowModel> data, Class<? extends BaseRowModel> dataModelClazz, HttpServletResponse response ){
        this.excelNameWithoutExt = excelNameWithoutExt;
        this.sheetName = sheetName;
        this.data = data;
        this.dataModelClazz = dataModelClazz;
        this.response = response;
    }

    public EasyExcelParams(String excelNameWithoutExt, List<? extends BaseRowModel> data, Class<? extends BaseRowModel> dataModelClazz, HttpServletResponse response ){
        this.excelNameWithoutExt = excelNameWithoutExt;
        this.data = data;
        this.dataModelClazz = dataModelClazz;
        this.response = response;
    }

    /**
     * 检查不允许为空的属性
     */
    public boolean isValid() {
        return ObjectUtils.allNotNull(excelNameWithoutExt, data, dataModelClazz, response);
    }

    public String getExcelNameWithoutExt() {
        return excelNameWithoutExt;
    }

    public void setExcelNameWithoutExt(String excelNameWithoutExt) {
        this.excelNameWithoutExt = excelNameWithoutExt;
    }

    public String getSheetName() {
        return sheetName;
    }

    public void setSheetName(String sheetName) {
        this.sheetName = sheetName;
    }

    public boolean isNeedHead() {
        return needHead;
    }

    public void setNeedHead(boolean needHead) {
        this.needHead = needHead;
    }

    public List<? extends BaseRowModel> g
EasyExcel 是一个基于 Apache POI 封装的 Java Excel 操作工具,可以方便地实现 Excel 文件的导入导出功能。下面是一个简单的示例代码,演示了如何使用 EasyExcel 实现导入导出功能: ```java // 导入数据 public void importExcel(String filePath) { try { // 读取 Excel 文件 ExcelReader excelReader = EasyExcel.read(filePath).build(); // 设置导入监听器 excelReader.read(new AnalysisEventListener<Object>() { @Override public void invoke(Object data, AnalysisContext context) { // 处理每一行数据 System.out.println("行号:" + context.readRowHolder().getRowIndex()); System.out.println("数据:" + data); // TODO: 进行数据处理操作 } @Override public void doAfterAllAnalysed(AnalysisContext context) { // 所有数据解析完成后的操作 } }); excelReader.finish(); } catch (Exception e) { e.printStackTrace(); } } // 导出数据 public void exportExcel(String filePath, List<Object> dataList, Class<?> clazz) { try { // 写入 Excel 文件 ExcelWriter excelWriter = EasyExcel.write(filePath, clazz).build(); // 设置 Sheet 名称 WriteSheet writeSheet = EasyExcel.writerSheet().build(); // 写入数据 excelWriter.write(dataList, writeSheet); excelWriter.finish(); } catch (Exception e) { e.printStackTrace(); } } ``` 以上代码中,`importExcel` 方法用于导入 Excel 数据,通过设置导入监听器来处理每一行的数据。`exportExcel` 方法用于导出 Excel 数据,通过传入数据列表和实体类类型来写入数据。你可以根据自己的需求进行相应的修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值