博客
关于我
Java导入Excel工具类使用教程
阅读量:671 次
发布时间:2019-03-15

本文共 2586 字,大约阅读时间需要 8 分钟。

前言

本工具类提供了Excel导入功能,通过反射机制将Excel中数据映射到实体类中,从而获取Excel数据。工具类依赖org.apache.poi包,支持RESTful API,适用于Spring MVC环境。

一.本工具类支持功能

  • 支持File类型和MultipartFile类型导入
  • 支持Excel2003及以上版本
  • 支持批量导入和单文件导入

二.工具类依赖

工具类依赖以下JAR包:

org.apache.poi
poi
4.1.0

三.工具类使用方法

1. 导入MultipartFile类型(推荐)

适用于Web页面中通过MultipartFile上传文件场景,可直接转换为List<List<Object>>

@PostMapping(value = "/project/import")
public ResultObject importAlarmEvents(@RequestParam MultipartFile file) {
ResultObject result = new ResultObject();
try {
List
> excelData = ImportExcelUtil.importExcelMultipartFile(file, 1, 0, EventDTO.class);
if (excelData == null || excelData.isEmpty()) {
result.setMessage("导入失败,Excel内容为空");
return result;
}
List
alarmList = new ArrayList<>();
for (List
list : excelData) {
alarmList.add((EventDTO) list);
}
Map
res = eventService.importEvent(alarmList);
} catch (Exception e) {
result.setMessage(e.getMessage());
}
return result;
}

2. 导入文件格式为File

适用于Web页面中通过File上传文件场景,可直接转换为List<List<Object>>

@PostMapping(value = "/project/import")
public ResultObject importAlarmEvents(@RequestParam File file) {
ResultObject result = new ResultObject();
try {
List
> excelData = ImportExcelUtil.importExcelFile(file, 1, 0, EventDTO.class);
if (excelData == null || excelData.isEmpty()) {
result.setMessage("导入失败,Excel内容为空");
return result;
}
List
alarmList = new ArrayList<>();
for (List
list : excelData) {
alarmList.add((EventDTO) list);
}
Map
res = eventService.importEvent(alarmList);
} catch (Exception e) {
result.setMessage(e.getMessage());
}
return result;
}

实体类示例

注意:实体类的属性声明顺序必须与Excel列头顺序一致,否则会导致数据对应错误。以下是一个示例:

package com.entity.dto;
import java.io.Serializable;
@SuppressWarnings("serial")
public class EventDTO implements Serializable {
// 列字段1
private String name;
// 列字段2
private String code;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
}

Excel实用教程集锦

  • 简单Excel导出推荐使用工具类方式,配置最简单
  • 对导出样式要求极高的还原度推荐使用FreeMarker模板引擎
  • Freemarker导出的Excel为xml格式,可通过重命名为xls解决格式问题
  • Freemarker无法导出带有图片的Excel,本教程提供解决方案
  • 转载地址:http://zqfqz.baihongyu.com/

    你可能感兴趣的文章
    npm的“--force“和“--legacy-peer-deps“参数
    查看>>
    npm的安装和更新---npm工作笔记002
    查看>>
    npm的常用操作---npm工作笔记003
    查看>>
    npm的常用配置项---npm工作笔记004
    查看>>
    npm的问题:config global `--global`, `--local` are deprecated. Use `--location=global` instead 的解决办法
    查看>>
    npm编译报错You may need an additional loader to handle the result of these loaders
    查看>>
    npm设置淘宝镜像、升级等
    查看>>
    npm设置源地址,npm官方地址
    查看>>
    npm设置镜像如淘宝:http://npm.taobao.org/
    查看>>
    npm配置安装最新淘宝镜像,旧镜像会errror
    查看>>
    NPM酷库052:sax,按流解析XML
    查看>>
    npm错误 gyp错误 vs版本不对 msvs_version不兼容
    查看>>
    npm错误Error: Cannot find module ‘postcss-loader‘
    查看>>
    npm,yarn,cnpm 的区别
    查看>>
    NPOI
    查看>>
    NPOI之Excel——合并单元格、设置样式、输入公式
    查看>>
    NPOI初级教程
    查看>>
    NPOI利用多任务模式分批写入多个Excel
    查看>>
    NPOI在Excel中插入图片
    查看>>
    NPOI将某个程序段耗时插入Excel
    查看>>