需要jar包:poi-3.7-20101029.jar
poi-examples-3.7-20101029.jar
poi-ooxml-3.7-20101029.jar
poi-ooxml-schemas-3.7-20101029.jar
poi-scratchpad-3.7-20101029.jar
xmlbeans-2.3.0.jar
/**
- @param filepath //文件路径
- @param filename //文件名
- @param startrow //开始行号
- @param startcol //开始列号
- @param sheetnum //sheet
-
@return list
*/
public static List<Object> readExcel(String filepath, String filename, int startrow, int startcol, int sheetnum) {
List<Object> varList = new ArrayList<Object>();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;
}
热门评论
这个真的兼容xlsm吗