Obtained from:
Submitted by:
Reviewed by:
added built doc files


git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@352105 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Andrew C. Oliver 2002-02-18 16:12:48 +00:00
parent 23165a0c29
commit 7032becf31
40 changed files with 9657 additions and 0 deletions

View File

@ -0,0 +1,180 @@
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>History of Changes</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>
<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="*">
<title>History of Changes</title>
<center>
<table width="80%">
<tr>
<td bgcolor="#F3DD61"><font face="Arial,sans-serif" size="+1">
<center>
<b>History of Changes</b>
</center>
</font></td>
</tr>
</table>
</center>
<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> 1.1-dev (February 17 2002)</b></font></font></td>
</tr>
<tr>
<td>
<br>
<sl>
<li>
<icon alt="update" src="images/update.jpg"></icon>
New project build.
(NKB)</li>
<li>
<icon alt="update" src="images/update.jpg"></icon>
New project documentation system based on Cocoon.
(NKB)</li>
</sl>
</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 &copy;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>

View File

@ -0,0 +1,530 @@
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Contribution to POI</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>
<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="*">
<title>Contribution to POI</title>
<center>
<table width="80%">
<tr>
<td bgcolor="#F3DD61"><font face="Arial,sans-serif" size="+1">
<center>
<b>Contribution to POI</b>
</center>
</font></td>
</tr>
</table>
</center>
<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>Introduction</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">
The POI Project is an <a href="http://www.opensource.org/">Open Source</a>
volunteer project released under a very open license.
This means there are many ways to contribute to the project - either
with direct participation (coding, documenting, answering questions,
proposing ideas, reporting bugs, suggesting bug fixes, etc. ...) or by resource
donations (money, time, publicity, hardware, software, conference
presentations, speeches, etc. ...).
</p>
<p align="justify">
To begin with, we suggest you subscribe to the
<a href="mail-lists.html">POI mailing lists</a>
(follow the link for information on how to subscribe and to access the mail
list archives). Listen in for a while, to hear how others make contributions.
</p>
<p align="justify">You can get your local working copy of the
<a href="http://jakarta.apache.org/site/cvsindex.html">latest and
greatest code</a> (which you find in the jakarta-poi module in
the CVS code repository. Review the <a href="todo.html">todo</a> list and choose a task
(or perhaps you have noticed something that needs patching). Make the changes, do the testing,
generate a patch, and post to the dev mailing list. (Do not worry - the process is easy and
explained below.)
</p>
<p align="justify">
Document writers are usually the most wanted people so if
you like to help but you're not familiar with the innermost technical details, don't worry:
we have work for you! And we'll be very available to you for any questions!
</p>
</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>Help Wanted Here</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">
The rest of this document is mainly about
contributing new or improved code and/or documentation, but we would also be glad to have
extra help in any of the following areas:
</p>
<ul>
<li>Answering questions on the <code>users</code> mailing list - there is often a problem of
having too many questioners and not enough experts to respond to all the questions.</li>
<li>Testing POI (especially its less-frequently-used features) on various configurations
and reporting back.</li>
<li>Debugging - producing reproducible test cases and/or finding causes of bugs. Some known bugs are informally listed on
<a href="todo.html">To Do</a>, and some are recorded in Bugzilla
(see <a href="#procedure">explanation below</a>).</li>
<li>Specifying/analyzing/designing new features - and beyond. (If you wish to get involved
with this, please join the <code>general POI mailing list</code>
, install and try out POI
and read some of the <a href="mail-lists.html">mail archives</a>.
You should have a strong "fluency" in Java and a basic understanding of
the POI architecture - don't just say "it should have XYZ" without reading anything first -
because chances are, someone's already thought of that feature!)</li>
<li>Packaging easy-to-install packages (such as RPMs) for the myriad of possible configurations out
there. (The project does not maintain anything but the basic <code>.zip</code> and
<code>.tar.gz</code> packages, but anyone is welcome to build their own specific packages and
announce them on the <code>general POI list</code>)</li>
<li>... and there is just one other thing - don't forget to tell everyone who asks, how great POI is! ;-)
The more people that know about and start to use POI, the larger the pool of
potential contributors there will be.
</li>
</ul>
</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>CVS Usage Precis</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">An overview of how to use CVS to participate in POI development.
Do not be afraid - you cannot accidently destroy the actual code repository,
because you are working with a local copy as an anonymous user.
You do not have the system permissions to change anything. You can only
update your local repository and compare your revisions with the real
repository.
</p>
<p align="justify">
(Further general CVS usage information is at
<a href="http://www.cvshome.org/">www.cvshome.org</a> and your local
<code>info cvs</code> pages or <code>man cvs</code> pages or user
documentation.)
</p>
<p align="justify">
Let us lead by example. We will show you how to establish your local
repository, how to keep it up-to-date, and how to generate the differences
to create a patch. (The commands are for Linux.)
</p>
</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>CVS Committer with Secure Shell access</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">After a developer has consistently provided contributions (code,
documentation and discussion), then the rest of the dev community
may vote to grant this developer commit access to CVS.
</p>
<p align="justify">You will need secure access to the repository to be able to commit
patches. Here are some resources that help to get your machine configured
to use the repository over SSH.
</p>
<ul>
<li>
<a href="http://cvsbook.red-bean.com/">The CVS Book</a>
</li>
<li>
<a href="http://www.cvshome.org/">www.cvshome.org</a>
</li>
<li>
<a href="https://sourceforge.net/cvs/?group_id=32701"></a>
- See the bottom of the page for links to tips for UNIX and Windows.
Even if you are on UNIX, the Windows page will also help.</li>
</ul>
</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>Procedure for Raising Development Issues</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">
There are two methods for discussing development and submitting patches.
So that everyone can be productive, it is important to know which method
is appropriate for a certain situation and how to go about it without
confusion. This section explains when to use the
<code>developer</code> <a href="mail-lists.html">mailing list</a>
and the bug database.
</p>
<p align="justify">
Research your topic thoroughly before beginning to discuss a new
development issue. Search and browse through the email archives - your
issue may have been discussed before. Prepare your post clearly and
concisely.
</p>
<p align="justify">
Most issues will be discovered, resolved, and then patched quickly
via the <code>developer</code> mailing list. Larger issues, and ones that
are not yet fully understood or are hard to solve, are destined for
Bugzilla.
</p>
<p align="justify">
Experienced developers use Bugzilla directly, as they are very sure
when they have found a bug and when not. However, less experienced users
should first discuss it on the user or developer mailing list (as
appropriate). Impatient people frequently enter everything into Bugzilla
without caring if it is a bug in POI or their own
installation/configuration mistake - please, do not do this.
</p>
<p align="justify">
As a rule-of-thumb, discuss an issue on the <code>developers</code>
mailing list first to work out any details.
After it is confirmed to be worthwhile, and you are clear about it,
then submit the bug description or patch via Bug Tracking.
</p>
<p align="justify">
If you do not get any answer on your first attempt, post
your issue again until you get a reply. (But, please, not every hour - allow a few
days for the list to deal with it.) Do not be impatient - remember that
the whole world is busy, not just you. Bear in mind that other countries
will have holidays at different times to your country and that they are
in different time zones. You might also consider re-writing your initial
posting - perhaps it was not clear enough
and the readers' eyes glazed over.
</p>
</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>Contribution Notes and Tips</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">
This is a collection of tips for contributing to the project in a manner
that is productive for all parties.
</p>
<ul>
<li>
Every contribution is worthwhile. Even if the ensuing discussion
proves it to be off-beam, then it may jog ideas for other people.
</li>
<li>
Use sensible and concise email subject headings. Search engines, and
humans trying to browse a voluminous list, will respond favorably to a
descriptive title.
</li>
<li>Start new threads with new Subjects for new topics, rather than
re-using the previous Subject line.
</li>
<li>Keep each topic focussed. If some new topic arises, start a new
discussion. This leaves the original topic to continue un-cluttered.
</li>
<li>Whenever you decide to start a new topic, then start with a fresh
new email message window. Do not use the "Reply to" button,
because threaded mail-readers get confused (they use the
<code>In-reply-to</code> header). Otherwise, your new topic will get
lost in the previous thread and go un-answered.
</li>
<li>
Prepend your email subject line with a marker when that is appropriate,
e.g. <code>[Patch]</code>, <code>[Proposal]</code>,
<code>[RT]</code> (Random Thought, these quickly blossom into research
topics :-), <code>[STATUS]</code> (development status of a certain
feature).
</li>
<li>
When making changes to XML documentation, or any XML document for that
matter, use a
<a href="http://www.oasis-open.org/cover/">validating parser</a>
(one that is tried and true is
<a href="http://www.jclark.com/sp/">SP/nsgmls</a>).
This procedure will detect errors without having to go through the whole
<code>build docs</code> process to find them. Do not expect POI
or the build system to detect the validation errors for you - they can
do it, but that is not their purpose. (Anyway, nsgmls validation error
messages are more informative.). Andy wishes it to be known he uses
<a href="http://www.sourceforge.net/projects/jedit">jEdit</a>. For
his XML editing. (That is when he's not hacking it in 'vi' the true editor
and light of the text editing world!).
</li>
<li>
Remember that most people are participating in development on a
volunteer basis and in their "spare time". These enthusiasts will attempt
to respond to issues. It may take a little while to get your answers.
</li>
<li>
Research your topic thoroughly before beginning to discuss a new
development issue. Search and browse through the email archives - your
issue may have been discussed before. Do not just perceive a problem and
then rush out with a question - instead, delve.
</li>
<li>
Try to at least offer a partial solution and not just a problem statement.
</li>
<li>
Take the time to clearly explain your issue and write a concise email
message. Less confusion facilitates fast and complete resolution.
</li>
<li>
Do not bother to send an email reply that simply says "thanks".
When the issue is resolved, that is the finish - end of thread.
Reduce clutter.
</li>
<li>
You would usually do any development work against the HEAD branch of CVS.
</li>
<li>
When sending a patch, you usually do not need to worry about which CVS
branch it should be applied to. The maintainers of the repository will
decide.
</li>
<li>
If an issue starts to get bogged down in list discussion, then it may
be appropriate to go into private off-list discussion with a few interested
other people. Spare the list from the gory details. Report a summary back
to the list to finalize the thread.
</li>
<li>
Become familiar with the mailing lists. As you browse and search, you will
see the way other people do things. Follow the leading examples.
</li>
</ul>
</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 &copy;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>

View File

@ -0,0 +1,223 @@
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Frequently Asked Questions</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>
<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="*">
<title>Frequently Asked Questions</title>
<center>
<table width="80%">
<tr>
<td bgcolor="#F3DD61"><font face="Arial,sans-serif" size="+1">
<center>
<b>Frequently Asked Questions</b>
</center>
</font></td>
</tr>
</table>
</center>
<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>Questions</b></font></font></td>
</tr>
<tr>
<td>
<br>
<ul>
<li>
<jump anchor="faq-1">
What is the HSSF "eventmodel"?
</jump>
</li>
</ul>
</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>Answers</b></font></font></td>
</tr>
<tr>
<td>
<br>
<anchor id="faq-1"></anchor>
<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 is the HSSF "eventmodel"?
</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">
The HSSF eventmodel package is a new API for reading XLS files more efficiently. It does
require more knowledge on the part of the user, but reduces memory consumption by more than
tenfold. It is based on the AWT event model in combination with SAX. If you need read-only
access to a given XLS file, this is the best way to do it.
</p>
<p align="justify">
Soon, very soon.
</p>
</td>
</tr>
</table>
</div>
<br>
</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 &copy;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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

View File

@ -0,0 +1,91 @@
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>HDF</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">Navigation</font><font size="-1">
<ul>
<li>
<a href="../index.html"><font size="-1">Main</font></a>
</li>
</ul>
</font>
<br>
<br>
</font></td><td align="left" valign="top" width="*">
<title>HDF</title>
<center>
<table width="80%">
<tr>
<td bgcolor="#F3DD61"><font face="Arial,sans-serif" size="+1">
<center>
<b>HDF</b>
</center>
</font></td>
</tr>
</table>
</center>
<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>Overview</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">HDF will be the name of OUR port of the Microsoft Word 97(-2002) file format to
pure Java.</p>
<p align="justify">HDF is still in early development. If you want to help us, you can
follow development on the poi-dev mailing list.</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 &copy;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>

View File

@ -0,0 +1,284 @@
<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>
<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>Brief Project History</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">The POI project was dreamed up back around April 2001, when
Andy Oliver landed a short term contract to do Java-based
reporting to Excel. He'd done this project a few times before
and knew right where to look for the tools he needed.
Ironically, the API he used to use had skyrocketed from around
$300 ($US) to around $10K ($US). He figured it would take two
people around six months to write an Excel port so he
recommended the client fork out the $10K.
</p>
<p align="justify">Around June 2001, Andy started thinking how great it would
be to have an open source Java tool to do this and, while he
had some spare time, he started on the project and learned
about OLE 2 Compound Document Format. After hitting some real
stumpers he realized he'd need help. He posted a message to
his local Java User's Group (JUG) and asked if anyone else
would be interested. He lucked out and the most talented Java
programmer he'd ever met, Marc Johnson, joined the project. He
ran rings around Andy at porting OLE 2 CDF and rewrote his
skeletal code into a more sophisticated library. It took Marc
a few iterations to get something they were happy with.
</p>
<p align="justify">While Marc worked on that, Andy ported XLS to Java, based
on Marc's library. Several users wrote in asking to read XLS
(not just write as had originally been planned) and one user
had special requests for a different use for POIFS. Before
long, the project scope had tripled. POI 1.0 was released a
month later than planned, but with far more features. Marc
quickly wrote the serializer framework and HSSF Serializer in
record time and Andy banged out more documentation and worked
on making people aware of the project
</p>
<p align="justify"> Shortly before the release, POI was fortunate to come into
contact with Nicola -Ken- Barrozzi who gave them samples for
the HSSF Serializer and help uncover its unfortunate bugs
(which were promptly fixed). More recently, Ken ported most
of the POI project documentation to XML from Andy's crappy
HTML docs he wrote with Star Office.
</p>
<p align="justify"> Around the same time as the release, Glen Stampoultzis
joined the project. Glen was ticked off at Andy's flippant attitude
towards adding graphing to HSSF. Glen got so ticked off he decided to
grab a hammer and do it himself. Glen has already become an integral
part of the POI development community; his contributions to HSSF have
already started making waves.
</p>
<p align="justify">Somewhere in there we decided to finally submit the project
to <a href="http://xml.apache.org/cocoon">The Apache
Cocoon Project</a>, only to discover the project had
outgrown fitting nicely into just Cocoon long ago.
Furthermore, Andy started eyeing other projects he'd like to
see POI functionality added to. So it was decided to donate
the Serializers and Generators to Cocoon, other POI
integration components to other projects, and the POI APIs
would become part of Jakarta. It was a bumpy road but it
looks like everything turned out since you're reading this!
</p>
</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's next for POI</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">First we'll tackle this from a project standpoint: Well, we
made an offer to Microsoft and Actuate (tongue in cheek
... well mostly) that we'd quit the project and retire if
they'd simply write us each a really large check. I've yet to
get a phone call or email so I'm assuming they're not going to
pay us to go away.
</p>
<p align="justify">Next, we've got some work to do here at Jakarta to finish
integrating POI into the community. Furthermore, we're
still transitioning the Serializer to Cocoon.
</p>
<p align="justify">HSSF, during the 2.0 cycle, will undergo a few
optimizations. We'll also be adding new features like a full
implementation of Formulas and custom text formats. We're
hoping to be able to generate smaller files by adding
write-support for RK, MulRK and MulBlank records. I'm also
going to work on a Cocoon 2 Generator. Currently, reading is
not very efficient in HSSF. This is mainly because in order to
write or modify, one needs to be able to update upstream
pointers to downstream data. To do this you have to have
everything between in memory. A Generator would allow SAX
events to be processed instead. (This will be based on the low
level structures). One of the great things about this is that,
you'll not only have a more efficient way to read the file,
you'll have a great way to use spreadsheets as XML data
sources.
</p>
<p align="justify">The HSSF Serializer, will further separate into a general
framework for creating serializers for other formats and the
HSSF Serializer specific implementation. (This is largely
already true). We'll also be adding support for features
already supported by HSSF (styles, fonts, text formats). We're
hoping to add support for formulas during this cycle.
</p>
<p align="justify">We're beginning to expand our scope yet again. If we could
do all of this for XLS files, what about Doc files or PPT
files? We're thinking that our next component (HDF - Horrible
Document Format) should follow the same pattern. We're hoping
that new blood will join the team and allow us to tackle this
even faster (in part because POIFS is already finished). But
maybe what we need most is you! </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 &copy;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>

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

