2002-02-18 11:12:48 -05:00
|
|
|
<html>
|
|
|
|
<head>
|
|
|
|
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
|
|
|
<title></title>
|
|
|
|
</head>
|
|
|
|
<body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4" topmargin="4" alink="#023264" vlink="#023264" link="#525D76" text="#000000">
|
|
|
|
<table border="0" cellpadding="0" cellspacing="0" width="100%">
|
|
|
|
<tr>
|
|
|
|
<td align="left" valign="top"><a href="http://jakarta.apache.org/index.html"><img src="images/jakarta-logo.gif" border="0" vspace="0" hspace="0"></a></td><td bgcolor="#ffffff" align="left" valign="top" width="100%"><img src="images/header.gif" align="right" border="0" vspace="0" hspace="0"></td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td colspan="2" height="2" width="100%">
|
|
|
|
<hr size="1" noshade="">
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
<table border="0" cellpadding="0" cellspacing="0" width="100%">
|
|
|
|
<tr>
|
|
|
|
<td valign="top" width="1%"></td><td nowrap="1" valign="top" width="14%">
|
|
|
|
<br>
|
|
|
|
<font face="arial,helvetica,sanserif">
|
|
|
|
<br>
|
|
|
|
<font size="+1" color="#000000">Main</font><font size="-1">
|
|
|
|
<ul>
|
|
|
|
<li>
|
|
|
|
<a href="http://jakarta.apache.org"><font size="-1">Jakarta</font></a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</font>
|
|
|
|
<br>
|
|
|
|
<font size="+1" color="#000000">About</font><font size="-1">
|
|
|
|
<ul>
|
|
|
|
<li>
|
|
|
|
<a href="index.html"><font size="-1">Index</font></a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="historyandfuture.html"><font size="-1">History</font></a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="historyandfuture.html"><font size="-1">Future</font></a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="http://sourceforge.net/project/showfiles.php?group_id=32701"><font size="-1">Download</font></a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="plan/POI10Vision.html"><font size="-1">1.0 Vision</font></a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="plan/POI20Vision.html"><font size="-1">2.0 Vision</font></a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="who.html"><font size="-1">Who we are</font></a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="changes.html"><font size="-1">Changes</font></a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="todo.html"><font size="-1">Todo</font></a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</font>
|
|
|
|
<br>
|
|
|
|
<font size="+1" color="#000000">Sub-Projects</font><font size="-1">
|
|
|
|
<ul>
|
|
|
|
<li>
|
|
|
|
<a href="overview.html"><font size="-1">Overview</font></a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="poifs/index.html"><font size="-1">POIFS</font></a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="hssf/index.html"><font size="-1">HSSF</font></a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="hdf/index.html"><font size="-1">HDF</font></a>
|
|
|
|
</li>
|
|
|
|
<li>
|
2002-02-23 08:48:22 -05:00
|
|
|
<a href="hpsf/index.html"><font size="-1">HPSF</font></a>
|
|
|
|
</li>
|
|
|
|
<li>
|
2002-02-18 11:12:48 -05:00
|
|
|
<a href="utils/index.html"><font size="-1">POI-Utils</font></a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</font>
|
|
|
|
<br>
|
|
|
|
<font size="+1" color="#000000">References</font><font size="-1">
|
|
|
|
<ul>
|
|
|
|
<li>
|
|
|
|
<a href="livesites.html"><font size="-1">Live Sites</font></a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="building.xml"><font size="-1">Building</font></a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="http://sc.openoffice.org/excelfileformat.pdf"><font size="-1">XLS spec [PDF]</font></a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="http://xml.apache.org/cocoon/"><font size="-1">Apache Cocoon</font></a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</font>
|
|
|
|
<br>
|
|
|
|
<font size="+1" color="#000000">Get Involved</font><font size="-1">
|
|
|
|
<ul>
|
|
|
|
<li>
|
|
|
|
<a href="contrib.html"><font size="-1">Contributing</font></a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="https://sourceforge.net/tracker/?atid=406288&group_id=32701&func=browse"><font size="-1">Bug Database</font></a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="http://jakarta.apache.org/site/cvsindex.html"><font size="-1">CVS</font></a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="http://jakarta.apache.org/site/mail.html"><font size="-1">Mail Lists</font></a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</font>
|
|
|
|
<br>
|
|
|
|
<br>
|
|
|
|
</font></td><td align="left" valign="top" width="*"><font size="-2" color="#000000">
|
|
|
|
<p>
|
|
|
|
<a href="mailto:"></a>
|
|
|
|
</p>
|
|
|
|
</font>
|
|
|
|
<br>
|
|
|
|
<div align="right">
|
|
|
|
<table cellspacing="0" cellpadding="2" border="0" width="100%">
|
|
|
|
<tr>
|
|
|
|
<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>Purpose</b></font></font></td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>
|
|
|
|
<br>
|
|
|
|
|
|
|
|
<p align="justify">
|
|
|
|
The POI project consists of APIs for manipulating various file formats
|
|
|
|
based upon Microsoft's OLE 2 Compound Document format using pure Java.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p align="justify">
|
|
|
|
OLE 2 Compound Document Format based files include most Microsoft Office
|
|
|
|
files such as XLS and DOC.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p align="justify">
|
|
|
|
As a general policy we try to collaborate as much as possible with other projects to
|
|
|
|
provide this functionality. Examples include: <a href="http://xml.apache.org/cocoon">Cocoon</a> for
|
|
|
|
which you'll soon find generators and serializers for our projects;
|
|
|
|
<a href="http://www.openoffice.org">Open Office.org</a> with whom we collaborate in documenting the
|
|
|
|
XLS format; and <a href="http://jakarta.apache.org/lucene">Lucene</a> for which we'll soon have file
|
|
|
|
format interpretors. When practical, we donate components directly to those projects for POI-enabling them.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<div align="right">
|
|
|
|
<table cellspacing="0" cellpadding="2" border="0" width="99%">
|
|
|
|
<tr>
|
2002-02-23 08:48:22 -05:00
|
|
|
<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>Why/when would I use POI?</b></font></font></td>
|
2002-02-18 11:12:48 -05:00
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>
|
|
|
|
<br>
|
|
|
|
|
|
|
|
<p align="justify">
|
|
|
|
We'll tackle this on a component level. POI refers to the whole project.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p align="justify">
|
|
|
|
So why should you use POIFS or HSSF?
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p align="justify">
|
|
|
|
You'd use POIFS if you had a document written in OLE 2 Compound Document Format, probably written using
|
|
|
|
MFC, that you needed to read in Java. Alternatively, you'd use POI to write OLE 2 Compound Document Format
|
|
|
|
if you needed to inter-operate with software running on the Windows platform. We are not just bragging when
|
|
|
|
we say that POIFS is the most complete and correct port of this file format to date!
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p align="justify">
|
|
|
|
You'd use HSSF if you needed to read or write an XLS (Excel) file using Java. You can also read and modify
|
|
|
|
spreadsheets using this API, although right now writing is more mature.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
</div>
|
|
|
|
<br>
|
|
|
|
|
|
|
|
|
|
|
|
<div align="right">
|
|
|
|
<table cellspacing="0" cellpadding="2" border="0" width="99%">
|
|
|
|
<tr>
|
|
|
|
<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>What does POI stand for?</b></font></font></td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>
|
|
|
|
<br>
|
|
|
|
|
|
|
|
<p align="justify">
|
|
|
|
POI stands for Poor Obfuscation Implementation. Why would we name our project such a derogatory name? Well,
|
|
|
|
Microsoft's OLE 2 Compound Document Format is a poorly conceived thing. It is essentially an archive structured
|
|
|
|
much like the old DOS FAT filesystem. Redmond chose, instead of using tar, gzip, zip or arc, to invent their own
|
|
|
|
archive format that does not provide any standard encryption or compression, is not very appendable and is prone
|
|
|
|
to fragmentation.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p align="justify">
|
|
|
|
Poi is also a Hawaiian delicacy that <a href="http://www.m-w.com">Merriam Webster's dictionary</a> defines as:
|
|
|
|
"A Hawaiian food of taro root cooked, pounded, and kneaded to a paste and often allowed to ferment." This seemed
|
|
|
|
strangely descriptive of the file format.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p align="justify">
|
|
|
|
So if you like acronyms, then POI is an acronym. If you hate them, then we just used the name of the food for our
|
|
|
|
project. If you wish to signify your love or hate for acronyms, use POI or Poi to refer to the project respectively.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
</div>
|
|
|
|
<br>
|
|
|
|
|
|
|
|
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
</div>
|
|
|
|
<br>
|
|
|
|
<div align="right">
|
|
|
|
<table cellspacing="0" cellpadding="2" border="0" width="100%">
|
|
|
|
<tr>
|
|
|
|
<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>Components To Date</b></font></font></td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>
|
|
|
|
<br>
|
|
|
|
|
|
|
|
<div align="right">
|
|
|
|
<table cellspacing="0" cellpadding="2" border="0" width="99%">
|
|
|
|
<tr>
|
|
|
|
<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>Overview</b></font></font></td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>
|
|
|
|
<br>
|
2002-02-23 08:48:22 -05:00
|
|
|
|
|
|
|
<p align="justify">A common misconception is that POI writes Excel files. POI is the name of the project. POI contains several
|
2002-02-18 11:12:48 -05:00
|
|
|
components, one of which, HSSF, writes Excel files. The following are components of the entire POI project
|
2002-02-23 08:48:22 -05:00
|
|
|
and a brief summary of their purpose.</p>
|
|
|
|
|
|
|
|
</td>
|
2002-02-18 11:12:48 -05:00
|
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
</div>
|
|
|
|
<br>
|
|
|
|
|
|
|
|
<div align="right">
|
|
|
|
<table cellspacing="0" cellpadding="2" border="0" width="99%">
|
|
|
|
<tr>
|
2002-02-23 08:48:22 -05:00
|
|
|
<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>POIFS (POI Filesystem)</b></font></font></td>
|
2002-02-18 11:12:48 -05:00
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>
|
|
|
|
<br>
|
2002-02-23 08:48:22 -05:00
|
|
|
|
|
|
|
<p align="justify">POIFS is the oldest and most stable part of the project. It is our port of the OLE 2 Compound Document Format to
|
2002-02-18 11:12:48 -05:00
|
|
|
pure Java. It supports both read and write functionality. All of our components ultimately rely on it by
|
2002-02-23 08:48:22 -05:00
|
|
|
definition. Please see <a href="poifs/index.html">the POIFS project page</a> for more information.</p>
|
|
|
|
|
|
|
|
</td>
|
2002-02-18 11:12:48 -05:00
|
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
</div>
|
|
|
|
<br>
|
|
|
|
|
|
|
|
<div align="right">
|
|
|
|
<table cellspacing="0" cellpadding="2" border="0" width="99%">
|
|
|
|
<tr>
|
2002-02-23 08:48:22 -05:00
|
|
|
<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>HSSF (Horrible Spreadsheet Format)</b></font></font></td>
|
2002-02-18 11:12:48 -05:00
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>
|
|
|
|
<br>
|
2002-02-23 08:48:22 -05:00
|
|
|
|
|
|
|
<p align="justify">HSSF is our port of the Microsoft Excel 97(-2002) file format (BIFF8) to pure Java. It supports read and write
|
|
|
|
capability. Please see <a href="hssf/index.html">the HSSF project page</a> for more information.</p>
|
|
|
|
|
|
|
|
</td>
|
2002-02-18 11:12:48 -05:00
|
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
</div>
|
|
|
|
<br>
|
|
|
|
|
|
|
|
<div align="right">
|
|
|
|
<table cellspacing="0" cellpadding="2" border="0" width="99%">
|
|
|
|
<tr>
|
2002-02-23 08:48:22 -05:00
|
|
|
<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>HDF (Horrible Document Format)</b></font></font></td>
|
2002-02-18 11:12:48 -05:00
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>
|
|
|
|
<br>
|
2002-02-23 08:48:22 -05:00
|
|
|
|
|
|
|
<p align="justify">HDF is our port of the Microsoft Word 97 file format to pure Java. It supports read and write capability.
|
2002-02-18 11:12:48 -05:00
|
|
|
Please see <a href="hdf/index.html">the HDF project page for more information</a>. This component is
|
2002-02-23 08:48:22 -05:00
|
|
|
in the early stages of design. Jump in!</p>
|
|
|
|
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
</div>
|
|
|
|
<br>
|
|
|
|
|
|
|
|
<div align="right">
|
|
|
|
<table cellspacing="0" cellpadding="2" border="0" width="99%">
|
|
|
|
<tr>
|
|
|
|
<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>HPSF (Horrible Property Set Format)</b></font></font></td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>
|
|
|
|
<br>
|
|
|
|
|
|
|
|
<p align="justify">HPSF is our port of the OLE 2 property set format to pure
|
|
|
|
Java. Property sets are mostly use to store a document's properties
|
|
|
|
(title, author, date of last modification etc.), but they can be used
|
|
|
|
for application-specific purposes as well. Currently HPSF supports
|
|
|
|
read functionality only. Please see <a href="hpsf/index.html">the HPSF project page</a> for more
|
|
|
|
information.</p>
|
|
|
|
|
|
|
|
</td>
|
2002-02-18 11:12:48 -05:00
|
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
</div>
|
|
|
|
<br>
|
|
|
|
|
|
|
|
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
</div>
|
|
|
|
<br>
|
|
|
|
<div align="right">
|
|
|
|
<table cellspacing="0" cellpadding="2" border="0" width="100%">
|
|
|
|
<tr>
|
|
|
|
<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>What happened to the HSSF Serializer?</b></font></font></td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>
|
|
|
|
<br>
|
2002-02-23 08:48:22 -05:00
|
|
|
|
|
|
|
<p align="justify">The HSSF Serializer, which was part of our 1.0 release and last builds on
|
2002-02-18 11:12:48 -05:00
|
|
|
<a href="http://www.sourceforge.net/projects/poi">Sourceforge</a>, has been donated to the Cocoon project. We're
|
2002-02-23 08:48:22 -05:00
|
|
|
currently in the process of porting it over.</p>
|
|
|
|
|
|
|
|
</td>
|
2002-02-18 11:12:48 -05:00
|
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
</div>
|
|
|
|
<br>
|
|
|
|
<div align="right">
|
|
|
|
<table cellspacing="0" cellpadding="2" border="0" width="100%">
|
|
|
|
<tr>
|
|
|
|
<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>Contributing </b></font></font></td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>
|
|
|
|
<br>
|
|
|
|
|
|
|
|
<p align="justify">
|
|
|
|
So you'd like to contribute to the project? Great! We need enthusiastic, hard-working, talented folks to help
|
|
|
|
us on the project in several areas. The first is bug reports and feature requests! The second is documentation -
|
|
|
|
we'll be at your every beck and call if you've got a critique or you'd like to contribute or otherwise improve
|
|
|
|
the documentation. We could especially use some help documenting the HSSF file format! Last, but not least, we
|
|
|
|
could use some binary crunching Java coders to chew through the convolution that characterizes Microsoft's file
|
|
|
|
formats and help us port new ones to a superior Java platform!
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p align="justify">So if you're motivated, ready, and have the time, join the mail lists and we'll be happy to help you get started on the
|
|
|
|
project!
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
</div>
|
|
|
|
<br>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
<br>
|
|
|
|
<table cellpadding="0" cellspacing="0" border="0" width="100%">
|
|
|
|
<tr>
|
|
|
|
<td>
|
|
|
|
<hr size="1" noshade="">
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td align="center"><font color="#525D76" size="-1" face="arial,helvetica,sanserif"><i>
|
|
|
|
Copyright ©2002 Apache Software Foundation
|
|
|
|
</i></font></td><td width="5%" align="right"><img src="images/cocoon2-small.jpg" align="right" border="0" vspace="0" hspace="0"></td>
|
|
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
</body>
|
|
|
|
</html>
|