Apache POI
개발자아파치 소프트웨어 재단
최근 버전3.9 / 2012년 12월 3일, 294일 경과
운영 체제크로스 플랫폼
종류라이브러리
라이선스아파치 라이선스
웹사이트http://poi.apache.org/


Apache POI는 아파치 소프트웨어 재단에서 만든 라이브러리로서 마이크로소프트 오피스 파일 포맷을 순수 자바 언어로서 읽고 쓰는 기능을 제공한다. 주로워드엑셀파워포인트와 파일을 지원하며 최근의 오피스 포맷인 Office Open XML File Formats [1] (OOXML, 즉 xml 기반의 *.docx, *.xlsx, *.pptx 등) 이나 아웃룩비지오퍼블리셔 등으로 지원 파일 포맷을 늘려가고 있다.

역사[편집]

POI 라는 이름은 "Poor Obfuscation Implementation"의 줄임말 [2] 로서 기존의 마이크로소프트 오피스의 파일 포맷(OLE 2 Compund Document Format : OLE2)이 일부러 해독하기 힘들게 만들어 놓은것 같음에도 불구하고 실제로 리버스 엔지니어링되어 사용할 수 있게 되었음을 의미한다. POI 프로젝트 내부에서 사용하는 각 모듈의 이름들 또한 이와 비슷하게 유머섞인 이름들로 되어있다.

Office Open XML 지원[편집]

POI 는 3.5 버전부터 ISO/IEC 29500:2008 오피스 오픈 XML 파일 포맷을 지원한다. SourceSense라는 오픈소스 업체로부터 많은 지원을 받았는데 이 업체는 마이크로소프트와 협력하여 개발을 한 것으로 알려져 있다. [3]

아키텍처[편집]

Apache POI는 다음과 같은 하위 컴포넌트로 구성되어 있다.

  • POIFS(Poor Obfuscation Implementation File System) : 마이크로소프트 오피스의 OLE 2 Compound document 파일 포맷을 읽고 쓰는 컴포넌트. 모든 오피스 파일 포맷은 OLE2 방식이므로 하위 모든 컴포넌트의 기반이 된다.
  • HSSF(Horrible SpreadSheet Format) : 마이크로소프트 엑셀 파일포맷을 읽고 쓰는 컴포넌트로서 엑셀 97버전부터 현재까지 지원한다.
  • XSSF(XML SpreadSheet Format) : 마이크로소프트 엑셀 2007부터 지원하는 오피스 오픈 XML 파일 포맷인 *.xlsx 파일을 읽고 쓰는 컴포넌트이다.
  • HPSF(Horrible Property Set Format) : 오피스 파일의 문서요약 정보를 읽는데 사용되는 컴포넌트이다.
  • HWPF(Horrible Word Processor Format) : 마이크로소프트 워드 97(*.doc) 파일을 읽고 쓰는데 사용되는 컴포넌트이다. 아직까지는 개발 초기단계이다.
  • HSLF(Horrible Slid Layout Format) : 마이크로소프트 파워포인트 파일을 읽고 쓰는데 사용되는 컴포넌트이다.
  • HDGF(Horrible DiaGram Format) : 마이크로소프트 비지오 파일을 읽는데 사용하는 컴포넌트이다.
  • HPBF(Horrible PuBlisher Format) : 마이크로소프트 퍼블리셔 파일을 다루는데 사용되는 컴포넌트이다.
  • HSMF(Horrible PuBlisher Format) : 마이크로소프트 아웃룩에서 사용되는 *.msg 파일을 다루는데 사용되는 컴포넌트이다.
  • DDF(Dreadful Drawing Format) : 마이크로소프트 오피스에서 사용되는 이미지 파일을 읽어오는데 사용하는 컴포넌트이다.

HSSF 컴포넌트가 가장 안정적이고 많은 기능을 지원하며 다른 컴포넌트들은 사용은 가능하나 아직까지는 개발 단계이다.

같이 보기[편집]

참고 문헌[편집]

  1. 이동 Standard ECMA-376, Office Open XML File Formats
  2. 이동 Sundaram, Elango (2004년 3월 22일). Excelling in Excel with Java. JavaWorld.com. 2013년 1월 22일에 확인.
  3. 이동 Paul McDougall (2008년 3월 26일). Microsoft Eyes Open Source Components For Office 2007. InformationWeek. 2013년 1월 22일에 확인.






Apache POI (아파치 포이 또는 삐오아이)는 Apache 소프트웨어 재단 의 프로젝트에서 Word 및 Excel 과 같은 Microsoft Office 형식의 파일 을 읽고 쓸 수있는 100 % Java 라이브러리 로 제공되고있다.

