[Java]使用POI读取EXCLE(2007)

引用jar包,根据版本不同需要加入的包也不同,如果缺少包的话程序运行时通常会报"NoClassDefFoundError"错误,如果这样就加入相应的包就可以了。

关于需要哪些jar包,可以用类名到findjar(http://www.findjar.com/index.x)去找

当前最新版本为3.15(2017)

poi-3.15\lib\commons-collections4-4.1.jar

poi-3.15\lib\commons-logging-1.2.jar

poi-3.15\lib\log4j-1.2.17.jar

poi-3.15\poi-3.15.jar

poi-3.15\poi-ooxml-3.15.jar

poi-3.15\poi-ooxml-schemas-3.15.jar

poi-3.15\ooxml-lib\xmlbeans-2.6.0.jar

import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.WorkbookFactory;

 

 

try {
    // OPCPackage可以获取读写权限
    OPCPackage pkg = OPCPackage.open(new File("E:\\1.xlsx"));
    // 工作薄对象
    XSSFWorkbook workbook = new XSSFWorkbook(pkg);
    // 工作表对象
    XSSFSheet xssfSheet = workbook.getSheetAt(0);
    // 创建行对象
    XSSFRow xRow = xssfSheet.getRow(0);
    // 创建单元格对象
    XSSFCell xCell = xRow.getCell(0);
    // 输出单元格的值
    System.out.println(getCellValue(xCell));
    pkg.close();
} catch (InvalidFormatException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}
。。。
    @SuppressWarnings("static-access")
    private static String getValue(XSSFCell xssfCell) {
        if(xssfCell == null)
            return "[null]"; 
        
        switch (xssfCell.getCellType()) {
            case CellType.BLANK:
                return "[空]";
            case CellType.BOOLEAN:
                return String.valueOf(xssfCell.getBooleanCellValue());
            case CellType.NUMERIC:
                return String.valueOf(xssfCell.getNumericCellValue());
            default:
                return String.valueOf(xssfCell.getStringCellValue());
        }
     }
 

猜你喜欢

转载自asjava.iteye.com/blog/2305057