Handle Excel files

위 링크에 가시면 여러 가지 API들을 소개해주고 있습니다. 이 중에서 두 개만 확인해봤습니다.

public class ReadCell {

    @Test
    public void readByPOI() throws Exception {
        POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream("Book1.xls"));
        HSSFWorkbook wb = new HSSFWorkbook(fs);
        HSSFSheet sheet = wb.getSheetAt(0);
        HSSFRow row = sheet.getRow(0);
        HSSFCell cell = row.getCell((short) 0);
        assertEquals("A1한글", cell.getRichStringCellValue().toString());
    }

    @Test
    public void readByJExel() throws Exception {
        Workbook workbook = Workbook.getWorkbook(new File("Book1.xls"));
        Sheet sheet = workbook.getSheet(0);
        Cell a1 = sheet.getCell(0, 0);
        assertEquals("A1한글", a1.getContents());
    }
}

첫 번째 테스트는 아파치의 POI. 두 번째 테스트는 JExel을 사용해봤습니다.

POI는 sheet에서 cell을 바로 구해낼 수 없고, row를 통해서 cell을 받아야 하는게 좀 불편합니다. 반면에 JExel은 sheet에서 cell에 바로 접근이 가능하죠. 일단 Exel에서 cell에 담긴 정보를 읽는 API는 JExel이 더 편하네요.