| <?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</title> |
| |
| <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</title> |
| <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> |