6⌥codecode6⌥codecodeExcel读取并数据List/Map-POI
Excel读取并数据List/Map-POI
1. 全局输出Map
Java
运行代码复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import com.test.ExcelVO;
import org.apache.commons.lang.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.ss.usermodel.DateUtil;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class ParseExcelUtil {
// 解析后存放的全局Map
public static Map<String, DoctorForExcelVO> STATIC_MAP = new HashMap<>();
private static String val = null;
// 这里会对日期格式数据做处理,如不期望更改则删掉
private static SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
// 这里会对数字格式数据做处理,如不期望更改则删掉
private static DecimalFormat df = new DecimalFormat("0");
private static HSSFWorkbook wb;
// 文件路径
private final static String IMPORT_EXCEL_NAME = "D:Excel_Data.xls";
/**
* 列数传入,解决列情况: X,X,,X读取列数为3
**/
private static int colNum = 20;
// 开始行数
private static int startRowNum = 3;
// sheet坐标
private static int index = 1;
/**
* @return
*/
public static Map<String, DoctorForExcelVO> readExcelData() {
FileInputStream file = null;
POIFSFileSystem ts;
// 读取默认清除上一次数据
JGPT_DOCTOR_MAP.clear();
try {
file = new FileInputStream(DOCTOR_IMPORT_EXCEL_NAME);
ts = new POIFSFileSystem(file);
反射的VO
2. 全局输出List
注意点:
1. VO一定要生成set/get方法,我这里借助的@Data注解实现,也可以直接手动生成
2. 我这里Excel读取行数,列数是写死的,建议作为入参介入【我这里业务场景特殊】
3. 模板为 *.xls
4. 模板列数和VO要保持一致,否则反射时候代码校验不通过
若有收获,就点个赞吧
2023-08-02 11:08
259
0
IP 属地广东
举报
注册 / 登录 语雀进行评论
1/2447字
微服务技术栈
搜索Ctrl + J
首页
目录
AIGC
大纲
Adblocker