명칭의 유래 편집 ]

POI라는 명칭은 Microsoft Office 파일 형식을 리버스 엔지니어링 했을 때, 그 형식이 의도적으로, 게다가 어중간하게 이해하기 어렵게되어 있었기 때문에, 풍자를 담아 " Poor Obfuscation Implementation "(저질품 읽을 구현) 라고 불렀지 만 약어 로 발단있다. 이처럼 유머러스 한 정식 명칭을 적용 방법은 일단 여러가지 하위 프로젝트로 볼 수 있었지만, 유머를 부적절하다고 파악 비즈니스계 진출을 의식 해 공식 웹 페이지에서 삭제되어있다. 또 다른 유래는, 하와이의 진미 Poi 에서왔다. 하와이 사람들이 이것을 계속 먹으면 거인이된다고 말해지고있다.

Office Open XML 지원 편집 ]

버전 3.5에서 ISO / IEC 29500 Office Open XML 형식의 파일을 지원하고있다.

하위 구성 요소 편집 ]

Apache POI 프로젝트는 다음과 같은 하위 구성 요소로 구성된다.

  • POIFS ( Poor Obfuscation Implementation File System ) - Microsoft OLE 2 복합 문서 포맷을 읽고 쓰는 구성 요소. 모든 Microsoft Office 파일은 OLE 2 파일이기 때문에 POIFS 다른 POI 구성 요소의 기초가되고있다. 따라서 POIFS은 명시 적으로 POI로 작성된 모듈 이외에도 다양한 종류의 파일을 읽는 사용되고있다.
  • HSSF ( Horrible SpreadSheet Format ) - Microsoft Excel (XLS) 형식의 파일을 취급한다. Excel 97 이상 파일을 읽고 쓸 수있다. 이 파일 형식은 BIFF 8 포맷으로 알려져있다. 필터 및보기를 포함 시트를 열 수 없습니다.
  • XSSF ( XML SpreadSheet Format ) - Office Open XML Workbook 형식의 파일을 취급한다. Excel 2007에서 채택 된 OOXML 형식의 파일을 읽고 쓸 수있다.
  • HWPF ( Horrible Word Processor Format ) - Microsoft Word (DOC) 형식의 파일을 취급한다. Word 97 이상 파일을 읽고 쓸 수있다. Word 95 이전 형식도 제한적으로 읽을 수있다.
  • XWPF ( XML Word Processor Format ) - Office Open XML Document 형식의 파일을 취급한다. Word 2007에서 채택 된 OOXML 형식의 파일을 읽고 쓸 수있다.
  • HSLF ( Horrible Slide Layout Format ) - Microsoft PowerPoint (PPT) 형식의 파일을 취급한다. PowerPoint 97 이상 파일을 읽고 쓸 수있다.
  • XSLF ( XML Slide Layout Format ) - Office Open XML Presentation 형식의 파일을 취급한다. PowerPoint 2007에서 채택 된 OOXML 형식의 파일을 읽고 쓸 수있다.
  • HPSF ( Horrible Property Set Format ) - Microsoft Office의 문서 요약보기 구성 요소. 문서 요약은 주로 Office 응용 프로그램의 메뉴 바에서 "파일"→ "속성"에 보이는 정보 것.
  • HDGF ( Horrible DiaGram Format ) - Microsoft Visio 형식의 파일을 취급한다. 현재는 읽기 전용 가능.
  • HPBF ( Horrible PuBlisher Format ) - Microsoft Publisher 형식의 파일을 취급한다. 현재는 개발 초기 단계에 있고, 파일의 일부를 읽을 제한됩니다.
  • HSMF ( Horrible Stupid Mail Format ) - Microsoft Outlook (MSG) 형식의 파일을 취급한다. 현재는 파일을 읽고 쓸 수 있습니다.


POI 라이브러리는 Ruby 의 확장으로도 볼 수있다.

관련 항목 편집 ]




출처 - http://ko.wikipedia.org/wiki/Apache_POI#cite_note-1



'Development > Java' 카테고리의 다른 글

java - HttpURLConnection  (0) 2014.02.07
java - 화폐 원 단위 콤마 표시  (2) 2013.10.02
java - 한글 초성 검색  (0) 2013.08.30
java - 한글 인코딩 유니코드  (0) 2013.08.30
java - 객체 직렬화(Object Serialization)  (0) 2013.08.10
Posted by linuxism
,