반응형
POI를 사용하여 오래된 Excel .xls 파일을 처리하는 방법
POI에 더 많은 기능이 있어서 jxl에서 poi로 바꿨습니다.그러나 이전 포맷으로 생성된 xls 파일을 처리할 수 없었습니다.이 시점에서, 다음의 에러가 표시됩니다.
org.disp.poi.hssf 를 지정합니다.OldExcelFormatException:제공된 스프레드시트는 Excel 5.0/7.0(BIFF5) 형식인 것 같습니다.POI는 BIFF8 형식만 지원합니다(Excel 버전 97/2000/XP/2003부터).
현재 xls 버전에 따라 양쪽 JXL을 POI로 사용할까 생각 중이므로 오래된 형식의 xls 파일은 jxl을 사용하고 새로운 버전은 POI를 사용합니다.이게 좋은 해결책인가요?다른 대안이 있나요?
이전 Excel 형식 파일의 경우 다음과 같은 대체 방법을 사용할 수 있습니다.
- HSSF,
POI
Excel '97(-2007) 파일 포맷의 실장.- 텍스트 내용을 추출하는 경우 OldExcelExtractor를 사용하면 파일에서 텍스트와 숫자만 추출할 수 있습니다.
- 특정 셀의 값이 필요한 경우 다음과 같이 접근해야 합니다.
OldExcelExtractor
레코드 레벨에서 파일을 처리하여 OldStringRecord, NumberRecord, OldFormulaRecord 및 친구의 좌표를 확인합니다.
- 이미 말씀하신 것처럼 JXL에서도 대응할 수 있는 케이스가 있습니다.
- JDBC/ODBC 드라이버를 사용합니다.그것은 보다 유연하지 않다.
HSSF
그러나 일부 오래된 형식에서는 이 방법만이 정보를 추출할 수 있습니다.
제가 아는 바로는 이 코드를 사용하여 .xls 형식의 엑셀 파일을 읽을 수 있습니다.
FileInputStream in=new FileInputStream(new File("filename.xls"));
Wookbook wb=new HSSFWorkbook(in);
새로운 Excel 버전(2007년 이후):
FileInputStream in=new FileInputStream(new File("filename.xls"));
Wookbook wb=new XSSFWorkbook(in);
필요한 외부 jar 파일:
1. poi-3.9
2. dom4j-1.6.1
3. XMLbeams-2.5.0
.xls에서만 작업하면 되는 경우 poi-3.0만 있으면 됩니다.새로운 버전의 Excel을 사용하려면 다른 항아리가 필요합니다.
언급URL : https://stackoverflow.com/questions/15336457/how-to-process-old-excel-xls-files-using-poi
반응형
'programing' 카테고리의 다른 글
상단과 하단의 높이에 안전한 영역을 확보합니다. (0) | 2023.04.15 |
---|---|
엑셀 워크시트를 이름으로 참조하시겠습니까? (0) | 2023.04.15 |
특정 날짜 이후 행 나열 (0) | 2023.04.15 |
Cygwin과 MinGW의 차이점은 무엇입니까? (0) | 2023.04.15 |
타임스탬프를 Bash 날짜로 변환하는 방법 (0) | 2023.04.15 |