View File

@ -0,0 +1,132 @@
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>HSSF</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">Navigation</font><font size="-1">
<ul>
<li>
<a href="../index.html"><font size="-1">Main</font></a>
</li>
</ul>
</font>
<br>
<font size="+1" color="#000000">HSSF</font><font size="-1">
<ul>
<li>
<a href="how-to.html"><font size="-1">HOWTO</font></a>
</li>
<li>
<a href="use-case.html"><font size="-1">Use Case</font></a>
</li>
</ul>
</font>
<br>
<br>
</font></td><td align="left" valign="top" width="*">
<title>HSSF</title>
<center>
<table width="80%">
<tr>
<td bgcolor="#F3DD61"><font face="Arial,sans-serif" size="+1">
<center>
<b>HSSF</b>
</center>
</font></td>
</tr>
</table>
</center>
<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>Overview</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">HSSF is the POI Project's pure Java implementation of the Excel '97(-2002) file format.</p>
<p align="justify">HSSF provides a way to read spreadsheets create, modify, read and write XLS spreadsheets
It provides:
</p>
<ul>
<li>low level structures for those with special needs</li>
<li>an eventmodel api for efficient read-only access</li>
<li>a full usermodel api for creating, reading and modifying XLS files</li>
</ul>
<p align="justify">
Truth be told there is probably a better way to generate your spreadsheet
generation (yet you'll still be using HSSF indirectly). At the time of
this writing we're in the process of moving the HSSF Serializer over to
the <a href="http://xml.apache.org/cocoon">Apache Cocoon
Project</a>. With Cocoon you can serialize any XML datasource (of
which might be a ESQL page outputting in SQL for instance) by simply
applying the stylesheet and designating the serializer.
</p>
<p align="justify">
If you're merely reading spreadsheet data, then use the eventmodel api
in the org.apache.poi.hssf.eventmodel package.
</p>
<p align="justify">
If you're modifying spreadsheet data then use the usermodel api. You
can also generate spreadsheets this way, but using Cocoon (which will do
it this way indirectly) is the best way...we promise.
</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 &copy;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>

View File

@ -0,0 +1,480 @@
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>HSSF Use Cases</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">Navigation</font><font size="-1">
<ul>
<li>
<a href="../index.html"><font size="-1">Main</font></a>
</li>
</ul>
</font>
<br>
<font size="+1" color="#000000">HSSF</font><font size="-1">
<ul>
<li>
<a href="how-to.html"><font size="-1">HOWTO</font></a>
</li>
<li>
<a href="use-case.html"><font size="-1">Use Case</font></a>
</li>
</ul>
</font>
<br>
<br>
</font></td><td align="left" valign="top" width="*">
<title>HSSF Use Cases</title>
<center>
<table width="80%">
<tr>
<td bgcolor="#F3DD61"><font face="Arial,sans-serif" size="+1">
<center>
<b>HSSF Use Cases</b>
</center>
</font></td>
</tr>
</table>
</center>
<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>HSSF Use Cases</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>Use Case 1: Read existing HSSF</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">
<em>Primary Actor:</em> HSSF client</p>
<p align="justify">
<em>Scope:</em> HSSF</p>
<p align="justify">
<em>Level:</em> Summary</p>
<p align="justify">
<em>Stakeholders and Interests:</em>
</p>
<ul>
<li>HSSF client- wants to read content
of HSSF file</li>
<li>HSSF - understands HSSF file</li>
<li>POIFS - understands underlying POI
file system</li>
</ul>
<p align="justify">
<em>Precondition:</em> None</p>
<p align="justify">
<em>Minimal Guarantee:</em> None</p>
<p align="justify">
<em>Main Success Guarantee:</em>
</p>
<ol>
<li>HSSF client requests HSSF to read
a HSSF file, providing an InputStream
containing HSSF file in question.</li>
<li>HSSF requests POIFS to read the HSSF
file, passing the InputStream
object to POIFS (POIFS use case 1, read existing file system)</li>
<li>HSSF reads the "Workbook"
file (use case 4, read workbook entry)</li>
</ol>
<p align="justify">
<em>Extensions:</em>
</p>
<p align="justify">2a. Exceptions
thrown by POIFS will be passed on to the HSSF client.</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>Use Case 2: Write HSSF file</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">
<em>Primary Actor:</em> HSSF client</p>
<p align="justify">
<em>Scope:</em> HSSF</p>
<p align="justify">
<em>Level:</em> Summary</p>
<p align="justify">
<em>Stakeholders and Interests:</em>
</p>
<ul>
<li>HSSF client- wants to write file
out.</li>
<li>HSSF - knows how to write file
out.</li>
<li>POIFS - knows how to write file
system out.</li>
</ul>
<p align="justify">
<em>Precondition:</em>
</p>
<ul>
<li>File has been
read (use case 1, read existing HSSF file) and subsequently modified
or file has been created (use case 3, create HSSF file)</li>
</ul>
<p align="justify">
<em>Minimal Guarantee:</em> None</p>
<p align="justify">
<em>Main Success Guarantee:</em>
</p>
<ol>
<li>HSSF client
provides an OutputStream to
write the file to.</li>
<li>HSSF writes
the "Workbook" to its associated POIFS file system (use case
5, write workbook entry)</li>
<li>HSSF
requests POIFS to write its file system out, using the OutputStream
obtained from the HSSF client (POIFS use case 2, write file system).</li>
</ol>
<p align="justify">
<em>Extensions:</em>
</p>
<p align="justify">3a. Exceptions
from POIFS are passed to the HSSF client.</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>Use Case 3:Create HSSF file</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">
<em>Primary Actor:</em> HSSF client</p>
<p align="justify">
<em>Scope:</em> HSSF</p>
<p align="justify">
<em>Level:</em> Summary</p>
<p align="justify">
<em>Stakeholders and Interests:</em>
</p>
<ul>
<li>HSSF client- wants to create a new
file.</li>
<li>HSSF - knows how to create a new
file.</li>
<li>POIFS - knows how to creat a new
file system.</li>
</ul>
<p align="justify">
<em>Precondition:</em>
</p>
<p align="justify">
<em>Minimal Guarantee:</em> None</p>
<p align="justify">
<em>Main Success Guarantee:</em>
</p>
<ol>
<li>HSSF requests
POIFS to create a new file system (POIFS use case 3, create new file
system)</li>
</ol>
<p align="justify">
<em>Extensions:</em>
None</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>Use Case 4: Read workbook entry</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">
<em>Primary Actor:</em> HSSF</p>
<p align="justify">
<em>Scope:</em> HSSF</p>
<p align="justify">
<em>Level:</em> Summary</p>
<p align="justify">
<em>Stakeholders and Interests:</em>
</p>
<ul>
<li>HSSF - knows how to read the
workbook entry</li>
<li>POIFS - knows how to manage the file
system.</li>
</ul>
<p align="justify">
<em>Precondition:</em>
</p>
<ul>
<li>The file
system has been read (use case 1, read existing HSSF file) or has
been created and written to (use case 3, create HSSF file system;
use case 5, write workbook entry).</li>
</ul>
<p align="justify">
<em>Minimal
Guarantee:</em> None</p>
<p align="justify">
<em>Main Success Guarantee:</em>
</p>
<ol>
<li>
HSSF requests POIFS for the "Workbook" file</li>
<li>POIFS returns
an InputStream for the file.</li>
<li>HSSF reads
from the InputStream provided by POIFS</li>
<li>HSSF closes
the InputStream provided by POIFS</li>
</ol>
<p align="justify">
<em>Extensions:</em>
</p>
<p align="justify">3a. Exceptions
thrown by POIFS will be passed on</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>Use Case 5: Write workbook entry</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">
<em>Primary Actor:</em> HSSF</p>
<p align="justify">
<em>Scope:</em> HSSF</p>
<p align="justify">
<em>Level:</em> Summary</p>
<p align="justify">
<em>Stakeholders and Interests:</em>
</p>
<ul>
<li>HSSF - knows how to manage the
write the workbook entry.</li>
<li>POIFS - knows how to manage the file
system.</li>
</ul>
<p align="justify">
<em>Precondition:</em>
</p>
<ul>
<li>Either an existing HSSF file has
been read (use case 1, read existing HSSF file) or an HSSF file has
been created (use case 3, create HSSF file).</li>
</ul>
<p align="justify">
<em>Minimal Guarantee:</em> None</p>
<p align="justify">
<em>Main Success Guarantee:</em>
</p>
<ol>
<li>HSSF
checks the POIFS file system directory for the "Workbook"
file (POIFS use case 8, read file system directory)</li>
<li>If "Workbook" is in the directory, HSSF requests POIFS to
replace it with the new workbook entry (POIFS use case 4, replace file
in file system). Otherwise, HSSF requests POIFS to write the new
workbook file, with the name "Workbook" (POIFS use case 6,
write new file to file system)</li>
</ol>
<p align="justify">
<em>Extensions:</em>None</p>
</td>
</tr>
</table>
</div>
<br>
</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 &copy;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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -0,0 +1,372 @@
<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>
<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>
<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>Why/when would I use POI</b></font></font></td>
</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>
A common misconception is that POI writes Excel files. POI is the name of the project. POI contains several
components, one of which, HSSF, writes Excel files. The following are components of the entire POI project
and a brief summary of their purpose.
</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>POIFS</b></font></font></td>
</tr>
<tr>
<td>
<br>
POIFS is the oldest and most stable part of the project. It is our port of the OLE 2 Compound Document Format to
pure Java. It supports both read and write functionality. All of our components ultimately rely on it by
definition. Please see <a href="poifs/index.html">the POIFS project page</a> for more information.
</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>HSSF</b></font></font></td>
</tr>
<tr>
<td>
<br>
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.
</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>HDF</b></font></font></td>
</tr>
<tr>
<td>
<br>
HDF is our port of the Microsoft Word 97 file format to pure Java. It supports read and write capability.
Please see <a href="hdf/index.html">the HDF project page for more information</a>. This component is
in the early stages of design. Jump in!
</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>What happened to the HSSF Serializer?</b></font></font></td>
</tr>
<tr>
<td>
<br>
The HSSF Serializer, which was part of our 1.0 release and last builds on
<a href="http://www.sourceforge.net/projects/poi">Sourceforge</a>, has been donated to the Cocoon project. We're
currently in the process of porting it over.
</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>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 &copy;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>

View File

@ -0,0 +1,185 @@
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Live Sites using Poi</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>
<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="*">
<title>Live Sites using Poi</title>
<center>
<table width="80%">
<tr>
<td bgcolor="#F3DD61"><font face="Arial,sans-serif" size="+1">
<center>
<b>Live Sites using Poi</b>
</center>
</font></td>
</tr>
</table>
</center>
<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>Live Sites using Poi</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">Here is a list of some of the web sites that are proudly using Poi 1.X (in no particular order):
</p>
<!--
<ul>
<li><link href=""></link></li>
</ul>
</s1>
-->
<p align="justify">
If you do not find your site here, make sure you tell us
(use the word "Livesites" in the email subject, confirm that
you want to be listed publicly, say which version of Poi, and do not
forget to tell us the URL).
We would like to see this list grow bigger every day :-)
</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 &copy;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>

