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

本文共 2530 字,大约阅读时间需要 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/

    你可能感兴趣的文章
    Objective-C实现RGB和HSV相互转换算法(附完整源码)
    查看>>
    Objective-C实现RGB转十六进制算法(附完整源码)
    查看>>
    Objective-C实现ripple adder涟波加法器算法(附完整源码)
    查看>>
    Objective-C实现RKM匹配(附完整源码)
    查看>>
    Objective-C实现RodCutting棒材切割最大利润算法(附完整源码)
    查看>>
    Objective-C实现roman numerals罗马数字算法(附完整源码)
    查看>>
    Objective-C实现Romberg算法(附完整源码)
    查看>>
    Objective-C实现ROT13密码算法(附完整源码)
    查看>>
    Objective-C实现rotate matrix旋转矩阵算法(附完整源码)
    查看>>
    Objective-C实现round robin循环赛算法(附完整源码)
    查看>>
    Objective-C实现RRT路径搜索(附完整源码)
    查看>>
    Objective-C实现RS485通信接收数据(附完整源码)
    查看>>
    Objective-C实现rsa 密钥生成器算法(附完整源码)
    查看>>
    Objective-C实现RSA密码算法(附完整源码)
    查看>>
    Objective-C实现RSA素因子算法(附完整源码)
    查看>>
    Objective-C实现runge kutta龙格-库塔法算法(附完整源码)
    查看>>
    Objective-C实现Sarsa算法(附完整源码)
    查看>>
    Objective-C实现SCC的Kosaraju算法(附完整源码)
    查看>>
    Objective-C实现scoring functions评分函数算法(附完整源码)
    查看>>
    Objective-C实现scoring评分算法(附完整源码)
    查看>>