ã¯ããã«
ãPOIã¯JavaããMicrosoftã®ããã¥ã¡ã³ããæä½ããããã®APIã§ã2007å¹´6æããApache Software Foundationã®ãããã¬ãã«ããã¸ã§ã¯ãã«æ ¼ä¸ãããã¾ããããªã¼ãã³ã½ã¼ã¹ã¨ãã¦æä¾ããã¦ããã®ã§èª°ã§ãç¡åã§å©ç¨ãããã¨ãã§ãã¾ãã
ããªãåæã®ãªãªã¼ã¹å¾ã7年以ä¸ãçµéããå¤ãã®æ å ±ãåå¨ããPOIãä»åããããã¦åãä¸ãããã¨ã«ãããã¨è¨ãã¨ã2009å¹´9æãªãªã¼ã¹ã®Version 3.5ã§Office Open XMLå½¢å¼ï¼ä»¥éãOOXMLå½¢å¼ï¼ã¸ã®å¯¾å¿ã¨ãã大ããªå¤æ´ãå ãã£ãããã§ãã
ãåãããããããã¨2007å½¢å¼ã®Excelï¼xlsxï¼ãWordï¼docxï¼ã®ãã¡ã¤ã«ãæ±ããããã«ãªã£ãã¨ãããã¨ã§ãã
ãæ¬é£è¼ã§ã¯ãPOIã®ä¸ããExcelãæä½ããã³ã³ãã¼ãã³ãï¼HSSF/XSSFï¼ã«å¯¾è±¡ãçµããä¸è¨ã®äºå®ã§ç´¹ä»ãã¦ããã¾ãã
- æºåç·¨ï¼POIã®æ¦è¦ã¨ç°å¢æ§ç¯ï¼ä»åï¼
- åºæ¬ç·¨ï¼Usermodel APIãå©ç¨ãã¦Excelãã¡ã¤ã«ãæä½
- å¿ç¨ç·¨ï¼å¸³ç¥¨ã¨ã°ã©ãä½ãã«ææ¦
- çªå¤ç·¨ï¼OSSã®ãã¬ã¼ã ã¯ã¼ã¯ãå©ç¨ãã¦Excelã¬ãã¼ããç°¡åä½æ
ãã¾ããæ¬é£è¼ã¯OOXMLå½¢å¼ã®Excelãã¡ã¤ã«ãåºæ¬ã¨ãã¦é²ãã¾ãããExcel 2003以åã®Microsoft OLE2è¤åããã¥ã¡ã³ãå½¢å¼ï¼ä»¥éOLE2å½¢å¼ï¼ã¸ã®å¯¾å¿æ¹æ³ã«ã¤ãã¦ãéæç´¹ä»ãã¦ããã¾ãã
対象èªè
- Javaã§Excelãã¡ã¤ã«ãæä½ãããæ¹
POIã®æ¦è¦
ãPOIã¯Poor Obfuscation Implementationï¼ä¸ååã§ææ§ãªå®è£ ï¼ã表ããã¦ãããæ§æ¥ï¼2003以åï¼ã®OLE2å½¢å¼ã¯ä¸ååãªãã®ã ã¨ããç®èããåä»ãããã¦ãã¾ãã
ããã®OLE2å½¢å¼ã¯ãOfficeç¬èªã®ãã¡ã¤ã«ãã©ã¼ãããã®ããä¸è¨ã®ãããªåé¡ãæã£ã¦ãã¾ããã
- å°ç¨ã¢ããªã±ã¼ã·ã§ã³ããªãã¨æä½ã§ããªã
- ãã¼ã¸ã§ã³ã¢ããã«ãã£ã¦äºææ§ã失ãããå¯è½æ§ããã
- æ¤ç´¢æ§ãè½ã¡ã
ãããã ãæ¥ã ã®æ¥åã§å©ç¨ã»èç©ããããã¼ã¿ãç¹å®ã®ä¼ç¤¾ã®ç¬èªãã©ã¼ãããã«åºã¥ãã¦ããã¨ããã®ã¯ã確ãã«æããã話ã§ãã
ããã®ãããªèæ¯ããããªã¼ãã³ãªè¦æ ¼ã¸ã¨ãããã¼ãºã«å¯¾å¿ããã®ãOOXMLå½¢å¼ã¸ã®ç§»è¡ã§ãã
ãOOXMLå½¢å¼ã¯ECMAï¼European Computer Manufacturer's Associationï¼æ¬§å·é»åè¨ç®æ©å·¥æ¥ä¼ï¼ãçµç±ãã¦ISO/IECï¼å½éé»æ°æ¨æºä¼è°ï¼ã§æ¨æºåããããªã¼ãã³ãªè¦æ ¼ã§ãOpenOfficeã対å¿ãã¦ãã¾ãã
ããã®ããã«å©ç¨è ã«ã¯ã¡ãªããï¼ãã®å¤ãã¯ç®ã«è¦ããªããã®ã§ããï¼ãå¤ããã¡ã¤ã«ãã©ã¼ãããã®å¤æ´ã§ãããPOIããã®ä»ã®Officeãæ±ãã©ã¤ãã©ãªã¯ããã«ã¯å¯¾å¿ã§ãããOOXMLå½¢å¼ãæ±ããªãç¶æ ãç¶ãã¦ãã¾ããã
ããããªä¸ãã¤ãã«2009å¹´9æã«ãªãªã¼ã¹ãããPOI 3.5ããOOXMLå½¢å¼ã®ãã¡ã¤ã«ããµãã¼ã対象ã«ãªãã¾ãããã¤ã¾ãPOIãå©ç¨ãã¦ãæ¡å¼µåããxlsxããdocxãã¨ãã£ã2007å½¢å¼ã®ãã¡ã¤ã«ã®èªã¿æ¸ããå¯è½ã«ãªã£ãã®ã§ãã
ããã®ãã¨ã¯ãåãªãæ°ããªãã¡ã¤ã«ãã©ã¼ãããã¸ã®å¯¾å¿ã¨ããã ãã§ãªããæ±ãããã¼ã¿ä»¶æ°ã®å¢å ãããããæ©è½ã®å å®ãªã©ãExcel 2007ã®æ©è½ãå©ç¨ãã¦ãããå¤ãã®ã·ã¼ã³ã§POIãå©ç¨ã§ããããã«ãªã£ããã¨ãæå³ãã¾ãã
ãJavaã§Excelãã¡ã¤ã«ãæä½ããAPIã¨ãã¦ã¯POIã®ä»ã«ãJava Excel APIããæåã§ãããå·çæç¹ï¼2009å¹´12æï¼ã§ã¯ãJava Excel APIã¯OOXMLå½¢å¼ã®ãã¡ã¤ã«ããµãã¼ããã¦ãã¾ããã
ãã¾ããPOIã¨è¨ãã¨Excelã®ã¤ã¡ã¼ã¸ãå¼·ãã®ã§ãããExcelã ãã§ã¯ãªããWordãPowerPointãOutlookãVisioãPublisherã¸ã®Javaç¨APIãæä¾ãã¦ãã¾ãããã ããExcelã¸ã®ãµãã¼ãã¨æ¯è¼ããã¨ã¾ã ã¾ã ååã§ã¯ãªãç¶æ³ã§ããä¸è¨ã«POIã®ã³ã³ãã¼ãã³ãä¸è¦§ãè¨è¼ãã¾ãã
ã³ã³ãã¼ãã³ã | 対å¿ã¢ããªã±ã¼ã·ã§ã³ |
POIFS | OLE2 Filesystem |
HPSF | OLE2 Property Sets |
HSSF / XSSF | Excelï¼æ¡å¼µåXLS/XLSXï¼ |
HSLF / XSLF | PowerPointï¼æ¡å¼µåPPT/PPTSï¼ |
HWPF / XWPF | Wordï¼æ¡å¼µåDOC/DOCXï¼ |
HDGF | Visioï¼æ¡å¼µåVSDï¼ |
HPBF | Publisherï¼æ¡å¼µåPUBï¼ |
HSMF | Outlookï¼æ¡å¼µåMSGï¼ |
OpenXML4J | OOXML |
ãæ¬é£è¼ã§ã¯Excelã®ã¿ã対象ã¨ãã¾ãã®ã§ä¸è¨ã³ã³ãã¼ãã³ããå©ç¨ãã¾ãã
- XSSFï¼æ¡å¼µåxlsxã®Excelãã¡ã¤ã«ã®çæãå å·¥ãèªã¿æ¸ãã«å¿ è¦ã§ãã
- HSSFï¼Excel 97以éã®æ¡å¼µåxlsã®Excelãã¡ã¤ã«ã®çæãå å·¥ãèªã¿æ¸ãã«å¿ è¦ã§ãã
- POIFSï¼ OLE2å½¢å¼ï¼xlsãdocãªã©ï¼ã®ãã¡ã¤ã«çæã¨èªè¾¼ã¿ã«å¿ è¦ã§ãã
- OpenXML4Jï¼ECMAï¼376 ã§å®ç¾©ããã¦ãããZipãã¡ã¤ã«å½¢å¼ãæ¡ç¨ãã¦ããOpen Packaging Conventionsç¨ã®ãã¥ã¢Javaå®è£ ã§ãOOXMLå½¢å¼ï¼xlsxãdocxãªã©ï¼ã®ãã¡ã¤ã«ãå©ç¨ããå ´åã«å¿ è¦ã§ãã
ãã¾ããversion3.5ããAPIã¸ã®å¤§ããªå¤æ´ç¹ã¨ãã¦ä¸è¨ããã±ã¼ã¸ãå°å ¥ããã¦ãã¾ãã
- org.apache.poi.xssf
- org.apache.poi.ss
OOXMLå½¢å¼ã®Excelãã¡ã¤ã«ãæä½ããããã«å¿ è¦ãªAPIãæä¾
OOXMLã¨OLE2å½¢å¼ã®ä¸¡æ¹ããµãã¼ãå¯è½ã«ããå ±éã¤ã³ã¿ã¼ãã§ã¤ã¹APIãæä¾