View File

@ -0,0 +1,198 @@
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Mail Archives</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>
<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="*">
<title>Mail Archives</title>
<center>
<table width="80%">
<tr>
<td bgcolor="#F3DD61"><font face="Arial,sans-serif" size="+1">
<center>
<b>Mail Archives</b>
</center>
</font></td>
</tr>
</table>
</center>
<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>Mailing List Archives</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">
There are a number of mailing list archives available.
</p>
<table width="100%" cellspacing="2" cellpadding="2" border="0">
<tr>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><em>poi-user</em></font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><em>poi-dev</em></font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><em>Regularly updated?</em></font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><em>Searchable?</em></font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><em>Speed</em></font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><em>Other features?</em></font></td>
</tr>
<tr>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><a href="http://www.mail-archive.com/poi-user@jakarta.apache.org">
Apache</a></font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><a href="http://www.mail-archive.com/poi-dev@jakarta.apache.org">
Apache</a></font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">Yes</font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">?</font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">?</font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">?</font></td>
</tr>
</table>
</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 &copy;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>

View File

@ -0,0 +1,318 @@
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Mailing Lists</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>
<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="*">
<title>Mailing Lists</title>
<center>
<table width="80%">
<tr>
<td bgcolor="#F3DD61"><font face="Arial,sans-serif" size="+1">
<center>
<b>Mailing Lists</b>
</center>
</font></td>
</tr>
</table>
</center>
<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>Important Notice</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">
<em>IMPORTANT: Before posting a question or problem to any mailing list,
</em>please first look at the following resources in this order:</p>
<ol>
<li>
<connect href="faq.html" type="simple" show="replace" actuate="user" mode="soft">FAQs</connect>
</li>
<li>
<a href="http://dmoz.org/Computers/Data_Formats/Markup_Languages/XML/">ODP XML links</a>
- a wealth of general XML information.</li>
<li>
<connect href="mail-archives.html" type="simple" show="replace" actuate="user" mode="soft">Mailing list archives</connect> -
a veritable goldmine of Poi-specific information - if you know where to look!</li>
</ol>
<p align="justify">
<em>IMPORTANT:</em> Careful postings please.
These are high-volume lists, so we all needs ways to help us all
work smarter.
See tips for <a href="contrib.html#tips">Contributing</a>
</p>
</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>Poi Users</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">
<a href="mailto://poi-user-subscribe@jakarta.apache.org">Subscribe</a>
<a href="mailto://poi-user-unsubscribe@jakarta.apache.org">Unsubscribe</a>
</p>
<p align="justify">The general list, for problems, bug reports, asking for advice on how
best to implement a site, comparisons with other frameworks, etc.
But don't forget to look in the FAQ first, please!</p>
<p align="justify">
<em>This is also not an appropriate list for general Java questions.</em>
Instead try <a href="news:comp.lang.java.help">news:comp.lang.java.help</a>
or <a href="http://hotdispatch.com/">http://hotdispatch.com/</a>, for
example.</p>
<p align="justify">
<em>This is not an appropriate list for general XML questions.</em>
Instead
look at the <a href="http://dmoz.org/">ODP</a> for
<a href="http://dmoz.org/Computers/Data_Formats/Markup_Languages/XML/">XML/XSL links</a>
(such as the excellent <a href="http://www.zvon.org/xxl/XSLTutorial/Books/Book1/index.html">
XSL tutorial at Zvon.org</a>) or try the
<a href="http://www.mulberrytech.com/xsl/">Mulberrytech XSL list</a>.</p>
<p align="justify">
<em>IMPORTANT:</em> If you are posting about a problem
you are having (as most people do), it will aid in finding a
speedy resolution if you provide full configuration details
(especially the <em>version number</em>, but also your
operating system, JDK version, etc.), and full details of any
errors encountered (including full error messages and stack
traces).</p>
<p align="justify">Please also have some consideration for the other users on the list - this is a
busy list and we do not appreciate getting the exact same message posted impatiently
several times a day/week! Doing so is only likely to make your question answered more
slowly, or not at all, not faster.</p>
</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>Poi Dev</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">
<a href="mailto://poi-dev-subscribe@jakarta.apache.org">Subscribe</a>
<a href="mailto://poi-dev-unsubscribe@jakarta.apache.org">Unsubscribe</a>
</p>
<p align="justify">This list is for developers <em>working on</em> or wanting to work on
Poi itself (not developers merely working <em>with</em> Poi),
for code patches to Poi to be posted (please use <code>diff -u</code> format),
and for general Poi questions.</p>
<p align="justify">Note this is <em>NOT</em> for general Poi questions like "Why
isn't Poi working on my machine?" -
please ask those sorts of questions on users list (after reading the
FAQ first, of course).</p>
</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>Related Mailing Lists</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">(See also <a href="http://dmoz.org/Computers/Data_Formats/Markup_Languages/XML/">
ODP XML links</a> for related websites.)</p>
<ul>
<li>
<a href="http://xml.apache.org/mail.html">XML Apache Projects</a> -
list of mailing lists for all the projects on xml.apache.org.</li>
<li>Some servlet engines have their own mailing lists for servlet-engine
configuration questions, such as
<a href="mailto:tomcat-user-subscribe@jakarta.apache.org">tomcat-user</a> (note it is "user"
and not "users").</li>
</ul>
</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 &copy;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>

