Excel和CSV类型数据文件自动录入重构封装
GitHub链接
jar包和依赖包链接:https://pan.baidu.com/s/1QsA6wzu1ofIBbXQbXm9TAw 密码:tdop
依赖包
- java8
- dom4j-1.6.1.jar
- poi-3.7-20101029.jar (POI Excel文件处理)
- poi-ooxml-3.7-20101029.jar
- poi-ooxml-schemas-3.7-20101029.jar
- super-csv-2.4.0.jar (csv文件类型)
- xmlbeans-2.3.0.jar
实体类中
在实体类中字段上方@ExportColumn注解指定需要通过数据文件录入字段
@ExportColumn注解的value值为该字段对应的数据文件中对应的中文名
下方代码中,@Data注解为lombok的注解,
也可不用 不用后,需加入无参构造 setter 和 getter
最好重写toString、hashcode、equals方法,使用lombok的Data注解这些事情可省去,其自动完成
1 |
|
客户端使用
Excel文件类型
xlsx 和 xls 均可
主类 ExcelScanner
直接调用ExcelScanner
类中的静态方法scanAndSave
1 | /** |
指定读取Excel工作表号的数据源的信息存入数据库中1
2
3
4
5
6
7
8
9
10
11 /**
* 读取Excel数据源的信息存入数据库中
* @param filePath Excel文件路径
* @param entityClazz 具体实体类class对象
* @param dao 存入数据库的dao接口
* @param sheetAt excel文件中的工作表号
* @return
* @throws ReflectiveOperationException
*/
public static <T> ResultMap scanAndSave(String filePath, Class<T> entityClazz, SaveListDao<T> dao, int sheetAt)
throws ReflectiveOperationException
1 |
|
csv文件类型
主类 CsvScanner
直接调用CsvScanner
类中的静态方法scanAndSave
1
2
3
4
5
6
7
8
9
10 /**
*
* @param filePath 文件绝对路径
* @param entityClazz 实体类class对象
* @param dao 导入数据接口
* @param cellProcessor csv文件单元处理器
* @param <T>
* @return ResultMap 结果Map extends HashMa
*/
public static <T> ResultMap scanAndSave(String filePath, Class<T> entityClazz, SaveListDao<T> dao, CellProcessor[] cellProcessor)
1 |
|
效果
错误提示
文件中缺少指定字段
1
2msg---未检测到字段名:[学号, 年龄, 姓名],请核对
code---500文件后缀名错误 文件类型不匹配
正确提示
1 | msg---本次读取了4条数据,共导入了4条,相差0条未导入,请核对! |