java 读取xlsx文件
阅读原文时间:2023年07月10日阅读:1

public class ReadExcel {

public static void main(String\[\] args) {  
    Workbook wb = null;  
    Sheet sheet = null;  
    Row row = null;

    String filePath = "C:\\\\Users\\\\30713\\\\Desktop\\\\sg八大领域sql\\\\采集源数据表\\\\第八领域表字段.xlsx";

    wb = readExcel(filePath);  
    if (wb != null) {  
        try {  
            List<List<List<Object>>> list = new ArrayList<>();

            System.err.println("页签数量:" + wb.getNumberOfSheets());  
            // 循环页签  
            for (int sheetNum = 0; sheetNum < wb.getNumberOfSheets(); sheetNum++) {  
                // 指定页签的值  
                sheet = wb.getSheetAt(sheetNum);  
                // 定义存放一个页签中所有数据的List  
                List<List<Object>> sheetList = new ArrayList<>();

                System.err.println("行总数:" + sheet.getLastRowNum());  
                // 循环行  
                for (int rowNum = 0; rowNum <= sheet.getLastRowNum(); rowNum++) {  
                    // 指定行的值  
                    row = sheet.getRow(rowNum);  
                    // 定义存放一行数据的List  
                    List<Object> rowList = new ArrayList<>();

                    //下面可以获取具体表格内容  
                     String eng = row.getCell(2).toString();  
                     String ch = row.getCell(4).toString();

                    // 循环列  
                    //System.err.println("列总数:" + row.getLastCellNum());  
                    for (int cellNum = 0; cellNum < row.getLastCellNum(); cellNum++) {  
                        Cell cell = sheet.getRow(rowNum).getCell(cellNum);  
                        rowList.add(getStringCellValue(cell));  
                    }  
                    sheetList.add(rowList);  
                }  
                list.add(sheetList);  
            }  
            System.err.println(list.toString());  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }  
}

//判断文件格式  
private static Workbook readExcel(String filePath){  
    if(filePath==null){  
        return null;  
    }  
    String extString = filePath.substring(filePath.lastIndexOf("."));

    try {  
        @SuppressWarnings("resource")  
        InputStream is = new FileInputStream(filePath);  
        if(".xls".equals(extString)){  
            return new HSSFWorkbook(is);  
        }else if(".xlsx".equals(extString)){  
            return new XSSFWorkbook(is);  
        }  
    } catch (Exception e) {  
        e.printStackTrace();  
    }  
    return null;  
}

@SuppressWarnings("deprecation")  
public static String getStringCellValue(Cell cell) {  
    String cellvalue = "";  
    if (cell == null) {  
        return "";  
    }  
    switch (cell.getCellType()) {  
        case Cell.CELL\_TYPE\_STRING:  
            cellvalue = cell.getStringCellValue();  
            break;  
        case Cell.CELL\_TYPE\_NUMERIC:  
            if (DateUtil.isCellDateFormatted(cell)) {  
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
                Date date = cell.getDateCellValue();  
                cellvalue = sdf.format(date);  
            } else {  
                cellvalue = String.valueOf(cell.getNumericCellValue());  
            }  
            break;  
        case Cell.CELL\_TYPE\_BOOLEAN:  
            cellvalue = String.valueOf(cell.getBooleanCellValue());  
            break;  
        case Cell.CELL\_TYPE\_BLANK:  
            cellvalue = "";  
            break;  
        default:  
            cellvalue = "";  
            break;  
    }  
    if (cellvalue == "") {  
        return "";  
    }  
    return cellvalue;  
}  

}