View File

@ -0,0 +1,283 @@
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Overview</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>
<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="*">
<title>Overview</title>
<center>
<table width="80%">
<tr>
<td bgcolor="#F3DD61"><font face="Arial,sans-serif" size="+1">
<center>
<b>Overview</b>
</center>
</font></td>
</tr>
</table>
</center>
<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>What is it?</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">The POI project is the master project for developing pure
Java ports of file formats based on Microsoft's OLE 2 Compound
Document Format. OLE 2 Compound Document Format is used by
Microsoft Office Documents, as well as by programs using MFC
property sets to serialize their document objects.
</p>
</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>Sub-Projects</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">
There following are ports, packages or components contained in the POI project.
</p>
<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>POIFS</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">
<a href="poifs/index.html">POIFS</a> is the set of APIs
for reading and writing OLE 2 Compound Document Formats using (only) Java.
</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>HSSF</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">
<a href="hssf/index.html">HSSF</a> is the set of APIs
for reading and writing Microsoft Excel 97(-XP) spreadsheet using (only) Java.
</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>HDF</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">
<a href="hdf/index.html">HDF</a> is the set of APIs
for reading and writing Microsoft Word 97(-XP) spreadsheet using (only) Java.
</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>POI-Utils</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">
<a href="utils/index.html">POI-Utils</a> are general purpose artifacts
from POI development that have not yet been implemented elsewhere. We're
always looking to donate these and maintain them as part of a general library
used in another project. These are things we need to complete our mission but
are generally outside of it.
</p>
</td>
</tr>
</table>
</div>
<br>
</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 &copy;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>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

