poiを使用したExcelデータの読み込み@Java

忘れないようにサンプルコードを残しておく。

1. xlsファイル

public void printDataFromXls() {

    String filePath = "D:/test/file.xls";

    try {
        //Excelのワークブックの読み込み
        POIFSFileSystem poiFile = new POIFSFileSystem (new FileInputStream(filePath));
        HSSFWorkbook wb = new HSSFWorkbook(poiFile);

        //シートの読み込み
        HSSFSheet sheet = wb.getSheet("Sheet1");

        //値読み込み
        for(int i = 1; i <= sheet.getLastRowNum(); i++) {
            HSSFRow row = sheet.getRow(i);
            HSSFCell cell = row.getCell(0);
            String cellString = cell.getStringCellValue();
            System.out.println(cellString);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

}

2. xlsxファイル

public void printDataFromXlsx() {

    String filePath = "D:/test/file.xlsx";
    
    try {
        //Excelのワークブックの読み込み
        FileInputStream fis = new FileInputStream(filePath);
        XSSFWorkbook wb = new XSSFWorkbook(fis);

        //シートの読み込み
        XSSFSheet sheet = wb.getSheet("Sheet1");

        //値読み込み
        for(int i = 1; i <= sheet.getLastRowNum(); i++) {
            XSSFRow row = sheet.getRow(i);
            XSSFCell cell = row.getCell(0);
            String cellString = cell.getStringCellValue();
            System.out.println(cellString);
        }
    } catch (Throwable e) {
        e.printStackTrace();
    }

}

はまった所

  • xlsxファイルの取込で、コンパイルは通るのに実行するとNoClassDefFoundError

poiを取得した際に一緒についてくる、ooxml-libディレクトリ内のxmlbeans-2.3.0.jarをビルドパスに通してなかったせい。
コンパイル通っても気を抜いちゃだめですね。