--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+
+<document>
+ <header>
+ <title>Third Party Contributions</title>
+ <authors>
+ <person name="Nicola Ken Barozzi" email="barozzi@nicolaken.com"/>
+ </authors>
+ </header>
+
+ <body>
+
+ <section title="How to Contribute">
+ <p>
+ See <link href="contrib.xml">How to contribute to Poi</link>.
+ </p>
+
+ </section>
+
+ <section title="Contributed Components">
+ <p>
+ These are not necessarily deemed to be high enough quality to be included in the
+ core distribution, but they have been tested under <connect href="contrib.xml">
+ several key environments</connect>, they are provided under the same license
+ as Poi, and they are included in the POI distribution under the
+ <code>contrib/</code> directory.
+ </p>
+
+ <p>
+ <strong>None as yet!</strong> - although you can expect that some of the links
+ listed below will eventually migrate to the "contributed components" level, and
+ then maybe even into the main distribution.
+ </p>
+ </section>
+
+ <section title="Patch Queue">
+ <p><link href="patches.html">Submissions of modifications</link>
+ to Poi which are awaiting review. Anyone can
+ comment on them on the dev mailing list - code reviewers are needed!
+ <strong>Use these at your own risk</strong> - although Poi has no guarantee
+ either, these patches have not been reviewed, let alone accepted.
+ </p>
+ </section>
+
+ <section title="Other Extensions">
+ <p>The other extensions listed here are <strong>not endorsed</strong> by the Poi
+ project either - they are provided as a convenience only. They may or may not work,
+ they may or may not be open source, etc.
+ </p>
+
+ <p>To have a link added to this table, see <link href="contrib.xml">How to contribute
+ to POI</link>.</p>
+
+ <table>
+ <tr>
+ <th>Name and Link</th>
+ <th>Type</th>
+ <th>Description</th>
+ <th>Status</th>
+ <th>Licensing</th>
+ <th>Contact</th>
+ </tr>
+ </table>
+
+ </section>
+</body>
+</document>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//APACHE//DTD Cocoon Documentation Book V1.0//EN" "./dtd/book-cocoon-v10.dtd">
+
+<book software="Poi"
+ title="Poi Project Documentation"
+ copyright="@year@ Poi Project"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+
+ <menu label="Community">
+ <menu-item label="La Noticia" href="news.html"/>
+ <menu-item label="Los Cambios" href="changes.html"/>
+ <menu-item label="Las Tareas" href="todo.html"/>
+ <menu-item label="líese" href="../../getinvolved/index.html"/>
+ <menu-item label="La Visión" href="../../plan/POI20Vision.html"/>
+ <menu-item label="La Historia y El Futoro" href="historyandfuture.html"/>
+ <menu-item label="Estamos Nosotros" href="who.html"/>
+ <menu-item label="Las Resoluciones" href="../../resolutions/index.html"/>
+ </menu>
+
+ <menu label="Marketing">
+ <menu-item label="Los Casos" href="casestudies.html"/>
+ </menu>
+
+ <menu label="Project">
+ <menu-item label="La Vista General" href="overview.html"/>
+ <menu-item label="POIFS" href="../../poifs/index.html"/>
+ <menu-item label="HSSF" href="../../hssf/index.html"/>
+ <menu-item label="HDF" href="../../hdf/index.html"/>
+ <menu-item label="HPSF" href="../../hpsf/index.html"/>
+ <menu-item label="POI-Utils" href="../../utils/index.html"/>
+ <menu-item label="Download" href="http://jakarta.apache.org/builds/jakarta-poi/"/>
+ </menu>
+
+ <menu label="Docs">
+ <menu-item label="Javadocs" href="http://jakarta.apache.org/poi/javadocs/"/>
+ <menu-item label="FAQ" href="faq.html"/>
+ <menu-item label="Las Referencias" href="../../references/index.html"/>
+ </menu>
+
+ <menu label="Code">
+ <menu-item label="El Código" href="http://jakarta.apache.org/poi/javadocs/javasrc/"/>
+ <menu-item label="CVS" href="http://jakarta.apache.org/site/cvsindex.html"/>
+ <menu-item label="Bug Database" href="http://nagoya.apache.org/bugzilla/buglist.cgi?product=POI"/>
+ <menu-item label="Junit Test Results" href="http://jakarta.apache.org/poi/tests/junit/"/>
+ <menu-item label="Dependency Metrics" href="http://jakarta.apache.org/poi/metrics/jdepend/"/>
+ <menu-item label="Checkstyle Metrics" href="http://jakarta.apache.org/poi/metrics/checkstyle/"/>
+ </menu>
+
+</book>
--- /dev/null
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" "./dtd/document-v11.dtd">
+
+<document>
+ <header>
+ <title>Jakarta POI - Case Studies</title>
+ <authors>
+ <person id="AO" name="Andrew C. Oliver" email="acoliver@apache.org"/>
+ <person id="CR" name="Cameron Riley" email="crileyNO@SPAMekmail.com"/>
+ </authors>
+ </header>
+
+ <body>
+ <section title="Introduction">
+ <p>
+ A number of people are using POI for a variety of purposes. As with
+ any new API or technology, the first question people generally ask
+ is not "how can I" but rather "Who else is doing what I'm about to
+ do?" This is understandable with the abismal success rate in the
+ software business. These case statements are meant to help create
+ confidence and understanding.
+ </p>
+ </section>
+ <section title="Submitting a Case Study">
+ <p>
+ We are actively seeking case studies for this page (after all it
+ just started). Andy Oliver (acoliver at apache dot org) has
+ agreed to have a few T-Shirts printed with the POI logo (once its
+ chosen) for the first
+ few best submissions. To submit a case study, either
+ <link href="http://jakarta.apache.org/poi/getinvolved/index.html">
+ submit a patch for this page</link> (preferred) or email it to the
+ <link href="http://jakarta.apache.org/site/mail.html">mailing list
+ </link>.
+ </p>
+ </section>
+ <section title="Case Studies">
+ <section title="Edwards And Kelcey Technology">
+ <p>
+ Edwards and Kelcey Technology (http://www.ekcorp.com/) developed a
+ Facility
+ Managament and Maintenance System for the Telecommunications industry
+ based
+ on Turbine and Velocity. Originally the invoicing was done with a simple
+ CVS
+ sheet which was then marked up by accounts and customized for each client.
+ As growth has been consistent with the application, the requirement for
+ invoices that need not be touched by hand increased. POI provided the
+ solution to this issue, integrating easily and transparently into the
+ system. POI HSSF was used to create the invoices directly from the server
+ in
+ Excel 97 format and now services over 150 unique invoices per month.
+ </p>
+ <p>
+ Cameron Riley (crileyNO@ SPAMekmail.com)
+ </p>
+ </section>
+ </section>
+ </body>
+ <footer>
+ <legal>
+ Copyright (c) @year@ The Apache Software Foundation All rights reserved.
+ $Revision$ $Date$
+ </legal>
+ </footer>
+</document>
--- /dev/null
+<?xml version="1.0"?>
+<!DOCTYPE changes PUBLIC "-//APACHE//DTD Changes V1.1//EN" "./dtd/changes-v11.dtd">
+
+<changes title="History of Changes">
+
+ <devs>
+ <!-- in strict alphabetical order -->
+ <person id="AO" name="Andrew C. Oliver" email="acoliver2@users.sourceforge.net"/>
+ <person id="GJS" name="Glen Stampoultzis" email="glens@apache.org"/>
+ <person id="MJ" name="Marc Johnson" email="mjohnson@apache.org"/>
+ <person id="NKB" name="Nicola Ken Barozzi" email="barozzi@nicolaken.com"/>
+ <person id="POI-DEVELOPERS" name="Poi Developers" email="poi-dev@jakarta.apache.org"/>
+ </devs>
+ <release version="1.5" date="Coming Soon">
+ <action dev="NKB" type="update">New project build.</action>
+ <action dev="NKB" type="update">New project documentation system based on Cocoon.</action>
+ <action dev="POI-DEVELOPERS" type="update">Package rename</action>
+ <action dev="POI-DEVELOPERS" type="fix">Various bug fixes</action>
+ <action dev="POI-DEVELOPERS" type="add">Early stages of HSF development (not ready for development)</action>
+ <action dev="POI-DEVELOPERS" type="add">Initial low level record support for charting (not complete)</action>
+ </release>
+ <release version="1.1.0" date="Release date not recorded">
+ <action dev="POI-DEVELOPERS">Created new event model</action>
+ <action dev="POI-DEVELOPERS">Optimizations made to HSSF including aggregate records for
+ values, rows, etc.</action>
+ <action dev="POI-DEVELOPERS">predictive sizing, offset based writing (instead of lots of
+ array copies)</action>
+ <action dev="POI-DEVELOPERS">minor re-factoring and bug fixes.</action>
+ </release>
+ <release version="1.0.0" date="Release date not recorded">
+ <action dev="POI-DEVELOPERS">Minor documentation updates.</action>
+ </release>
+ <release version="0.14.0" date="Release date not recorded">
+ <action dev="POI-DEVELOPERS">Added DataFormat helper class and exposed set and get format
+ on HSSFCellStyle</action>
+ <action dev="POI-DEVELOPERS">Fixed column width apis (unit wise) and various javadoc on
+ the subject</action>
+ <action dev="POI-DEVELOPERS">Fix for Dimensions record (again)... (one of these days I'll
+ write a unit test for this ;-p).</action>
+ <action dev="POI-DEVELOPERS">Some optimization on sheet creation.</action>
+ </release>
+ <release version="0.13.0" date="Release date not recorded">
+
+ </release>
+ <release version="0.12.0" date="Release date not recorded">
+ <action dev="POI-DEVELOPERS">Added MulBlank, Blank, ColInfo</action>
+ <action dev="POI-DEVELOPERS">Added log4j facility and removed all sys.out type logging</action>
+ <action dev="POI-DEVELOPERS">Added support for adding font's, styles and corresponding
+ high level api for styling cells</action>
+ <action dev="POI-DEVELOPERS">added support for changing row height, cell width and default
+ row height/cell width.</action>
+ <action dev="POI-DEVELOPERS">Added fixes for internationalization (UTF-16 should work now
+ from HSSFCell.setStringValue, etc when the encoding is set)</action>
+ <action dev="POI-DEVELOPERS">added support for adding/removing and naming sheets.</action>
+ </release>
+ <release version="0.11.0" date="Release date not recorded">
+ <action dev="POI-DEVELOPERS">Bugfix release. We were throwing an exception when reading
+ RKRecord objects.</action>
+ </release>
+ <release version="0.10.0" date="Release date not recorded">
+ <action dev="POI-DEVELOPERS">Got continuation records to work (read/write)</action>
+ <action dev="POI-DEVELOPERS">Added various pre-support for formulas</action>
+ <action dev="POI-DEVELOPERS">Massive API reorganization, repackaging.</action>
+ <action dev="POI-DEVELOPERS">BiffViewer class added for validating HSSF & POI and/or
+ HSSF Output.</action>
+ <action dev="POI-DEVELOPERS">Better API support for modification.</action>
+ </release>
+ <release version="0.7 (and interim releases)" date="Release date not recorded">
+ <action dev="POI-DEVELOPERS">Added encoding flag to high and low level api to use utf-16
+ when needed (HSSFCell.setEncoding())</action>
+ <action dev="POI-DEVELOPERS">added read only support for Label records (which are
+ reinterpreted as LabelSST when written)</action>
+ <action dev="POI-DEVELOPERS">Broken continuation record implementation (oops)</action>
+ <action dev="POI-DEVELOPERS">BiffViewer class added for validating HSSF & POI and/or
+ HSSF Output.</action>
+ </release>
+ <release version="0.6 (release)" date="Release date not recorded">
+ <action dev="POI-DEVELOPERS">Support for read/write and modify.</action>
+ <action dev="POI-DEVELOPERS">Read only support for MulRK records (converted to Number when
+ writing)
+ </action>
+ </release>
+
+</changes>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE faqs PUBLIC "-//APACHE//DTD FAQ V1.1//EN" "./dtd/faq-v11.dtd">
+
+<faqs title="Frequently Asked Questions">
+ <faq>
+ <question>
+ What is the HSSF "eventmodel"?
+ </question>
+ <answer>
+ 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.
+ </answer>
+
+ </faq>
+ <faq>
+ <question>
+ Why can't read the document I created using Star Office 5.1?
+ </question>
+ <answer>
+ Star Office 5.1 writes some records using the older BIFF standard. This causes some problems
+ with POI which supports only BIFF8.
+ </answer>
+ </faq>
+ <faq>
+ <question>
+ Why am I getting an exception each time I attempt to read my spreadsheet?
+ </question>
+ <answer>
+ It's possible your spreadsheet contains a feature that is not currently supported by HSSF.
+ For example - spreadsheets containing cells with rich text are not currently supported.
+ </answer>
+ </faq>
+ <faq>
+ <question>
+ Does HSSF support protected spreadsheets?
+ </question>
+ <answer>
+ Protecting a spreadsheet encripts it. We wont touch encription because we're not legally educated
+ and don't understand the full implications of trying to implement this. If you wish to have a go
+ at this feel free to add it as a plugin module. We wont be hosting it here however.
+ </answer>
+ </faq>
+ <faq>
+ <question>
+ How do you tell if a field contains a date with HSSF?
+ </question>
+ <answer>
+ Excel stores dates as numbers therefore the only way to determine if a cell is
+ actually stored as a date is to look at the formatting. This solution from
+ Jason Hoffman:
+ <p>
+ Okay, here is a little code I used to determine if the cell was a number or
+ date, and then format appropriately. I hope it helps. I keep meaning to
+ submit a patch with the helper method below.... but just haven't had a
+ chance.
+ </p>
+ <source>
+/////// code snippet ////////////
+case HSSFCell.CELL_TYPE_NUMERIC:
+ double d = cell.getNumericCellValue();
+ // test if a date!
+ if (isCellDateFormatted(cell)) {
+ // format in form of M/D/YY
+ cal.setTime(HSSFDateUtil.getJavaDate(d));
+ cellText =
+ (String.valueOf(cal.get(Calendar.YEAR))).substring(2);
+ cellText = cal.get(Calendar.MONTH)+1 + "/" +
+ cal.get(Calendar.DAY_OF_MONTH) + "/" +
+ cellText;
+ }
+/////// end code snippet ////////////
+
+// HELPER METHOD BELOW TO DETERMINE IF DATE
+
+// method to determine if the cell is a date, versus a number...
+public static boolean isCellDateFormatted(HSSFCell cell) {
+ boolean bDate = false;
+
+ double d = cell.getNumericCellValue();
+ if ( HSSFDateUtil.isValidExcelDate(d) ) {
+ HSSFCellStyle style = cell.getCellStyle();
+ int i = style.getDataFormat();
+ switch(i) {
+ // Internal Date Formats as described on page 427 in
+ // Microsoft Excel Dev's Kit...
+ case 0x0e:
+ case 0x0f:
+ case 0x10:
+ case 0x11:
+ case 0x12:
+ case 0x13:
+ case 0x14:
+ case 0x15:
+ case 0x16:
+ case 0x2d:
+ case 0x2e:
+ case 0x2f:
+ bDate = true;
+ break;
+
+ default:
+ bDate = false;
+ break;
+ }
+ }
+ return bDate;
+ }
+ </source>
+ </answer>
+ </faq>
+</faqs>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" "./dtd/document-v11.dtd">
+
+<document>
+ <header>
+ <title>Project History</title>
+ <authors>
+ <person id="AO" name="Andrew C. Oliver" email="acoliver@apache.org"/>
+ </authors>
+ </header>
+
+ <body>
+
+
+ <section title="Brief Project History">
+
+ <p>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>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>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> 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> 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>Somewhere in there we decided to finally submit the project
+ to <link href="http://xml.apache.org/cocoon">The Apache
+ Cocoon Project</link>, 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>
+
+ </section>
+
+ <section title="What's next for POI">
+ <p>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>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>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>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>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>
+ </section>
+
+ </body>
+ <footer>
+ <legal>
+ Copyright (c) @year@ The Apache Software Foundation All rights reserved.
+ $Revision$ $Date$
+ </legal>
+ </footer>
+
+
+</document>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" "./dtd/document-v11.dtd">
+
+<document>
+ <header>
+ <title>Welcome to POI</title>
+ <authors>
+ <person id="AO" name="Andrew C. Oliver" email="acoliver@apache.org"/>
+ <person id="GJS" name="Glen Stampoultzis" email="glens@apache.org"/>
+ </authors>
+ </header>
+
+ <body>
+ <section title="Logo Contest">
+ <!--
+ <p>
+ The POI committers have voted to
+ <link href="http://jakarta.apache.org/ant">"innovate"</link> and hold a
+ logo contest. The big P at the top of the page is just a placeholder.
+ So the rules are pretty much this:
+ </p>
+ <ul>
+ <li>
+ <link href="http://burnallgifs.org/">Only PNG submissions</link>
+ be accepted (we can convert them as needed).
+ </li>
+ <li>
+ Submissions must be sent to the <link
+ href="http://jakarta.apache.org/site/mail.html">POI
+ User's mailing list</link> via an http link. If you do not
+ have an available webserver contact Andy (acoliver at apache dot
+ org) and ask him to post it for you (and he will if it doesn't
+ suck royally). Large binary attachments annoyingly posted to
+ the list will be rebuked. :-)
+ </li>
+ <li>
+ Image authors must be willing to work with us on any font and
+ sizing issues, etc.
+ </li>
+ <li>
+ All submissions become property of the Apache Software
+ Foundation to do whatever it wants with them (thanks!).
+ </li>
+ <li>
+ A non-binding poll will be taken and everyone can vote.
+ </li>
+ <li>
+ Based on the poll results and the fact that Andy won't vote for
+ anything that isn't some kind of tiki god or hawaiian theme
+ (maybe a poi pounder would be acceptable), the committers will
+ vote on the new POI logo.
+ </li>
+ <li>
+ Logos should be submitted in two flavors: one for the top of the
+ page and another for posting on other sites that note projects
+ that use POI technology.
+ </li>
+ <li>
+ The winner will get credit posted somewhere on the POI site and
+ have their logo used wherever POI is proudly served.
+ </li>
+ </ul>
+ <p>
+ You can see the current submissions <link
+ href="news/logocontest.html">here.</link>
+ </p> -->
+ <p>
+ Entries for the POI logo contest are now finished. Time to begin voting. Remember, Andy really
+ likes Tiki gods, but Glen suggests voting for what you like. :-)
+ </p>
+ <p>
+ <link href="http://vote.sparklit.com/web_poll.spark/640946">Vote here now!!!</link>
+ </p>
+ <p>
+ <link href="http://vote.sparklit.com/poll.spark/640946">Click here</link> to see the current results.
+ </p>
+ </section>
+ <section title="Purpose">
+ <p>
+ 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>
+ OLE 2 Compound Document Format based files include most Microsoft Office
+ files such as XLS and DOC.
+ </p>
+ <p>
+ As a general policy we try to collaborate as much as possible with other projects to
+ provide this functionality. Examples include: <link href="http://xml.apache.org/cocoon">Cocoon</link> for
+ which you'll soon find generators and serializers for our projects;
+ <link href="http://www.openoffice.org">Open Office.org</link> with whom we collaborate in documenting the
+ XLS format; and <link href="http://jakarta.apache.org/lucene">Lucene</link> for which we'll soon have file
+ format interpretors. When practical, we donate components directly to those projects for POI-enabling them.
+ </p>
+ <section title="Why/when would I use POI?">
+ <p>
+ We'll tackle this on a component level. POI refers to the whole project.
+ </p>
+ <p>
+ So why should you use POIFS or HSSF?
+ </p>
+ <p>
+ 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>
+ 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>
+ </section>
+
+ <section title="What does POI stand for?">
+ <p>
+ 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>
+ Poi is also a Hawaiian delicacy that <link href="http://www.m-w.com">Merriam Webster's dictionary</link> 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>
+ 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>
+ </section>
+
+ </section>
+
+
+ <section title="Components To Date">
+ <section title="Overview">
+ <p>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.</p>
+ </section>
+ <section title="POIFS (POI Filesystem)">
+ <p>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 <link href="../../poifs/index.html">the POIFS project page</link> for more information.</p>
+ </section>
+ <section title="HSSF (Horrible Spreadsheet Format)">
+ <p>HSSF is our port of the Microsoft Excel 97(-2002) file format (BIFF8) to pure Java. It supports read and write
+ capability. Please see <link href="../../hssf/index.html">the HSSF project page</link> for more information.</p>
+ </section>
+ <section title="HDF (Horrible Document Format)">
+ <p>HDF is our port of the Microsoft Word 97 file format to pure Java. It supports read and write capability.
+ Please see <link href="../../hdf/index.html">the HDF project page for more information</link>. This component is
+ in the early stages of design. Jump in!</p>
+ </section>
+ <section title="HPSF (Horrible Property Set Format)">
+ <p>HPSF is our port of the OLE 2 property set format to pure
+ Java. Property sets are mostly use to store a document's properties
+ (title, author, date of last modification etc.), but they can be used
+ for application-specific purposes as well. Currently HPSF supports
+ read functionality only. Please see <link
+ href="../../hpsf/index.html">the HPSF project page</link> for more
+ information.</p>
+ </section>
+
+ </section>
+
+ <section title="What happened to the HSSF Serializer?">
+ <p>The HSSF Serializer, which was part of our 1.0 release and last builds on
+ <link href="http://www.sourceforge.net/projects/poi">Sourceforge</link>, has been donated to the
+ <link href="http://xml.apache.org/cocoon/">Cocoon</link> project, and is available starting from version
+ 2.0.2.</p>
+ </section>
+
+ <section title="Contributing ">
+ <p>
+ 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>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>
+
+
+ </section>
+ </body>
+ <footer>
+ <legal>
+ Copyright (c) @year@ The Apache Software Foundation All rights reserved.
+ $Revision$ $Date$
+ </legal>
+ </footer>
+</document>
--- /dev/null
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" "./dtd/document-v11.dtd">
+
+<document>
+ <header>
+ <title></title>
+ <authors>
+ <person id="AO" name="Andrew C. Oliver" email="acoliver@apache.org"/>
+ </authors>
+ </header>
+
+ <body>
+ <section title="POI in the news">
+ <p>
+ These are articles/etc. posted about POI around the web. If you
+ see POI in the news or mentioned at least somewhat prominently
+ on a site (not your homepage that you put the work POI on in
+ order to get us to link you and by the why here is a picture of
+ your wife in kids) then send a patch to the list. In general
+ equal time will be given so please feel free to send inflamatory
+ defamation as well as favorable, technical and factual. Really
+ stupid things won't be mentioned (sorry).
+ </p>
+ </section>
+ <section title="English">
+ <ul>
+ <li>
+ <link href="http://www.jsurfer.org/article.php?sid=322">
+ POI 1.5-dev-rc2 released </link> - JSurfer
+ </li>
+
+ <li>
+ <link href="http://directory.google.com/Top/Computers/Programming/Languages/Java/Class_Libraries/Data_Formats/Microsoft_Formats/"> Google says we're the most important in our category </link>
+ </li>
+ <li>
+ <link href="http://www.javaworld.com/javaworld/javaqa/2002-05/01-qa-0503-excel3.html">It's POI-fect</link> - Tony Sintes, Javaworld
+ </li>
+ <li>
+ <link href="http://www.need-a-cake.com/categories/cocoonWeblog/2002/03/07.html">
+ Nicola announces POI serialization code
+ </link> - Matthew Langham's Radio Weblog
+ </li>
+ <li>
+ <link href="http://javalobby.org/discussionContext/showThreaded/frm/javalobby?folderId=20&discussionContextId=11523">
+ Jakarta POI 1.4583 Released</link> - JavaLobby
+ </li>
+ <li>
+ <link href="http://javalobby.org/discussionContext/showThreaded/frm/javalobby?discussionContextId=11442&folderId=20">
+ POI project moves to Jakarta (OLE 2 CDF/Excel/Word in
+ pure java)</link> - JavaLobby
+ </li>
+ <li>
+ <link
+ href="http://www.geocities.com/marcoschmidt.geo/java-image-coding.html">
+ List of Java libraries to read and write image and document files
+ </link> Marco Schmidt's homepage (normally we wouldn't
+ feature someone's homepage but its an extensive list of
+ information including "alternatives to POI" (for those
+ of you who are very wealthy). But heck I think I'll
+ bookmark his page for myself since he's like got every
+ piece of info known to man linked or featured on it!
+ </li>
+ <li>
+ <link href="http://radio.weblogs.com/0101350/">
+ The Experiences of an Operator (Måns af Klercker)
+ </link> - radio.weblogs.com
+ </li>
+ <li>
+ <link href="http://dataconv.org/apps_office.html">
+ DATACONV - Data Conversion Tools: Office
+ </link> DATACONV
+ </li>
+ <li>
+ <link href="http://chicago.sourceforge.net/devel/">
+ Chicago Developer Page
+ </link>
+ </li>
+ <li>
+ <link href="http://www.onjava.com/pub/d/1157">
+ POI/POI Serialization Project
+ </link> - Man you know you've hit the bigtime when
+ O'Reilly Likes you.. ;-)
+ </li>
+ <li>
+ <link
+ href="http://www.javaworld.com/netnews/index.shtml">
+ News Around the Net
+ </link> - Java World
+ </li>
+
+ </ul>
+ </section>
+ <section title="Nederlandstalige (Dutch)">
+ <ul>
+ <li>
+ <link
+ href="http://www.ster.be/java/java9.html">
+ Een Excel-werkboek maken vanuit Java - Lieven Smits
+ </link>
+ </li>
+ </ul>
+ </section>
+ <section title="Deutsch (German)">
+ <ul>
+ <li> <link
+ href="http://www.entwickler.com/itr/news/show.php3?id=6132&nodeid=82 ">Apache POI verffentlicht</link> - entwicker.com
+ </li>
+ <li>
+ <link
+ href="http://www.jsp-develop.de/newsletter/10/">
+ Apache Jakarta-Projekt bringt Word und Excel in die Java-Welt </link> - jsp-develop.de (for the misguided who use JSP ;-) )
+ </li>
+ <li>
+ <link
+ href="http://www.entwickler.com/news/2002/02/5718/news.shtml">
+ Neues Apache-Projekt bringt Word- und Excel nach Java
+ </link> - entwickler.com
+ </li>
+ </ul>
+ </section>
+ <section title="Español (Spanish)">
+ <ul>
+ <li>
+ <link href="http://www.javahispano.com/noticias/todas.jsp">
+ OLE2 desde Java nativo
+ </link> - javaHispano
+ </li>
+
+ </ul>
+ </section>
+ <section title="Francais (French)">
+ <ul>
+ <li>
+ <link href="http://linuxfr.org/section/D%E9veloppeur,0,1,8,0.html">
+ Excel/OLE accessibles
+ </link> - Da Linux French Page
+ </li>
+ </ul>
+ </section>
+ <section title="Nihongo (Japanese)">
+ <ul>
+ <li>
+ <link href="http://drpanda.freezope.org/Memo/docs/jakarta/poi/poi_sample">100% PureJava...</link> - Dr. Panda Portal
+ </li>
+ <li>
+ <link
+ href="http://www.gimlay.org/~andoh/java/javanew.html">
+ What's new with java?
+ </link> - gimlay.org
+ </li>
+ </ul>
+
+ </section>
+ <section title="No freaking idea">
+ <p>
+ If you can read one of these languages, send mail to the list
+ telling us what language it is and we'll categorize it!
+ </p>
+ </section>
+ </body>
+ <footer>
+ <legal>
+ Copyright (c) @year@ The Apache Software Foundation All rights reserved.
+ $Revision$ $Date$
+ </legal>
+ </footer>
+</document>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" "./dtd/document-v11.dtd">
+
+<document>
+ <header>
+ <title>Overview</title>
+ <authors>
+ <person id="AO" name="Andrew C. Oliver" email="acoliver2@users.sourceforge.net"/>
+ </authors>
+ </header>
+
+ <body>
+ <section title="What is it?">
+ <p>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>
+ </section>
+ <section title="Sub-Projects">
+ <p>
+ There following are ports, packages or components contained in the POI project.
+ </p>
+ <section title="POIFS">
+ <p>
+ <link href="../../poifs/index.html">POIFS</link> is the set of APIs
+ for reading and writing OLE 2 Compound Document Formats using (only) Java.
+ </p>
+ </section>
+
+ <section title="HSSF">
+ <p>
+ <link href="../../hssf/index.html">HSSF</link> is the set of APIs
+ for reading and writing Microsoft Excel 97(-XP) spreadsheet using (only) Java.
+ </p>
+ </section>
+
+ <section title="HDF">
+ <p>
+ <link href="../../hdf/index.html">HDF</link> is the set of APIs
+ for reading and writing Microsoft Word 97(-XP) spreadsheet using (only) Java.
+ </p>
+ </section>
+
+ <section title="HPSF">
+ <p>
+ <link href="../../hpsf/index.html">HPSF</link> is the set of APIs
+ for reading property sets using (only) Java.
+ </p>
+ </section>
+
+ <section title="POI-Utils">
+ <p>
+ <link href="../../utils/index.html">POI-Utils</link> 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>
+ </section>
+ </section>
+ </body>
+ <footer>
+ <legal>
+ Copyright (c) @year@ The Poi Project All rights reserved.
+ $Revision$ $Date$
+ </legal>
+ </footer>
+</document>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" "./dtd/document-v11.dtd">
+
+ <document><header><title>Patch Queue</title><authors><person email="greenrd@hotmail.com" name="Robin Green"/><person email="barozzi@nicolaken.com" name="Nicola Ken Barozzi"/></authors></header><body><section title="Introduction"><p>
+ This is an <strong>informal</strong> list - in chronological order -
+ of some of the noteworthy patches that have been posted
+ to the <code>developers</code> mailing list.
+ These patches are not (yet) part of the Poi project, but need reviewing for possible
+ inclusion. This system was instituted because, due to the large volume of mail and
+ the lack of time of the committers, some patches tended to get forgotten about. This
+ queue does not guarantee that any patch will be reviewed within a reasonable time frame,
+ but it does at least make them easier to find!
+ </p><p><strong>Reviewers wanted!</strong> - If you have time to review and/or test these patches,
+ we would be grateful for your time. Please post comments to the dev mailing lists.
+ </p><p>
+ Before submitting a patch, please read the page on <connect href="contrib.xml">Third-Party
+ Contributions</connect>. The preferred submission method for patches is:
+ </p><ul><li>Post to Poi developers list</li><li>Describe the patch, the reason for it and (if necessary) why this is important.</li><li>Generate the patch in <code>diff -u</code> format from CVS</li><li>Also generate a documentation patch or new file, if this is something that should be documented.
+ </li><li>Post as an attachment rather than inline (unless it is trivially small).</li></ul><p>Following the above guidelines will facilitate your patch being reviewed
+ and applied efficiently.</p></section><section title="Patch Queue"><p><strong> [Under Construction] </strong> Archive links will be added later.
+ <strong>Please do not bother the patch submitters/authors</strong> without first reading the
+ relevant post(s) in the <connect href="mail-archives.xml">mailing list archives.</connect></p><p>Vapourware will not be listed.</p><table><tr><th>id</th><th>Summary</th><th>Reviewer</th><th>Resolution</th><th>Status</th></tr></table><p>See also additional list of patches to be added in <connect href="todo.xml">To Do</connect>.
+ </p></section></body></document>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+
+<!DOCTYPE todo PUBLIC "-//APACHE//DTD Todo V1.1//EN" "./dtd/todo-v11.dtd">
+
+<todo title="Things To Do for Poi">
+
+ <devs>
+ <!-- in strict alphabetical order -->
+ <person id="AO" name="Andrew C. Oliver" email="acoliver2@users.sourceforge.net"/>
+ <person id="GS" name="Glen Stampoultzis" email="gstamp@iprimus.com.au"/>
+ <person id="MJ" name="Marc Johnson" email="mjohnson at apache dot org"/>
+ <person id="NKB" name="Nicola Ken Barozzi" email="barozzi@nicolaken.com"/>
+ <person id="open" name="Poi Developers" email="poi-dev@jakarta.apache.org"/>
+ </devs>
+
+ <actions priority="high">
+ <action context="code" assigned-to="NKB">
+ Finish HDF
+ </action>
+ <action context="code" assigned-to="NKB">
+ Finish Charts
+ </action>
+ <action context="code">
+ Finish Formulas.
+ </action>
+ </actions>
+
+ <actions priority="medium">
+ <action context="code">
+ Expose functionality in low level records in higher level API
+ </action>
+ <action context="code">
+ Implement more record types (for other things ... not sure
+ what this will mean yet).
+ </action>
+ <action context="code">
+ Implement more record types (for other things ... not sure
+ what this will mean yet).
+ </action>
+ <action context="code">
+ Add more dummy checks (for when API user's do things they
+ "can't" do)
+ </action>
+ <action context="code">
+ Add support for embedded graphics and stuff like that.
+ </action>
+ <action context="code">
+ Create new adapter object for handling MulBlank, MulRk, Rk
+ records.
+ </action>
+ <action context="code">
+ Add a way to copy sheets.
+ </action>
+ </actions>
+
+</todo>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" "./dtd/document-v11.dtd">
+
+<document>
+ <header>
+ <title>Who we are</title>
+ <authors>
+ <person name="Davanum Srinivas" email="dims@yahoo.com"/>
+ <person name="Nicola Ken Barozzi" email="barozzi@nicolaken.com"/>
+ </authors>
+ </header>
+
+ <body>
+
+ <section title="Who we are">
+ <p>
+ 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>
+ 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>
+
+ <section title="Advisors">
+ <ul>
+ <li><link href="http://jakarta.apache.org/avalon/authors/stefano.html">Stefano Mazzocchi</link> (stefano at apache dot org)
+ </li>
+ </ul>
+ </section>
+
+ <section title="Committers">
+ <ul>
+ <li><link href="http://trilug.org/~acoliver">Andrew C. Oliver</link> (acoliver at apache dot org)</li>
+ <li><link href="http://www.marcj.com">Marc Johnson</link> (mjohnson at apache dot org)</li>
+ <li>Glen Stampoultzis (glens at apache.org)</li>
+ <li><link href="http://www.rainer-klute.de/">Rainer Klute</link> (klute at apache dot org)</li>
+ <li>Nicola Ken Barozzi (barozzi at nicolaken dot com)</li>
+ <li>Ryan Ackley (sackley at apache dot org)</li>
+ <li>Avik Sengupta (avik at apache dot org)</li>
+ </ul>
+ </section>
+ <section title="Developers">
+
+ </section>
+ </section>
+
+</body>
+</document>