2003-04-23 20:53:41 -04:00
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
2007-01-15 18:11:09 -05:00
|
|
|
<!--
|
|
|
|
====================================================================
|
|
|
|
Licensed to the Apache Software Foundation (ASF) under one or more
|
|
|
|
contributor license agreements. See the NOTICE file distributed with
|
|
|
|
this work for additional information regarding copyright ownership.
|
|
|
|
The ASF licenses this file to You under the Apache License, Version 2.0
|
|
|
|
(the "License"); you may not use this file except in compliance with
|
|
|
|
the License. You may obtain a copy of the License at
|
|
|
|
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
See the License for the specific language governing permissions and
|
|
|
|
limitations under the License.
|
|
|
|
====================================================================
|
|
|
|
-->
|
2008-03-20 18:31:15 -04:00
|
|
|
<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.3//EN" "./dtd/document-v13.dtd">
|
2003-04-23 20:53:41 -04:00
|
|
|
|
|
|
|
<document>
|
|
|
|
<header>
|
2007-05-29 13:32:05 -04:00
|
|
|
<title>Apache POI - Project History</title>
|
2003-04-23 20:53:41 -04:00
|
|
|
<authors>
|
|
|
|
<person id="AO" name="Andrew C. Oliver" email="acoliver@apache.org"/>
|
|
|
|
</authors>
|
|
|
|
</header>
|
2009-06-04 19:01:06 -04:00
|
|
|
|
2003-04-23 20:53:41 -04:00
|
|
|
<body>
|
|
|
|
|
|
|
|
|
2007-05-29 13:32:05 -04:00
|
|
|
<section><title>Apache POI - Brief Project History</title>
|
2003-04-23 20:53:41 -04:00
|
|
|
|
2003-08-03 23:42:47 -04:00
|
|
|
<p>The POI project was dreamed up back around April 2001, when
|
2003-07-19 21:37:30 -04:00
|
|
|
Andrew Oliver landed a short term contract to do Java-based
|
2003-04-23 20:53:41 -04:00
|
|
|
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>
|
|
|
|
|
2003-07-19 21:37:30 -04:00
|
|
|
<p>Around June 2001, Andrew started thinking how great it would
|
2003-04-23 20:53:41 -04:00
|
|
|
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
|
2003-07-19 21:37:30 -04:00
|
|
|
ran rings around Andrew at porting OLE 2 CDF and rewrote his
|
2003-04-23 20:53:41 -04:00
|
|
|
skeletal code into a more sophisticated library. It took Marc
|
|
|
|
a few iterations to get something they were happy with.
|
|
|
|
</p>
|
|
|
|
|
2003-07-19 21:37:30 -04:00
|
|
|
<p>While Marc worked on that, Andrew ported XLS to Java, based
|
2003-04-23 20:53:41 -04:00
|
|
|
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
|
2003-08-03 23:42:47 -04:00
|
|
|
long, the project scope had tripled. POI 1.0 was released a
|
2003-04-23 20:53:41 -04:00
|
|
|
month later than planned, but with far more features. Marc
|
|
|
|
quickly wrote the serializer framework and HSSF Serializer in
|
2003-07-19 21:37:30 -04:00
|
|
|
record time and Andrew banged out more documentation and worked
|
2003-04-23 20:53:41 -04:00
|
|
|
on making people aware of the project
|
|
|
|
</p>
|
|
|
|
|
2003-08-03 23:42:47 -04:00
|
|
|
<p> Shortly before the release, POI was fortunate to come into
|
2003-04-23 20:53:41 -04:00
|
|
|
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
|
2003-08-03 23:42:47 -04:00
|
|
|
of the POI project documentation to XML from Andrew's crappy
|
2003-04-23 20:53:41 -04:00
|
|
|
HTML docs he wrote with Star Office.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p> Around the same time as the release, Glen Stampoultzis
|
2003-07-19 21:37:30 -04:00
|
|
|
joined the project. Glen was ticked off at Andrew's flippant attitude
|
2003-04-23 20:53:41 -04:00
|
|
|
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
|
2003-08-03 23:42:47 -04:00
|
|
|
part of the POI development community; his contributions to HSSF have
|
2003-04-23 20:53:41 -04:00
|
|
|
already started making waves.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>Somewhere in there we decided to finally submit the project
|
2003-07-19 21:37:30 -04:00
|
|
|
to <link href="http://cocoon.apache.org/">The Apache
|
2003-04-23 20:53:41 -04:00
|
|
|
Cocoon Project</link>, only to discover the project had
|
|
|
|
outgrown fitting nicely into just Cocoon long ago.
|
2003-07-19 21:37:30 -04:00
|
|
|
Furthermore, Andrew started eyeing other projects he'd like to
|
2003-08-03 23:42:47 -04:00
|
|
|
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
|
2003-04-23 20:53:41 -04:00
|
|
|
would become part of Jakarta. It was a bumpy road but it
|
|
|
|
looks like everything turned out since you're reading this!
|
|
|
|
</p>
|
|
|
|
|
2009-06-04 19:01:06 -04:00
|
|
|
<p>In Early 2007, we graduated from
|
2007-05-29 13:32:05 -04:00
|
|
|
<link href="http://jakarta.apache.org/">Jakarta</link>, and became
|
|
|
|
our own Top Level Project (TLP) within Apache.</p>
|
2003-04-23 20:53:41 -04:00
|
|
|
</section>
|
|
|
|
|
2007-05-29 13:32:05 -04:00
|
|
|
<!--
|
2003-07-19 21:45:50 -04:00
|
|
|
<section><title>What's next for Poi</title>
|
2007-05-29 13:32:05 -04:00
|
|
|
<p>First we'll tackle this from a project standpoint: Well, we
|
2003-04-23 20:53:41 -04:00
|
|
|
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
|
2003-08-03 23:42:47 -04:00
|
|
|
integrating POI into the community. Furthermore, we're
|
2003-04-23 20:53:41 -04:00
|
|
|
still transitioning the Serializer to Cocoon.
|
2007-05-29 13:32:05 -04:00
|
|
|
</p>
|
2003-04-23 20:53:41 -04:00
|
|
|
<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
|
2003-07-19 21:45:50 -04:00
|
|
|
do all of this for XLS files, what about Doc files or PowerPoint
|
|
|
|
files? We're thinking that our next component (HWPF - Manipulates
|
2003-07-19 21:37:30 -04:00
|
|
|
Word Processor Format) should follow the same pattern. We're hoping
|
2003-04-23 20:53:41 -04:00
|
|
|
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>
|
2007-05-29 13:32:05 -04:00
|
|
|
</section> -->
|
2003-04-23 20:53:41 -04:00
|
|
|
|
|
|
|
</body>
|
|
|
|
<footer>
|
|
|
|
<legal>
|
|
|
|
Copyright (c) @year@ The Apache Software Foundation All rights reserved.
|
|
|
|
</legal>
|
|
|
|
</footer>
|
|
|
|
|
|
|
|
|
|
|
|
</document>
|