日常小工具:
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);