{{위키데이터 속성 추적}}
{{소프트웨어 정보
|이름 = 아파치 POI<br />Apache POI
|로고 = Apache POI project logo (2018).svg
|화면 = 
|설명 = 
|개발자 = [[아파치 소프트웨어 재단]]
| latest release version = 5.2.3
| latest release date = {{시작 날짜와 나이|2022|09|16}}<ref>{{웹 인용|url=https://poi.apache.org/changes.html |title=History of Changes |access-date=2022-09-19}}</ref>
| latest preview version = 
| latest preview date = 
|운영체제 = [[크로스 플랫폼]]
| 플랫폼 = 
|종류 = [[라이브러리]]
|라이선스 = [[아파치 라이선스]]
|웹사이트 = {{url|http://poi.apache.org/}}
}}

'''아파치 POI'''({{lang|en|Apache POI}})는 [[아파치 소프트웨어 재단]]에서 만든 라이브러리로서 [[마이크로소프트 오피스]] [[파일 포맷]]을 순수 [[자바 (프로그래밍 언어)|자바]] 언어로서 읽고 쓰는 기능을 제공한다. 주로 [[마이크로소프트 워드|워드]], [[엑셀]], [[파워포인트]]와 파일을 지원하며 최근의 오피스 포맷인 Office Open XML File Formats<ref>[http://www.ecma-international.org/publications/standards/Ecma-376.htm Standard ECMA-376, Office Open XML File Formats]</ref>(OOXML, 즉 xml 기반의 *.docx, *.xlsx, *.pptx 등)이나 [[마이크로소프트 아웃룩|아웃룩]], [[마이크로소프트 비지오|비지오]], [[퍼블리셔]] 등으로 지원 파일 포맷을 늘려가고 있다.

== 역사 ==
'''POI'''라는 이름은 "Poor Obfuscation Implementation"의 줄임말<ref>{{웹 인용
|url = http://www.javaworld.com/javaworld/jw-03-2004/jw-0322-poi.html
|제목 = Excelling in Excel with Java
|출판사 = JavaWorld.com
|날짜 = 2004-03-22
|확인날짜 = 2013-01-22
|성 = Sundaram
|이름 = Elango
|저자 = 
|보존url = https://web.archive.org/web/20130509121525/http://www.javaworld.com/javaworld/jw-03-2004/jw-0322-poi.html
|보존날짜 = 2013-05-09
|url-status = dead
}}</ref>로서 기존의 [[마이크로소프트 오피스]]의 파일 포맷(OLE 2 Compund Document Format : OLE2)이 일부러 해독하기 힘들게 만들어 놓은 것 같음에도 불구하고 실제로 [[리버스 엔지니어링]]되어 사용할 수 있게 되었음을 의미한다. POI 프로젝트 내부에서 사용하는 각 모듈의 이름들 또한 이와 비슷하게 유머섞인 이름들로 되어있다.

== Office Open XML 지원 ==
POI는 3.5 버전부터 ISO/IEC 29500:2008 [[오피스 오픈 XML]] 파일 포맷을 지원한다. [http://www.sourcesense.com/ SourceSense] 라는 [[오픈소스]] 업체로부터 많은 지원을 받았는데 이 업체는 [[마이크로소프트]]와 협력하여 개발을 한 것으로 알려져 있다.<ref>{{웹 인용
|url = http://www.informationweek.com/microsoft-eyes-open-source-components-fo/206905858
|제목 = Microsoft Eyes Open Source Components For Office 2007
|출판사 = InformationWeek
|날짜 = 2008-03-26
|확인날짜 = 2013-01-22
|성 = 
|이름 = 
|저자 = Paul McDougall
|archive-date = 2012-10-16
|archive-url = https://web.archive.org/web/20121016032208/http://www.informationweek.com/microsoft-eyes-open-source-components-fo/206905858
|url-status = 
}}</ref>

== 아키텍처 ==
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 Stupid Mail Format) : [[마이크로소프트 아웃룩]]에서 사용되는 *.msg 파일을 다루는데 사용되는 컴포넌트이다.
* DDF(Dreadful Drawing Format) : [[마이크로소프트 오피스]]에서 사용되는 이미지 파일을 읽어오는데 사용하는 컴포넌트이다.

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

== 같이 보기 ==
* [[오피스 오픈 XML]]

== 각주 ==
{{각주}}

== 외부 링크 ==
* {{공식 웹사이트}}

{{아파치 소프트웨어}}
{{토막글|소프트웨어}}

[[분류:자바 플랫폼]]
[[분류:아파치 소프트웨어 재단 프로젝트]]
[[분류:자바 라이브러리]]
[[분류:크로스 플랫폼 자유 소프트웨어]]