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