定义excel注解:
package com.hf.yudemo.excel.annotation;
import java.lang.annotation.*;
/**
* @Description:
* @Date: 2019/4/16
* @Auther:
*/
@Inherited
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface ExcelFeild {
String name() default "";
}
读取excel的工具类:
package com.hf.yudemo.excel;
import com.hf.yudemo.excel.annotation.ExcelFeild;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.DataFormatter;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.*;
/**
* @Description:
* @Date: 2019/4/16
* @Auther:
*/
@Slf4j
public class ExcelUtil {
/**
* 从excel文件流中读取每行信息,根据第一行表头与clazz类中ExcelField注解名称匹配获取相关列信息
*/
public static <T> List<T> readFromExcel(InputStream inputStream, Class<T> clazz) throws IOException, IllegalAccessException, InstantiationException {
try {