@return list
*/
public static List readExcel(String filepath, String filename, int startrow, int startcol, int sheetnum) {
List varList = new ArrayList();
try {
File target = new File(filepath, filename);
FileInputStream fi = new FileInputStream(target);
Workbook wb = null;
try{
wb = new XSSFWorkbook(fi);
}
catch (Exception ex) {
wb = new HSSFWorkbook(new FileInputStream(target));
}
Sheet sheet = wb.getSheetAt(sheetnum); //sheet 从0开始
FormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator();
int rowNum = sheet.getLastRowNum() + 1; //取得最后一行的行号
for (int i = startrow; i < rowNum; i++) { //行循环开始
PageData varpd = new PageData();
Row row = sheet.getRow(i); //行
int cellNum = row.getLastCellNum(); //每行的最后一个单元格位置
for (int j = startcol; j < cellNum; j++) { //列循环开始
DecimalFormat df = new DecimalFormat("0.000000");
Cell cell1 = row.getCell(Short.parseShort(j + ""));
CellValue cell = evaluator.evaluate(cell1);
String cellValue = null;
if (null != cell) {
switch (cell.getCellType()) { // 判断excel单元格内容的格式,并对其进行转换,以便插入数据库
case 0:
cellValue = df.format(cell.getNumberValue());
break;
case 1:
cellValue = cell.getStringValue();
break;
case 2:
cellValue = cell.getNumberValue() + "";
// cellValue = String.valueOf(cell.getDateCellValue());
break;
case 3:
cellValue = "";
break;
case 4:
cellValue = String.valueOf(cell.getBooleanValue());
break;
case 5:
cellValue = String.valueOf(cell.getErrorValue());
break;
}
} else {
cellValue = "";
}
varpd.put("var"+j, cellValue);
}
varList.add(varpd);
}
} catch (Exception e) {
System.out.println(e);
}
return varList;
}