View File

@ -0,0 +1,997 @@
<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">Navigation</font><font size="-1">
<ul>
<li>
<a href="../index.html"><font size="-1">Main</font></a>
</li>
<li>
<a href="how-to.html"><font size="-1">How To</font></a>
</li>
<li>
<a href="usecases.html"><font size="-1">Use Cases</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>How To Use the POIFS APIs</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">This document describes how to use the POIFS APIs to read, write, and modify files that employ a POIFS-compatible data structure to organize their content.</p>
<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>Revision History</b></font></font></td>
</tr>
<tr>
<td>
<br>
<ul>
<li>02.10.2002 - completely rewritten from original documents on <a href="https://sourceforge.net/cvs/?group_id=32701">sourceforge</a>
</li>
</ul>
</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>Target Audience</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">This document is intended for Java developers who need to use the POIFS APIs to read, write, or modify files that employ a POIFS-compatible data structure to organize their content. It is not necessary for developers to understand the POIFS data structures, and an explanation of those data structures is beyond the scope of this document. It is expected that the members of the target audience will understand the rudiments of a hierarchical file system, and familiarity with the event pattern employed by Java APIs such as AWT would be helpful.</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>Glossary</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">This document attempts to be consistent in its terminology, which is defined here:</p>
<table width="100%" cellspacing="2" cellpadding="2" border="0">
<tr>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><b>Term</b></font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><b>Definition</b></font></td>
</tr>
<tr>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">Directory</font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">A special file that may contain other directories and documents.</font></td>
</tr>
<tr>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">DirectoryEntry</font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">Representation of a directory within another directory.</font></td>
</tr>
<tr>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">Document</font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">A file containing data, such as word processing data or a spreadsheet workbook.</font></td>
</tr>
<tr>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">DocumentEntry</font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">Representation of a document within a directory.</font></td>
</tr>
<tr>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">Entry</font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">Representation of a file in a directory.</font></td>
</tr>
<tr>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">File</font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">A named entity, managed and contained by the file system.</font></td>
</tr>
<tr>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">File System</font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">The POIFS data structures, plus the contained directories and documents, which are maintained in a hierarchical directory structure.</font></td>
</tr>
<tr>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">Root Directory</font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">The directory at the base of a file system. All file systems have a root directory. The POIFS APIs will not allow the root directory to be removed or renamed, but it can be accessed for the purpose of reading its contents or adding files (directories and documents) to it.</font></td>
</tr>
</table>
</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>Reading a File System</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">This section covers reading a file system. There are two ways to read a file system; these techniques are sketched out in the following table, and then explained in greater depth in the sections following the table.</p>
<table width="100%" cellspacing="2" cellpadding="2" border="0">
<tr>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><b>Technique</b></font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><b>Advantages</b></font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><b>Disadvantages</b></font></td>
</tr>
<tr>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">Conventional Reading</font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
<ul>
<li>Simpler API similar to reading a conventional file system.</li>
<li>Can read documents in any order.</li>
</ul>
</font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
<ul>
<li>All files are resident in memory, whether your application needs them or not.</li>
</ul>
</font></td>
</tr>
<tr>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">Event-Driven Reading</font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
<ul>
<li>Reduced footprint -- only the documents you care about are processed.</li>
<li>Improved performance -- no time is wasted reading the documents you're not interested in.</li>
</ul>
</font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
<ul>
<li>More complicated API.</li>
<li>Need to know in advance which documents you want to read.</li>
<li>No control over the order in which the documents are read.</li>
<li>No way to go back and get additional documents except to re-read the file system, which may not be possible, e.g., if the file system is being read from an input stream that lacks random access support.</li>
</ul>
</font></td>
</tr>
</table>
<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>Conventional Reading</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">In this technique for reading, the entire file system is loaded into memory, and the entire directory tree can be walked by an application, reading specific documents at the application's leisure.</p>
<div align="right">
<table cellspacing="0" cellpadding="2" border="0" width="98%">
<tr>
<td bgcolor="#525D76"><font color="#ffffff" size="-1"><font face="Arial,sans-serif"><b>Preparation</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">Before an application can read a file from the file system, the file system needs to be loaded into memory. This is done by using the <code>org.apache.poi.poifs.filesystem.POIFSFileSystem</code> class. Once the file system has been loaded into memory, the application may need the root directory. The following code fragment will accomplish this preparation stage:</p>
<div align="center">
<table cellspacing="2" cellpadding="2" border="1">
<tr>
<td>
<pre>
// need an open InputStream; for a file-based system, this would be appropriate:
// InputStream stream = new FileInputStream(fileName);
POIFSFileSystem fs;
try
{
fs = new POIFSFileSystem(inputStream);
}
catch (IOException e)
{
// an I/O error occurred, or the InputStream did not provide a compatible
// POIFS data structure
}
DirectoryEntry root = fs.getRoot();</pre>
</td>
</tr>
</table>
</div>
<p align="justify">Assuming no exception was thrown, the file system can then be read.</p>
<p align="justify">Note: loading the file system can take noticeable time, particularly for large file systems.</p>
</td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellspacing="0" cellpadding="2" border="0" width="98%">
<tr>
<td bgcolor="#525D76"><font color="#ffffff" size="-1"><font face="Arial,sans-serif"><b>Reading the Directory Tree</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">Once the file system has been loaded into memory and the root directory has been obtained, the root directory can be read. The following code fragment shows how to read the entries in an <code>org.apache.poi.poifs.filesystem.DirectoryEntry</code> instance:</p>
<div align="center">
<table cellspacing="2" cellpadding="2" border="1">
<tr>
<td>
<pre>
// dir is an instance of DirectoryEntry ...
for (Iterator iter = dir.getEntries(); iter.hasNext(); )
{
Entry entry = (Entry)iter.next();
System.out.println("found entry: " + entry.getName());
if (entry instanceof DirectoryEntry)
{
// .. recurse into this directory
}
else if (entry instanceof DocumentEntry)
{
// entry is a document, which you can read
}
else
{
// currently, either an Entry is a DirectoryEntry or a DocumentEntry,
// but in the future, there may be other entry subinterfaces. The
// internal data structure certainly allows for a lot more entry types.
}
}</pre>
</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellspacing="0" cellpadding="2" border="0" width="98%">
<tr>
<td bgcolor="#525D76"><font color="#ffffff" size="-1"><font face="Arial,sans-serif"><b>Reading a Specific Document</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">There are a couple of ways to read a document, depending on whether the document resides in the root directory or in another directory. Either way, you will obtain an <code>org.apache.poi.poifs.filesystem.DocumentInputStream</code> instance.</p>
<div align="right">
<table cellspacing="0" cellpadding="2" border="0" width="97%">
<tr>
<td bgcolor="#525D76"><font color="#ffffff" size="-2"><font face="Arial,sans-serif"><b>DocumentInputStream</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">The DocumentInputStream class is a simple implementation of InputStream that makes a few guarantees worth noting:</p>
<ul>
<li>
<code>available()</code> always returns the number of bytes in the document from your current position in the document.</li>
<li>
<code>markSupported()</code> returns <code>true</code>.</li>
<li>
<code>mark(int limit)</code> ignores the limit parameter; basically the method marks the current position in the document.</li>
<li>
<code>reset()</code> takes you back to the position when <code>mark()</code> was last called, or to the beginning of the document if <code>mark()</code> has not been called.</li>
<li>
<code>skip(long n)</code> will take you to your current position + n (but not past the end of the document).</li>
</ul>
<p align="justify">The behavior of <code>available</code> means you can read in a document in a single read call like this:</p>
<div align="center">
<table cellspacing="2" cellpadding="2" border="1">
<tr>
<td>
<pre>
byte[] content = new byte[ stream.available() ];
stream.read(content);
stream.close();</pre>
</td>
</tr>
</table>
</div>
<p align="justify">The combination of <code>mark</code>, <code>reset</code>, and <code>skip</code> provide the basic mechanisms needed for random access of the document contents.</p>
</td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellspacing="0" cellpadding="2" border="0" width="97%">
<tr>
<td bgcolor="#525D76"><font color="#ffffff" size="-2"><font face="Arial,sans-serif"><b>Reading a Document From the Root Directory</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">If the document resides in the root directory, you can obtain a <code>DocumentInputStream</code> like this:</p>
<div align="center">
<table cellspacing="2" cellpadding="2" border="1">
<tr>
<td>
<pre>
// load file system
try
{
DocumentInputStream stream = filesystem.createDocumentInputStream(documentName);
// process data from stream
}
catch (IOException e)
{
// no such document, or the Entry represented by documentName is not a
// DocumentEntry
}</pre>
</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellspacing="0" cellpadding="2" border="0" width="97%">
<tr>
<td bgcolor="#525D76"><font color="#ffffff" size="-2"><font face="Arial,sans-serif"><b>Reading a Document From an Arbitrary Directory</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">A more generic technique for reading a document is to obtain an <code>org.apache.poi.poifs.filesystem.DirectoryEntry</code> instance for the directory containing the desired document (recall that you can use <code>getRoot()</code> to obtain the root directory from its file system). From that DirectoryEntry, you can then obtain a <code>DocumentInputStream</code> like this:</p>
<div align="center">
<table cellspacing="2" cellpadding="2" border="1">
<tr>
<td>
<pre>
DocumentEntry document = (DocumentEntry)directory.getEntry(documentName);
DocumentInputStream stream = new DocumentInputStream(document);
</pre>
</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</div>
<br>
</td>
</tr>
</table>
</div>
<br>
</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>Event-Driven Reading</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">The event-driven API for reading documents is a little more complicated and requires that your application know, in advance, which files it wants to read. The benefit of using this API is that each document is in memory just long enough for your application to read it, and documents that you never read at all are not in memory at all. When you're finished reading the documents you wanted, the file system has no data structures associated with it at all and can be discarded.</p>
<div align="right">
<table cellspacing="0" cellpadding="2" border="0" width="98%">
<tr>
<td bgcolor="#525D76"><font color="#ffffff" size="-1"><font face="Arial,sans-serif"><b>Preparation</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">The preparation phase involves creating an instance of <code>org.apache.poi.poifs.eventfilesystem.POIFSReader</code> and to then register one or more <code>org.apache.poi.poifs.eventfilesystem.POIFSReaderListener</code> instances with the <code>POIFSReader</code>.</p>
<div align="center">
<table cellspacing="2" cellpadding="2" border="1">
<tr>
<td>
<pre>
POIFSReader reader = new POIFSReader();
// register for everything
reader.registerListener(myOmnivorousListener);
// register for selective files
reader.registerListener(myPickyListener, "foo");
reader.registerListener(myPickyListener, "bar");
// register for selective files
reader.registerListener(myOtherPickyListener, new POIFSDocumentPath(),
"fubar");
reader.registerListener(myOtherPickyListener, new POIFSDocumentPath(
new String[] { "usr", "bin" ), "fubar");</pre>
</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellspacing="0" cellpadding="2" border="0" width="98%">
<tr>
<td bgcolor="#525D76"><font color="#ffffff" size="-1"><font face="Arial,sans-serif"><b>POIFSReaderListener</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">
<code>org.apache.poi.poifs.eventfilesystem.POIFSReaderListener</code> is an interface used to register for documents. When a matching document is read by the <code>org.apache.poi.poifs.eventfilesystem.POIFSReader</code>, the <code>POIFSReaderListener</code> instance receives an <code>org.apache.poi.poifs.eventfilesystem.POIFSReaderEvent</code> instance, which contains an open <code>DocumentInputStream</code> and information about the document.</p>
<p align="justify">A <code>POIFSReaderListener</code> instance can register for individual documents, or it can register for all documents; once it has registered for all documents, subsequent (and previous!) registration requests for individual documents are ignored. There is no way to unregister a <code>POIFSReaderListener</code>.</p>
<p align="justify">Thus, it is possible to register a single <code>POIFSReaderListener</code> for multiple documents - one, some, or all documents. It is guaranteed that a single <code>POIFSReaderListener</code> will receive exactly one notification per registered document. There is no guarantee as to the order in which it will receive notification of its documents, as future implementations of <code>POIFSReader</code> are free to change the algorithm for walking the file system's directory structure.</p>
<p align="justify">It is also permitted to register more than one <code>POIFSReaderListener</code> for the same document. There is no guarantee of ordering for notification of <code>POIFSReaderListener</code> instances that have registered for the same document when <code>POIFSReader</code> processes that document.</p>
<p align="justify">It is guaranteed that all notifications occur in the same thread. A future enhancement may be made to provide multi-threaded notifications, but such an enhancement would very probably be made in a new reader class, a <code>ThreadedPOIFSReader</code> perhaps.</p>
<p align="justify">The following table describes the three ways to register a <code>POIFSReaderListener</code> for a document or set of documents:</p>
<table width="100%" cellspacing="2" cellpadding="2" border="0">
<tr>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><b>Method Signature</b></font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><b>What it does</b></font></td>
</tr>
<tr>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">registerListener(POIFSReaderListener <b>listener</b>)</font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">registers <b>listener</b> for all documents.</font></td>
</tr>
<tr>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">registerListener(POIFSReaderListener <b>listener</b>, String <b>name</b>)</font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">registers <b>listener</b> for a document with the specified <b>name</b> in the root directory.</font></td>
</tr>
<tr>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">registerListener(POIFSReaderListener <b>listener</b>, POIFSDocumentPath <b>path</b>, String <b>name</b>)</font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">registers <b>listener</b> for a document with the specified <b>name</b> in the directory described by <b>path</b></font></td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellspacing="0" cellpadding="2" border="0" width="98%">
<tr>
<td bgcolor="#525D76"><font color="#ffffff" size="-1"><font face="Arial,sans-serif"><b>POIFSDocumentPath</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">The <code>org.apache.poi.poifs.filesystem.POIFSDocumentPath</code> class is used to describe a directory in a POIFS file system. Since there are no reserved characters in the name of a file in a POIFS file system, a more traditional string-based solution for describing a directory, with special characters delimiting the components of the directory name, is not feasible. The constructors for the class are used as follows:</p>
<table width="100%" cellspacing="2" cellpadding="2" border="0">
<tr>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><b>Constructor example</b></font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><b>Directory described</b></font></td>
</tr>
<tr>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">new POIFSDocumentPath()</font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">The root directory.</font></td>
</tr>
<tr>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">new POIFSDocumentPath(null)</font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">The root directory.</font></td>
</tr>
<tr>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">new POIFSDocumentPath(new String[ 0 ])</font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">The root directory.</font></td>
</tr>
<tr>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">new POIFSDocumentPath(new String[ ] { "foo", "bar"} )</font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">in Unix terminology, "/foo/bar".</font></td>
</tr>
<tr>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">new POIFSDocumentPath(new POIFSDocumentPath(new String[] { "foo" }), new String[ ] { "fu", "bar"} )</font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">in Unix terminology, "/foo/fu/bar".</font></td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<br>
<div align="right">
<table cellspacing="0" cellpadding="2" border="0" width="98%">
<tr>
<td bgcolor="#525D76"><font color="#ffffff" size="-1"><font face="Arial,sans-serif"><b>Processing POIFSReaderEvent Events</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">Processing <code>org.apache.poi.poifs.eventfilesystem.POIFSReaderEvent</code> events is relatively easy. After all of the <code>POIFSReaderListener</code> instances have been registered with <code>POIFSReader</code>, the <code>POIFSReader.read(InputStream stream)</code> method is called.</p>
<p align="justify">Assuming that there are no problems with the data, as the <code>POIFSReader</code> processes the documents in the specified <code>InputStream</code>'s data, it calls registered <code>POIFSReaderListener</code> instances' <code>processPOIFSReaderEvent</code> method with a <code>POIFSReaderEvent</code> instance.</p>
<p align="justify">The <code>POIFSReaderEvent</code> instance contains information to identify the document (a <code>POIFSDocumentPath</code> object to identify the directory that the document is in, and the document name), and an open <code>DocumentInputStream</code> instance from which to read the document.</p>
</td>
</tr>
</table>
</div>
<br>
</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>Writing a File System</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">Writing a file system is very much like reading a file system in that there are multiple ways to do so. You can load an existing file system into memory and modify it (removing files, renaming files) and/or add new files to it, and write it, or you can start with a new, empty file system:</p>
<div align="center">
<table cellspacing="2" cellpadding="2" border="1">
<tr>
<td>
<pre>
POIFSFileSystem fs = new POIFSFileSystem();</pre>
</td>
</tr>
</table>
</div>
<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>The Naming of Names</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">There are two restrictions on the names of files in a file system that must be considered when creating files:</p>
<ol>
<li>The name of the file must not exceed 31 characters. If it does, the POIFS API will silently truncate the name to fit.</li>
<li>The name of the file must be unique within its containing directory. This seems pretty obvious, but if it isn't spelled out, there'll be hell to pay, to be sure. Uniqueness, of course, is determined <b>after</b> the name has been truncated, if the original name was too long to begin with.</li>
</ol>
</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>Creating a Document</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">A document can be created by acquiring a <code>DirectoryEntry</code> and calling one of the two <code>createDocument</code> methods:</p>
<table width="100%" cellspacing="2" cellpadding="2" border="0">
<tr>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><b>Method Signature</b></font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><b>Advantages</b></font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><b>Disadvantages</b></font></td>
</tr>
<tr>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">CreateDocument(String name, InputStream stream)</font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
<ul>
<li>Simple API.</li>
</ul>
</font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
<ul>
<li>Increased memory footprint (document is in memory until file system is written).</li>
</ul>
</font></td>
</tr>
<tr>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">CreateDocument(String name, int size, POIFSWriterListener writer)</font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
<ul>
<li>Decreased memory footprint (only very small documents are held in memory, and then only for a short time).</li>
</ul>
</font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
<ul>
<li>More complex API.</li>
<li>Determining document size in advance may be difficult.</li>
<li>Lose control over when document is to be written.</li>
</ul>
</font></td>
</tr>
</table>
<p align="justify">Unlike reading, you don't have to choose between the in-memory and event-driven writing models; both can co-exist in the same file system.</p>
<p align="justify">Writing is initiated when the <code>POIFSFileSystem</code> instance's <code>writeFilesystem()</code> method is called with an <code>OutputStream</code> to write to.</p>
<p align="justify">The event-driven model is quite similar to the event-driven model for reading, in that the file system calls your <code>org.apache.poi.poifs.filesystem.POIFSWriterListener</code> when it's time to write your document, just as the <code>POIFSReader</code> calls your <code>POIFSReaderListener</code> when it's time to read your document. Internally, when <code>writeFilesystem()</code> is called, the final POIFS data structures are created and are written to the specified <code>OutputStream</code>. When the file system needs to write a document out that was created with the event-driven model, it calls the <code>POIFSWriterListener</code> back, calling its <code>processPOIFSWriterEvent()</code> method, passing an <code>org.apache.poi.poifs.filesystem.POIFSWriterEvent</code> instance. This object contains the <code>POIFSDocumentPath</code> and name of the document, its size, and an open <code>org.apache.poi.poifs.filesystem.DocumentOutputStream</code> to which to write. A <code>DocumentOutputStream</code> is a wrapper over the <code>OutputStream</code> that was provided to the <code>POIFSFileSystem</code> to write to, and has the responsibility of making sure that the document your application writes fits within the size you specified for it.</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>Creating a Directory</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">Creating a directory is similar to creating a document, except that there's only one way to do so:</p>
<div align="center">
<table cellspacing="2" cellpadding="2" border="1">
<tr>
<td>
<pre>
DirectoryEntry createdDir = existingDir.createDirectory(name);</pre>
</td>
</tr>
</table>
</div>
</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>Using POIFSFileSystem Directly To Create a Document Or Directory</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">As with reading documents, it is possible to create a new document or directory in the root directory by using convenience methods of POIFSFileSystem.</p>
<table width="100%" cellspacing="2" cellpadding="2" border="0">
<tr>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">DirectoryEntry Method Signature</font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">POIFSFileSystem Method Signature</font></td>
</tr>
<tr>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">createDocument(String name, InputStream stream)</font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">createDocument(InputStream stream, String name)</font></td>
</tr>
<tr>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">createDocument(String name, int size, POIFSWriterListener writer)</font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">createDocument(String name, int size, POIFSWriterListener writer)</font></td>
</tr>
<tr>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">createDirectory(String name)</font></td>
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">createDirectory(String name)</font></td>
</tr>
</table>
</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>Modifying a File System</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">It is possible to modify an existing POIFS file system, whether it's one your application has loaded into memory, or one which you are creating on the fly.</p>
<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>Removing a Document</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">Removing a document is simple: you get the <code>Entry</code> corresponding to the document and call its <code>delete()</code> method. This is a boolean method, but should always return <code>true</code>, indicating that the operation succeeded.</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>Removing a Directory</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">Removing a directory is also simple: you get the <code>Entry</code> corresponding to the directory and call its <code>delete()</code> method. This is a boolean method, but, unlike deleting a document, may not always return <code>true</code>, indicating that the operation succeeded. Here are the reasons why the operation may fail:</p>
<ul>
<li>The directory still has files in it (to check, call <code>isEmpty()</code> on its DirectoryEntry; is the return value <code>false</code>?)</li>
<li>The directory is the root directory. You cannot remove the root directory.</li>
</ul>
</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>Renaming a File</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">Regardless of whether the file is a directory or a document, it can be renamed, with one exception - the root directory has a special name that is expected by the components of a major software vendor's office suite, and the POIFS API will not let that name be changed. Renaming is done by acquiring the file's corresponding <code>Entry</code> instance and calling its <code>renameTo</code> method, passing in the new name.</p>
<p align="justify">Like <code>delete</code>, <code>renameTo</code> returns <code>true</code> if the operation succeeded, otherwise <code>false</code>. Reasons for failure include these:</p>
<ul>
<li>The new name is the same as another file in the same directory. And don't forget - if the new name is longer than 31 characters, it <b>will</b> be silently truncated. In its original length, the new name may have been unique, but truncated to 31 characters, it may not be unique any longer.</li>
<li>You tried to rename the root directory.</li>
</ul>
</td>
</tr>
</table>
</div>
<br>
</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 &copy;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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

View File

@ -0,0 +1,119 @@
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>PoiFS</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">Navigation</font><font size="-1">
<ul>
<li>
<a href="../index.html"><font size="-1">Main</font></a>
</li>
<li>
<a href="how-to.html"><font size="-1">How To</font></a>
</li>
<li>
<a href="usecases.html"><font size="-1">Use Cases</font></a>
</li>
</ul>
</font>
<br>
<br>
</font></td><td align="left" valign="top" width="*">
<title>PoiFS</title>
<center>
<table width="80%">
<tr>
<td bgcolor="#F3DD61"><font face="Arial,sans-serif" size="+1">
<center>
<b>PoiFS</b>
</center>
</font></td>
</tr>
</table>
</center>
<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>Overview</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">POIFS is a pure Java implementation of the OLE 2 Compound
Document format.</p>
<p align="justify">By definition, all APIs developed by the POI project are
based somehow on the POIFS API.</p>
<p align="justify">A common confusion is on just what POIFS buys you or what OLE
2 Compound Document format is exactly. POIFS does not buy you
DOC, or XLS, but is necessary to generate or read DOC or XLS
files. You see, all file formats based on the OLE 2 Compound
Document Format have a common structure. The OLE 2 Compound
Document Format is essentially a convoluted archive
format. Think of POIFS as a "zip" library. Once you can get
the data in a zip file you still need to interpret the
data. As a general rule, while all of our formats <b>use</b>
POIFS, most of them attempt to abstract you from it. There
are some circumstances where this is not possible, but as a
general rule this is true.</p>
<p align="justify">If you're an end user type just looking to generate XLS
files, then you'd be looking for HSSF not POIFS; however, if
you have legacy code that uses MFC property sets, POIFS is
for you! Regardless, you may or may not need to know how to
use POIFS but ultimately if you use technologies that come
from the POI project, you're using POIFS underneith. Perhaps
we should have a branding campaign "POIFS Inside!". ;-)</p>
<p align="justify">TODO: copy POIFS docs and port to XML (in progress). For now
please reference <a href="http://poi.sourceforge.net">old
site</a>.</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 &copy;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>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,192 @@
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Things To Do for Poi</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>
<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="*">
<title>Things To Do for Poi</title>
<center>
<table width="80%">
<tr>
<td bgcolor="#F3DD61"><font face="Arial,sans-serif" size="+1">
<center>
<b>Things To Do for Poi</b>
</center>
</font></td>
</tr>
</table>
</center>
<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>high</b></font></font></td>
</tr>
<tr>
<td>
<br>
<sl>
<li>
<em>[code]</em>
do it
</li>
</sl>
</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>medium</b></font></font></td>
</tr>
<tr>
<td>
<br>
<sl>
<li>
<em>[code]</em>
do it
</li>
</sl>
</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 &copy;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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

