POIのOOXMLサポート

今年の第二四半期に、OOXMLをサポートしたPOIが正式リリースされるようですが、諸事情で早急にxlsxファイルを読み込む必要があったので、以下のSVN branchを覗いてみました。

http://svn.apache.org/repos/asf/poi/branches/ooxml

次期POIでは、OOXMLのExcelファイル(*.xlsx)を読み込む場合は以下のように書く模様。

public void helloXlsx() throws IOException, InvalidFormatException {
    XSSFWorkbook workbook = new XSSFWorkbook(
            org.openxml4j.opc.Package.open("C:\\temp\\test.xlsx"));
    Sheet sheet = workbook.getSheetAt(0);
    Row row = sheet.getRow(sheet.getFirstRowNum());
    Cell cell = row.getCell(row.getFirstCellNum());
    System.out.println(cell.getRichStringCellValue().getString());
}

ちなみに、以下が従来のPOIでxlsファイルを読み込むプログラム。

public void helloXls() throws IOException {
    HSSFWorkbook workbook = new HSSFWorkbook(
        new FileInputStream("C:\\temp\\test.xls"));
    HSSFSheet sheet = workbook.getSheetAt(0);
    HSSFRow row = sheet.getRow(sheet.getFirstRowNum());
    HSSFCell cell = row.getCell(row.getFirstCellNum());
    System.out.println(cell.getRichStringCellValue().getString());
}

両者を比べると、型がごっそり替わっているものの、メソッド名は基本的に同じです。細部はチェックしていないので分からないけど、比較的簡単に移行できそうです。