d6e98794b4
git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@352224 13f79535-47bb-0310-9956-ffa450edef68
1243 lines
33 KiB
HTML
1243 lines
33 KiB
HTML
<html>
|
|
<head>
|
|
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
<meta content="text/html; charset=ISO-8859-1">
|
|
<title>POI 2.0 Vision Document</title>
|
|
<style type="text/css">
|
|
body { background-color: white; font-size: normal; color: black ; }
|
|
a { color: #525d76; }
|
|
a.black { color: #000000;}
|
|
table {border-width: 0; width: 100%}
|
|
table.centered {text-align: center}
|
|
table.title {text-align: center; width: 80%}
|
|
img{border-width: 0;}
|
|
span.s1 {font-family: Helvetica, Arial, sans-serif; font-weight: bold; color: #000000; }
|
|
span.s1_white { font-family: Helvetica, Arial, sans-serif; font-weight: bold; color: #ffffff; }
|
|
span.title {font-family: Helvetica, Arial, sans-serif; font-weight: bold; color: #000000; }
|
|
span.c1 {color: #000000; font-family: Helvetica, Arial, sans-serif}
|
|
tr.left {text-align: left}
|
|
hr { width: 100%; size: 2}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<table width="100%" cellspacing="0" cellpadding="0" border="0">
|
|
<tr>
|
|
<td valign="top" align="left"><a href="http://jakarta.apache.org/index.html"><img hspace="0" vspace="0" border="0" src="images/jakarta-logo.gif"></a></td><td width="100%" valign="top" align="left" bgcolor="#ffffff"><img hspace="0" vspace="0" border="0" align="right" src="images/header.gif"></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2" bgcolor="#525d76"><span class="c1"><a class="black" href="http://www.apache.org/">www.apache.org ></a><a class="black" href="http://jakarta.apache.org/">jakarta.apache.org ></a><a href="http://jakarta.apache.org/poi/" class="black">jakarta.apache.org/poi</a></span></td>
|
|
</tr>
|
|
<tr>
|
|
<td height="8"></td>
|
|
</tr>
|
|
</table>
|
|
<table border="0" cellpadding="0" cellspacing="0" width="100%">
|
|
<tr>
|
|
<td width="1%">
|
|
<br>
|
|
</td><td nowrap="1" valign="top" width="14%">
|
|
<hr>
|
|
<span class="s1">Navigation</span>
|
|
<br>
|
|
<a class="s1" href="../index.html">Main</a>
|
|
<br>
|
|
<hr>
|
|
<span class="s1">Planning Documents</span>
|
|
<br>
|
|
<a class="s1" href="POI10Vision.html">1.0 Vision</a>
|
|
<br>
|
|
<a class="s1" href="POI20Vision.html">2.0 Vision</a>
|
|
<br>
|
|
</td><td width="1%">
|
|
<br>
|
|
</td><td align="left" valign="top" width="*">
|
|
<title>POI 2.0 Vision Document</title>
|
|
<table width="100%" align="center" class="centered">
|
|
<tbody>
|
|
<tr>
|
|
<td align="center">
|
|
<table border="0" cellpadding="1" cellspacing="0" class="title">
|
|
<tbody>
|
|
<tr>
|
|
<td bgcolor="#525d76">
|
|
<table width="100%" border="0" cellpadding="2" cellspacing="0" class="centered">
|
|
<tbody>
|
|
<tr>
|
|
<td bgcolor="#f3dd61"><span class="title">POI 2.0 Vision Document</span></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<font size="-2" color="#000000">
|
|
<p>
|
|
<a href="mailto:"></a>
|
|
</p>
|
|
</font>
|
|
<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>Preface</b></font></font></td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<br>
|
|
|
|
<p align="justify">
|
|
This is the POI 2.0 cycle vision document. Although the vision
|
|
has not changed and this document is certainly not out of date and
|
|
the vision has not changed, the structure of the project has
|
|
changed a bit. We're not going to change the vision document to
|
|
reflect this (however proper that may be) because it would only
|
|
involve deletion. There is no purpose in providing less
|
|
information provded we give clarification.
|
|
</p>
|
|
|
|
<p align="justify">
|
|
This document was created before the POI components for
|
|
<a href="http://xml.apache.org/cocoon">Apache Cocoon</a>
|
|
were accepted into the Cocoon project itself. It was also
|
|
written before POI was accepted into Jakarta. So while the
|
|
vision hasn't changed some of the components are actually now
|
|
part of other projects. We'll still be working on them on the
|
|
same timeline roughly (minus the overhead of coordination with
|
|
other groups), but they are no longer technically part of the
|
|
POI project itself.
|
|
</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>1. Introduction</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>1.1 Purpose of this document</b></font></font></td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<br>
|
|
|
|
<p align="justify">
|
|
The purpose of this document is to
|
|
collect, analyze and define high-level requirements, user needs,
|
|
and features of the second release of the POI project software.
|
|
The POI project currently consists of the following components:
|
|
the HSSF Serializer, the HSSF library and the POIFS library.
|
|
</p>
|
|
|
|
<ul>
|
|
|
|
<li>
|
|
The HSSF Serializer is a set of Java classes whose main
|
|
class supports the Serializer interface from the Cocoon
|
|
2 project and outputs the serialized data in a format
|
|
compatible with the spreadsheet program Microsoft Excel
|
|
'97.
|
|
</li>
|
|
|
|
<li>
|
|
The HSSF library is a set of classes for reading and
|
|
writing Microsoft Excel 97 file format using pure Java.
|
|
</li>
|
|
|
|
<li>
|
|
The POIFS library is a set of classes for reading and
|
|
writing Microsoft's OLE 2 Compound Document format using
|
|
pure Java.
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
<p align="justify">By the completion of this release cycle the POI project will also
|
|
include the HSSF Generator and the HDF library.
|
|
</p>
|
|
|
|
<ul>
|
|
|
|
<li>The HSSF Generator will be responsible for using HSSF to read
|
|
in the XLS (Excel 97) file format and create SAX events. The HSSF
|
|
Generator will support the applicable interfaces specified by the
|
|
Apache Cocoon 2 project.
|
|
</li>
|
|
|
|
<li>The HDF library will provide a set of high level interfaces
|
|
for reading and writing Microsoft Word 97 file format using pure
|
|
Java.</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>1.2 Project Overview</b></font></font></td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<br>
|
|
|
|
<p align="justify">
|
|
The first release of the POI project
|
|
was an astounding success. This release seeks to build on that
|
|
success by:
|
|
</p>
|
|
|
|
<ul>
|
|
|
|
<li>
|
|
Refactoring POIFS into imput and
|
|
output classes as well as an event-driven API for reading.
|
|
</li>
|
|
|
|
<li>
|
|
Refactor HSSF for greater
|
|
performance as well as an event-driven API for reading
|
|
</li>
|
|
|
|
<li>
|
|
Extend HSSF by adding the ability to read and write formulas.
|
|
</li>
|
|
|
|
<li>
|
|
Extend HSSF by adding the ability to read and write
|
|
user-defined styles.
|
|
</li>
|
|
|
|
<li>
|
|
Create a Cocoon 2 Generator for HSSF using the same tags
|
|
as the HSSF Serializer.
|
|
</li>
|
|
|
|
<li>
|
|
Create a new library (HDF) for reading and writing
|
|
Microsoft Word DOC format.
|
|
</li>
|
|
|
|
<li>
|
|
Refactor the HSSFSerializer into a separate extensible
|
|
POIFSSerializer and HSSFSerializer
|
|
</li>
|
|
|
|
<li>
|
|
Providing the create excel charts. (write only)
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</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>2. User Description</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>2.1 User/Market Demographics</b></font></font></td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<br>
|
|
|
|
<p align="justify">
|
|
There are a number of enthusiastic
|
|
users of XML, UNIX and Java technology. Furthermore, the Microsoft
|
|
solution for outputting Office Document formats often involves
|
|
actually manipulating the software as an OLE Server. This method
|
|
provides extremely low performance, extremely high overhead and is
|
|
only capable of handing one document at a time.
|
|
</p>
|
|
|
|
<ol>
|
|
|
|
<li>
|
|
Our intended audience for the HSSF
|
|
Serializer portion of this project are developers writing reports or
|
|
data extracts in XML format.
|
|
</li>
|
|
|
|
<li>
|
|
Our intended audience for the HSSF
|
|
library portion of this project is ourselves as we are developing
|
|
the HSSF serializer and anyone who needs to read and write Excel
|
|
spreadsheets in a non-XML Java environment, or who has specific
|
|
needs not addressed by the Serializer
|
|
</li>
|
|
|
|
<li>
|
|
Our intended audience for the
|
|
POIFS library is ourselves as we are developing the HSSF and HDF
|
|
libraries and anyone wishing to provide other libraries for
|
|
reading/writing other file formats utilizing the OLE 2 Compound
|
|
Document Format in Java.
|
|
</li>
|
|
|
|
<li>
|
|
Our intended audience for the HSSF
|
|
generator are developers who need to export Excel spreadsheets to
|
|
XML in a non-proprietary environment.
|
|
</li>
|
|
|
|
<li>
|
|
Our intended audience for the HDF
|
|
library is ourselves, as we will be developing a HDF Serializer in a
|
|
later release, and anyone wishing to add .DOC file processing and
|
|
creation to their projects.
|
|
</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>2.2. User environment</b></font></font></td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<br>
|
|
|
|
<p align="justify">
|
|
The users of this software shall be
|
|
developers in a Java environment on any operating system, or power
|
|
users who are capable of XML document generation/deployment.
|
|
</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>2.3. Key User Needs</b></font></font></td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<br>
|
|
|
|
<p align="justify">
|
|
The HSSF library currently requires a
|
|
full object representation to be created before reading values. This
|
|
results in very high memory utilization. We need to reduce this
|
|
substantially for reading. It would be preferable to do this for
|
|
writing, but it may not be possible due to the constraints imposed by
|
|
the file format itself. Memory utilization during read is our top
|
|
user complaint.
|
|
</p>
|
|
|
|
<p align="justify">
|
|
The POIFS library currently requires a
|
|
full object representation to be created before reading values. This
|
|
results in very high memory utilization. We need to reduce this
|
|
substantially for reading.
|
|
</p>
|
|
|
|
<p align="justify">
|
|
The HSSF library currently ignores
|
|
formula cells and identifies them as "UnknownRecord" at the
|
|
lower level of the API. We must provide a way to read and write
|
|
formulas. This is now the top requested feature.
|
|
</p>
|
|
|
|
<p align="justify">
|
|
The HSSF library currently does not support
|
|
charts. This is a key requirement of some users who wish to use HSSF
|
|
in a reporting engine.
|
|
</p>
|
|
|
|
<p align="justify">
|
|
The HSSF Serializer currently does not
|
|
provide serialization for cell styling. User's will want stylish
|
|
spreadsheets to result from their XML.
|
|
</p>
|
|
|
|
<p align="justify">
|
|
There is currently no way to generate
|
|
the XML from an XLS that is consistent with the format used by the
|
|
HSSF Serializer.
|
|
</p>
|
|
|
|
<p align="justify">
|
|
There should be a way to read and write
|
|
the DOC file format using pure 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>2.4. Alternatives and Competition</b></font></font></td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<br>
|
|
|
|
<p align="justify">
|
|
Alternatives to using HSSF to manipulate Excel files include:
|
|
</p>
|
|
|
|
<ol>
|
|
|
|
<li>Buy the $10,000 Formula 1 library
|
|
(<a href="http://www.f1j.com/">www.tidestone.com</a>)
|
|
now owned by Actuate and accept its crude api and limitations.
|
|
</li>
|
|
|
|
<li>Give up XML, Java, and operating system independence, and
|
|
write Visual Basic code in a Microsoft Windows based environment
|
|
</li>
|
|
|
|
<li>Try writing output in Microsoft's poorly documented XHTML
|
|
for Office format.
|
|
</li>
|
|
|
|
</ol>
|
|
|
|
<p align="justify">
|
|
There is also a decent library for
|
|
reading Excel documents written by Andy Khan called xlReader
|
|
(<a href="http://www.sourceforge.net/projects/xlrd">http://www.sourceforge.net/projects/xlrd</a>).
|
|
It does not provide write ability.
|
|
</p>
|
|
|
|
<p align="justify">
|
|
There are a number of PERL and C alternatives.
|
|
None are consistent.
|
|
</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>3. Project Overview</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>3.1. Project Perspective</b></font></font></td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<br>
|
|
|
|
<p align="justify">
|
|
The produced code shall be licensed by
|
|
the Apache License as used by the Cocoon 2 project (APL 1.1) and
|
|
maintained on at <a href="http://poi.sourceforge.net/">http://poi.sourceforge.net</a>
|
|
and <a href="http://sourcefoge.net/projects/poi">http://sourcefoge.net/projects/poi</a>.
|
|
It is our hope to at some point integrate with the various Apache
|
|
projects (xml.apache.org and jakarta.apache.org), at which point we'd
|
|
turn the copyright over to them.
|
|
</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>3.2. Project Position Statement</b></font></font></td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<br>
|
|
|
|
<p align="justify">
|
|
For developers on a Java and/or XML
|
|
environment this project will provide all the tools necessary for
|
|
outputting XML data in the Microsoft Excel format. This project seeks
|
|
to make the use of Microsoft Windows based servers unnecessary for
|
|
file format considerations and to fully document the OLE 2 Compound
|
|
Document format. The project aims not only to provide the tools for
|
|
serializing XML to Excel and Word file formats and the tools for
|
|
writing to those file formats from Java, but also to provide the
|
|
tools for later projects to convert other OLE 2 Compound Document
|
|
formats to pure Java APIs.
|
|
</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>3.3. Summary of Capabilities</b></font></font></td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<br>
|
|
|
|
<p align="justify">
|
|
HSSF Serializer for Apache Cocoon 2
|
|
</p>
|
|
|
|
<table width="100%" cellspacing="2" cellpadding="2" border="0">
|
|
<tr>
|
|
|
|
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
|
|
Benefit
|
|
</font></td>
|
|
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
|
|
Supporting Features
|
|
</font></td>
|
|
|
|
</tr>
|
|
<tr>
|
|
|
|
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
|
|
Ability to serialize styles from XML spreadsheets.
|
|
</font></td>
|
|
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
|
|
HSSFSerialzier will support styles.
|
|
</font></td>
|
|
|
|
</tr>
|
|
<tr>
|
|
|
|
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
|
|
Ability to read and write formulas in XLS files.
|
|
</font></td>
|
|
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
|
|
HSSF will support reading/writing formulas.
|
|
</font></td>
|
|
|
|
</tr>
|
|
<tr>
|
|
|
|
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
|
|
Ability to output in MS Word on any platform using Java.
|
|
</font></td>
|
|
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
|
|
The project will develop an API that outputs in Word format
|
|
using pure Java.
|
|
</font></td>
|
|
|
|
</tr>
|
|
<tr>
|
|
|
|
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
|
|
Enhance performance for reading and writing XLS files.
|
|
</font></td>
|
|
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
|
|
HSSF will undergo a number of performance enhancements. HSSF
|
|
will include a new event-based API for reading XLS files. POIFS
|
|
will support a new event-based API for reading OLE2 CDF files.
|
|
</font></td>
|
|
|
|
</tr>
|
|
<tr>
|
|
|
|
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
|
|
Ability to generate XML from XLS files
|
|
</font></td>
|
|
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
|
|
The project will develop an HSSF Generator.
|
|
</font></td>
|
|
|
|
</tr>
|
|
<tr>
|
|
|
|
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
|
|
The ability to generate charts
|
|
</font></td>
|
|
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
|
|
HSSF will provide low level support for chart records as well
|
|
as high level API support for generating charts. The ability
|
|
to read chart information will not initially be provided.
|
|
</font></td>
|
|
|
|
</tr>
|
|
</table>
|
|
|
|
</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>3.4. Assumptions and Dependencies</b></font></font></td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<br>
|
|
|
|
<ul>
|
|
|
|
<li>
|
|
The HSSF Serializer and Generator
|
|
will support the Gnumeric 1.0 XML tag language.
|
|
</li>
|
|
|
|
<li>
|
|
The HSSF Generator and HSSF
|
|
Serializer will be mutually validating. It should be possible to
|
|
have an XLS file created by the Serializer run through the Generator
|
|
and the output back through the Serializer (via the Cocoon pipeline)
|
|
and get the same file or a reasonable facimille (no one cares if it
|
|
differs by the order of the binary records in some minor but
|
|
non-visually recognizable manner).
|
|
</li>
|
|
|
|
<li>
|
|
The HSSF Generator will run on any
|
|
Java 2 supporting platform with Apache Cocoon 2 installed along with
|
|
the HSSF and POIFS APIs.
|
|
</li>
|
|
|
|
<li>
|
|
The HSSF Serializer will run on
|
|
any Java 2 supporting platform with Apache Cocoon 2 installed along
|
|
with the HSSF and POIFS APIs.
|
|
</li>
|
|
|
|
<li>
|
|
The HDF API requires a Java 2
|
|
implementation and the POIFS API.
|
|
</li>
|
|
|
|
<li>
|
|
The HSSF API requires a Java 2
|
|
implementation and the POIFS API.
|
|
</li>
|
|
|
|
<li>
|
|
The POIFS API requires a Java 2
|
|
implementation.
|
|
</li>
|
|
|
|
|
|
</ul>
|
|
|
|
</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>4. Project Features</b></font></font></td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<br>
|
|
|
|
<p align="justify">
|
|
Enhancements to the POIFS API will
|
|
include:
|
|
</p>
|
|
|
|
<ul>
|
|
|
|
<li>
|
|
An event driven API for reading
|
|
POIFS Filesystems.
|
|
</li>
|
|
|
|
<li>
|
|
A low-level API for
|
|
creating/manipulating POI filesystems.
|
|
</li>
|
|
|
|
<li>
|
|
Code improvements supporting
|
|
greater separation between read and write structures.
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
<p align="justify">
|
|
Enhancements to the HSSF API will
|
|
include:
|
|
</p>
|
|
|
|
<ul>
|
|
|
|
<li>
|
|
An event driven API for reading
|
|
XLS files.
|
|
</li>
|
|
|
|
<li>
|
|
Performance improvements.
|
|
</li>
|
|
|
|
<li>
|
|
Formula support (read/write)
|
|
</li>
|
|
|
|
<li>
|
|
Support for user-defined data
|
|
formats
|
|
</li>
|
|
|
|
<li>
|
|
Better documentation of the file
|
|
format and structure.
|
|
</li>
|
|
|
|
<li>
|
|
An API for creation of charts.
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
<p align="justify">
|
|
The HSSF Generator will include:
|
|
</p>
|
|
|
|
<ul>
|
|
|
|
<li>
|
|
A set of classes supporting the
|
|
Cocoon 2 Generator interfaces providing a method for reading XLS
|
|
files and outputting SAX events.
|
|
</li>
|
|
|
|
<li>
|
|
The same tag format used by the
|
|
HSSFSerializer in any given release.
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
<p align="justify">
|
|
The HDF API will include:
|
|
</p>
|
|
|
|
<ul>
|
|
|
|
<li>
|
|
An event driven API for reading
|
|
DOC files.
|
|
</li>
|
|
|
|
<li>
|
|
A set of high and low level APIs
|
|
for reading and writing DOC files.
|
|
</li>
|
|
|
|
<li>
|
|
Documentation of the DOC file
|
|
format or enhancements to existing documentation.
|
|
</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>5. Other Product Requirements</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>5.1. Applicable Standards</b></font></font></td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<br>
|
|
|
|
<p align="justify">
|
|
All Java code will be 100% pure 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>5.2. System Requirements</b></font></font></td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<br>
|
|
|
|
<p align="justify">
|
|
The minimum system requirements for the POIFS API are:
|
|
</p>
|
|
|
|
<ul>
|
|
|
|
<li>64 Mbytes memory</li>
|
|
|
|
<li>Java 2 environment</li>
|
|
|
|
<li>Pentium or better processor (or equivalent on other platforms)</li>
|
|
|
|
</ul>
|
|
|
|
<p align="justify">
|
|
The minimum system requirements for the the HSSF API are:
|
|
</p>
|
|
|
|
<ul>
|
|
|
|
<li>64 Mbytes memory</li>
|
|
|
|
<li>Java 2 environment</li>
|
|
|
|
<li>Pentium or better processor (or equivalent on other platforms)</li>
|
|
|
|
<li>POIFS API</li>
|
|
|
|
</ul>
|
|
|
|
<p align="justify">
|
|
The minimum system requirements for the the HDF API are:
|
|
</p>
|
|
|
|
<ul>
|
|
|
|
<li>64 Mbytes memory</li>
|
|
|
|
<li>Java 2 environment</li>
|
|
|
|
<li>Pentium or better processor (or equivalent on other platforms)</li>
|
|
|
|
<li>POIFS API</li>
|
|
|
|
</ul>
|
|
|
|
|
|
<p align="justify">
|
|
The minimum system requirements for the HSSF Serializer are:
|
|
</p>
|
|
|
|
<ul>
|
|
|
|
<li>64 Mbytes memory</li>
|
|
|
|
<li>Java 2 environment</li>
|
|
|
|
<li>Pentium or better processor (or equivalent on other platforms)</li>
|
|
|
|
<li>Cocoon 2</li>
|
|
|
|
<li>HSSF API</li>
|
|
|
|
<li>POI API</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>5.3. Performance Requirements</b></font></font></td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<br>
|
|
|
|
<p align="justify">
|
|
All components must perform well enough
|
|
to be practical for use in a webserver environment (especially
|
|
the "killer trio": Cocoon2/Tomcat/Apache combo)
|
|
</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>5.4. Environmental Requirements</b></font></font></td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<br>
|
|
|
|
<p align="justify">
|
|
The software will run primarily in
|
|
developer environments. We should make some allowances for
|
|
not-highly-technical users to write XML documents for the HSSF
|
|
Serializer. All other components will assume intermediate Java 2
|
|
knowledge. No XML knowledge will be required except for using the
|
|
HSSF Serializer. As much documentation as is practical shall be
|
|
required for all components as XML is relatively new, and the
|
|
concepts introduced for writing spreadsheets and to POI filesystems
|
|
will be brand new to Java and many Java developers.
|
|
</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>6. Documentation Requirements</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>6.1 POI Filesystem</b></font></font></td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<br>
|
|
|
|
<p align="justify">
|
|
The filesystem as read and written by
|
|
POI shall be fully documented and explained so that the average Java
|
|
developer can understand 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>6.2. POI API</b></font></font></td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<br>
|
|
|
|
<p align="justify">
|
|
The POI API will be fully documented
|
|
through Javadoc. A walkthrough of using the high level POI API shall
|
|
be provided. No documentation outside of the Javadoc shall be
|
|
provided for the low-level POI APIs.
|
|
</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>6.3. HSSF File Format</b></font></font></td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<br>
|
|
|
|
<p align="justify">
|
|
The HSSF File Format as implemented by
|
|
the HSSF API will be fully documented. No documentation will be
|
|
provided for features that are not supported by HSSF API that are
|
|
supported by the Excel 97 File Format. Care will be taken not to
|
|
infringe on any "legal stuff". Additionally, we are
|
|
collaborating with the fine folks at OpenOffice.org on
|
|
*free* documentation of the format.
|
|
</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>6.4. HSSF API</b></font></font></td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<br>
|
|
|
|
<p align="justify">
|
|
The HSSF API will be documented by
|
|
javadoc. A walkthrough of using the high level HSSF API shall be
|
|
provided. No documentation outside of the Javadoc shall be provided
|
|
for the low level HSSF APIs.
|
|
</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>6.5 HDF API</b></font></font></td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<br>
|
|
|
|
<p align="justify">
|
|
The HDF API will be documented by
|
|
javadoc. A walkthrough of using the high level HDF API shall be
|
|
provided. No documentation outside of the Javadoc shall be provided
|
|
for the low level HDF APIs.
|
|
</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>6.6 HSSF Serializer</b></font></font></td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<br>
|
|
|
|
<p align="justify">
|
|
The HSSF Serializer will be documented
|
|
by javadoc.
|
|
</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>6.7 HSSF Generator</b></font></font></td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<br>
|
|
|
|
<p align="justify">
|
|
The HSSF Generator will be documented
|
|
by javadoc.
|
|
</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>6.8 HSSF Serializer Tag language</b></font></font></td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<br>
|
|
|
|
<p align="justify">
|
|
The XML tag language along with
|
|
function and usage shall be fully documented. Examples will be
|
|
provided as well.
|
|
</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>7. Terminology</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>7.1 Filesystem</b></font></font></td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<br>
|
|
|
|
<p align="justify">
|
|
filesystem shall refer only to the POI formatted archive.
|
|
</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>7.2 File</b></font></font></td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<br>
|
|
|
|
<p align="justify">
|
|
file shall refer to the embedded data stream within a
|
|
POI filesystem. This will be the actual embedded document.
|
|
</p>
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<br>
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<br>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<br>
|
|
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
|
<tbody>
|
|
<tr>
|
|
<td>
|
|
<hr noshade="" size="1">
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="center"><i>Copyright © 2002 Apache Software Foundation</i></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right" width="100%">
|
|
<br>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td align="right" width="100%"><a href="http://krysalis.org/"><img alt="Krysalis Logo" src="images/krysalis-compatible.png"></a><a href="http://xml.apache.org/cocoon/"><img alt="Cocoon Logo" src="images/built-with-cocoon.png"></a></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</body>
|
|
</html>
|