programing

Java에서 Excel 시트를 읽는 데 더 나은 API는 무엇입니까-JXL 또는 Apache POI

nasanasas 2020. 9. 2. 18:50
반응형

Java에서 Excel 시트를 읽는 데 더 나은 API는 무엇입니까-JXL 또는 Apache POI


Excel 시트 읽기 / 쓰기 / 편집이 더 간단한 두 API는 무엇입니까? 이러한 API는 CSV 확장을 지원하지 않습니까?file.xls 및 file.xlsx에 JXL을 사용하면 다음과 같은 예외가 발생합니다.

jxl.read.biff.BiffException: Unable to recognize OLE stream
    at jxl.read.biff.CompoundFile.<init>(CompoundFile.java:116)
    at jxl.read.biff.File.<init>(File.java:127)
    at jxl.Workbook.getWorkbook(Workbook.java:268)
    at core.ReadXLSheet.contentReading(ReadXLSheet.java:46)
    at core.ReadXLSheet.init(ReadXLSheet.java:22)
    at core.ReadXLSheet.main(ReadXLSheet.java:72)

.xls 및 .xlsx 확장자 용입니다. 내가 사용하는 Java 버전은 JDK1.6입니다.


난 둘 다 사용하고

JXL

(지금 "JExcel")와

아파치 POI를

. 처음에는 JXL을 사용했지만 지금은 Apache POI를 사용합니다.첫째, 두 API가 동일한 최종 기능을 갖는 항목은 다음과 같습니다.

  • 둘 다 무료입니다
  • 셀 스타일 : 정렬, 배경 (색상 및 패턴), 테두리 (유형 및 색상), 글꼴 지원 (글꼴 이름, 색상, 크기, 굵게, 기울임 꼴, 취소 선, 밑줄)
  • 방식
  • 하이퍼 링크
  • 병합 된 셀 영역
  • 행과 열의 크기
  • 데이터 형식 : 숫자 및 날짜
  • 셀 내 텍스트 줄 바꿈
  • 틀 고정
  • 머리글 / 바닥 글 지원
  • 기존 및 새 스프레드 시트 읽기 / 쓰기
  • 두 가지 모두 스프레드 시트에있는 기존 개체를 가능한 한 그대로 유지하려고합니다.

그러나 많은 차이점이 있습니다.

  • 가장 중요한 차이점은 Java JXL이 Excel 2007+ ".xlsx"형식을 지원하지 않는다는 것입니다. 이전 BIFF (이진) ".xls"형식 만 지원합니다. Apache POI는 공통 디자인으로 두 가지를 모두 지원합니다.
  • 또한 JXL API의 Java 부분은 C # API가있는 것처럼 보이지만 2009 년에 마지막으로 업데이트되었습니다 (3 년, 4 개월 전에 작성). Apache POI는 적극적으로 유지됩니다.
  • JXL은 조건부 서식을 지원하지 않지만 Apache POI는 그다지 중요하지는 않지만 자신의 코드로 셀을 조건부 서식으로 지정할 수 있습니다.
  • JXL은 서식 있는 텍스트 형식, 즉 텍스트 문자열 내의 다른 형식을 지원하지 않습니다 . Apache POI는이를 지원합니다.
  • JXL은 가로 / 세로, +/- 45도, 스택 등 특정 텍스트 회전 만 지원합니다. Apache POI는 모든 정수 각도 플러스 스택을 지원합니다.
  • JXL은 도형 그리기를 지원하지 않습니다. Apache POI는 그렇습니다.
  • JXL은 가로 / 세로, 여백, 용지 크기 및 확대 / 축소와 같은 대부분의 페이지 설정 설정을 지원합니다. Apache POI는이 모든 기능과 반복되는 행 및 열을 지원합니다.
  • JXL은 분할 창을 지원하지 않습니다. Apache POI는 그렇습니다.
  • JXL은 차트 생성 또는 조작을 지원하지 않습니다. Apache POI에는 아직 지원이 없지만 API가 천천히 형성되기 시작했습니다.
  • Apache POI에는 JXL보다 더 광범위한 문서 및 예제가 있습니다.

또한 POI에는 기본 "usermodel"API뿐만 아니라 스프레드 시트 콘텐츠를 읽는 것이 원하는 경우 이벤트 기반 API도 포함됩니다.결론적으로 더 나은 문서, 더 많은 기능, 활발한 개발 및 Excel 2007+ 형식 지원으로 인해 Apache POI를 사용합니다.


POI를 사용했습니다.이를 사용하는 경우 셀 포맷터를 주시하십시오. 셀에 대해 매번 생성하는 대신 하나씩 생성하고 여러 번 사용하면 엄청난 메모리 소비 차이 또는 대용량 데이터가됩니다.


나는 JXL에 익숙하지 않지만 POI를 사용합니다. POI는 잘 관리되며 이진 .xls 형식과 Office 2007에 도입 된 새로운 xml 기반 형식을 모두 처리 할 수 ​​있습니다.CSV 파일은 Excel 파일이 아니며 텍스트 기반 파일이므로 이러한 라이브러리는 파일을 읽지 않습니다. CSV 파일을 직접 구문 분석해야합니다. CSV 파일 라이브러리에 대해 알지 못하지만 나도 보지 못했습니다.


Java에서 "일반"CSV 파일을 읽으려면 OpenCSV라는 라이브러리가 있습니다.

http://opencsv.sourceforge.net/

참고 URL :

https://stackoverflow.com/questions/14980717/what-is-the-better-api-to-reading-excel-sheets-in-java-jxl-or-apache-poi

반응형