日常小工具:
excle解析读取
public static List<List<Object>> excel(FileInputStream fis,String fileName) throws IOException {
//用流的方式先读取到你想要的excel的文件
//FileInputStream fis=new FileInputStream(file);
//获取整个excel
//根据版本选择创建Workbook的方式
Workbook hb ;
if(fileName.endsWith(".xls")){
//解析excel
POIFSFileSystem pSystem=new POIFSFileSystem(fis);
hb = new HSSFWorkbook(pSystem);
}else {
hb = new XSSFWorkbook(fis);
}
//HSSFWorkbook hb=new HSSFWorkbook(pSystem);
//获取第一个表单sheet
Sheet sheet = hb.getSheetAt(0);
//获取第一行
int firstrow= sheet.getFirstRowNum();
//获取最后一行
int lastrow= sheet.getLastRowNum();
List<List<Object>> resultList = new ArrayList<>();
//获取表格总列数
int lastcell = (sheet.getRow(sheet.getFirstRowNum())).getLastCellNum();
//循环行数依次获取列数
for (int i = firstrow; i < lastrow+1; i++) {
//获取哪一行i
Row row=sheet.getRow(i);
if (row!=null) {
//获取这一行的第一列
int firstcell= row.getFirstCellNum();
//获取这一行的最后一列(由于列数不确定,所以读取总列数-即列头数)
//int lastcell= row.getLastCellNum();
//创建一个集合,用处将每一行的每一列数据都存入集合中
List<Object> list=new ArrayList<>();
for (int j = firstcell; j <lastcell; j++) {
//获取第j列
Cell cell=row.getCell(j);
//if (cell!=null) {
list.add(cell);
//}
}
resultList.add(list);
}
}
fis.close();
return resultList;
}
读取文件的流:
FileInputStream fis=new FileInputStream(file);