View File

@ -0,0 +1,101 @@
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Poi Utils</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">Navigation</font><font size="-1">
<ul>
<li>
<a href="../index.html"><font size="-1">Main</font></a>
</li>
</ul>
</font>
<br>
<br>
</font></td><td align="left" valign="top" width="*">
<title>Poi Utils</title>
<center>
<table width="80%">
<tr>
<td bgcolor="#F3DD61"><font face="Arial,sans-serif" size="+1">
<center>
<b>Poi Utils</b>
</center>
</font></td>
</tr>
</table>
</center>
<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>Overview</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">The POI Utils are classes we're looking to donate elsewhere and include.
These are usually classes that while are required for our mission,
are somehow outside of it. General utilities that could be used in
any project are what we would normally put here. If you see one, and you
think "gee that would be great as part of X project" then let us know.
While we wish to put these in their rightful place, we also don't want to
include a 40mb jar file just to process text strings, so that will
be a consideraton.
</p>
<p align="justify">
Currently, we're looking into which subprojects in the Jakarta Commons project
to donate these too. The "Poi Utils" package won't go away, as there may
be later classes. The idea is that "go ahead and add it, we'll merge it or
find an alternative later, just keep pounding out that poi!"
</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 &copy;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>

View File

@ -0,0 +1,260 @@
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Who we are</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>
<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="*">
<title>Who we are</title>
<center>
<table width="80%">
<tr>
<td bgcolor="#F3DD61"><font face="Arial,sans-serif" size="+1">
<center>
<b>Who we are</b>
</center>
</font></td>
</tr>
</table>
</center>
<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>Who we are</b></font></font></td>
</tr>
<tr>
<td>
<br>
<p align="justify">
The Poi Project operates on a meritocracy: the more you do, the more
responsibility you will obtain. This page lists all of the people who have
gone the extra mile and are Committers. If you would like to get involved,
the first step is to join the mailing lists.
</p>
<p align="justify">
We ask that you please do not send us emails privately asking for support.
We are non-paid volunteers who help out with the project and we do not
necessarily have the time or energy to help people on an individual basis.
Instead, we have set up mailing lists which often contain hundreds of
individuals who will help answer detailed requests for help. The benefit of
using mailing lists over private communication is that it is a shared
resource where others can also learn from common mistakes and as a
community we all grow together.
</p>
<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>Advisors</b></font></font></td>
</tr>
<tr>
<td>
<br>
<ul>
<li>
<a href="http://jakarta.apache.org/avalon/authors/stefano.html">Stefano Mazzocchi</a> (stefano at apache dot org)
</li>
</ul>
</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>Committers</b></font></font></td>
</tr>
<tr>
<td>
<br>
<ul>
<li>
<a href="http://trilug.org/~acoliver">Andrew C. Oliver</a> (acoliver at apache dot org)</li>
<li>
<a href="http://www.marcj.com">Marc Johnson</a> (mjohnson at apache dot org)</li>
</ul>
</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>Developers</b></font></font></td>
</tr>
<tr>
<td>
<br>
<ul>
<li>Glen Stampoultzis (glens at apache.org)</li>
<li>Nicola Ken Barozzi (barozzi at nicolaken dot com)</li>
</ul>
</td>
</tr>
</table>
</div>
<br>
</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 &copy;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>