<p>
Maybe it's unwise to advertise your competitors but we believe
competition is good and we have the best support reading and
- write Excel workbooks currently available.
+ write Excel workbooks currently available. This however does not
+ purport to be a complete list.
</p>
<table>
<tr>
<section><title>Introduction</title>
<p>
This document describes the current state of formula support in POI.
- The information in this document applies to the 2.0-dev version of POI (i.e. CVS HEAD).
+ The information in this document currently applies to the 2.0 version of POI.
Since this area is a work in progress, this document will be updated with new features as and
when they are added.
</p>
<li>String, integer and floating point literals</li>
<li>Area references</li>
<li>Relative or absolute references</li>
- <li>Arithmetic Operators</li>
- <li>Sheet Functions</li>
+ <li>Arithmetic and logical operators</li>
+ <li>Sheet or Macro Functions (inlcuding logical functions)</li>
+ <li>Sheet References</li>
+ <li>Formual return values (number or string)</li>
</ul>
</section>
<section><title>Partially supported</title>
<ul>
- <li>
- The formula parser now has the ability to parse formulas containing strings. However
- formulas that return a string value are not yet supported.
- </li>
<li>Formula tokens in Excel are stored in one of three possible <em> classes </em>:
Reference, Value and Array. Based on the location of a token, its class can change
in complicated and undocumented ways. While we have support for most cases, we
<section><title>Not yet supported</title>
<ul>
<li>Array formulas</li>
- <li>Formulas with logical operations (IF) </li>
- <li>Sheet References in formulas</li>
- <li>Everything else :) </li>
+ <li>Unary Operators</li>
+ <li>3D References</li>
+ <li>Error Values (cells containing #REF's or #VALUE's)</li>
+ <li>Everything else :) </li>
</ul>
</section>
</section>
</body>
-</document>
\ No newline at end of file
+</document>
</authors>
</header>
<body>
- <section><title>How to use the HSSF prototype API</title>
+ <section><title>How to use the HSSF API</title>
<section><title>Capabilities</title>
<p>This release of the how-to outlines functionality for the CVS HEAD.
Those looking for information on previous releases should
look in the documentation distributed with that release.</p>
<p>
- This release allows numeric and string cell values to be written to
- or read from an XLS file as well as reading and writing dates. Also
+ HSSF allows numeric, string, date or formuala cell values to be written to
+ or read from an XLS file. Also
in this release is row and column sizing, cell styling (bold,
italics, borders,etc), and support for both built-in and user
- defined data formats. New
- to this release is an event-based API for reading XLS files.
+ defined data formats. Also available is
+ an event-based API for reading XLS files.
It differs greatly from the read/write API
and is intended for intermediate developers who need a smaller
- memory footprint. It will also serve as the basis for the HSSF
- Generator.</p>
+ memory footprint.
+ </p>
</section>
<section><title>General Use</title>
<section><title>User API</title>
</section>
<section><title>What's Next?</title>
-<p>This release contains code that supports "internationalization"
-or more accurately non-US/UK languages; however, it has not been
-tested with the new API changes (please help us with this). We've
-shifted focus a bit for this release in recognition of the
-international support we've gotten. We're going to focus on western
-European languages for our first beta. We're more than happy to
-accept help in supporting non-Western European languages if someone
-who knows what they're doing in this area is willing to pitch in!
-(There is next to no documentation on what is necessary to support
-such a move and its really hard to support a language when you don't even
-know the alphabet).</p>
-<p>This release of HSSF does not yet support Formulas. I've been
-focusing on the requests I've gotten in. That being said, if we get
-more user feedback on what is most useful first we'll aim for that.
-As a general principal, HSSF's goal is to support HSSF-Serializer
-(meaning an emphasis on write). We would like to hear from you! How
-are you using HSSF/POIFS? How would you like to use it? What features
-are most important first?
-</p>
+<p>Further effort on HSSF is going to focus on the following major areas: </p>
+<ul>
+<li>Performance: A lot of work is going on in CVS and mailing lists for greatly improving the
+memory efficiency of POI, as well as improving speed. Many approaches have been suggested, and a lot of code as been written.
+It now needs a lot of testing and bugfixing. </li>
+<li>Charts: This is a hard problem, with very little documentation.</li>
+</ul>
+<p><link href="../getinvolved/index.html"> So jump in! </link> </p>
+
</section>
</section>
<li>a full usermodel api for creating, reading and modifying XLS files</li>
</ul>
<p>
- 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
- <link href="http://xml.apache.org/cocoon">Apache Cocoon
- Project</link>. With Cocoon you can serialize any XML datasource (of
- which might be a ESQL page outputting in SQL for instance) by simply
+ An alternate way of generating a spreadsheet is via the <link href="http://cocoon.apache.org">Cocoon</link> serializer (yet you'll still be using HSSF indirectly).
+ With Cocoon you can serialize any XML datasource (which might be a ESQL page outputting in SQL for instance) by simply
applying the stylesheet and designating the serializer.
</p>
<p>
If you're merely reading spreadsheet data, then use the eventmodel api
- in the org.apache.poi.hssf.eventmodel package.
+ in the org.apache.poi.hssf.eventusermodel package.
</p>
<p>
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.
+ can also generate spreadsheets this way.
</p>
</section>
</authors>
</header>
<body>
- <section><title>Version 1.5 limitations</title>
+ <section><title>Version 2.0 limitations</title>
<p>
The intent of this document is to outline some of the known limitations of the
POI HSSF API's. It is not intended to be complete list of every bug or missing
<ul>
<li>
Charts<br/><br/>
- You can not currently create charts. This is planned for the 2.0 release. You can
+ You can not currently create charts. You can
however create a chart in Excel, modify the chart data values using HSSF and write
a new spreadsheet out. This is possible because POI attempts to keep existing records
intact as far as possible.<br/><br/>
</li>
<li>
Macros<br/><br/>
- Macros can not be created. The are currently no plans to support macros. Reading
- workbooks containing macros is supported but attempting to write those workbooks
- will fail. This is because macros are stored as extra file sytems within the
- compound document, and these are not currently kept when the file is rewritten.<br/><br/>
+ Macros can not be created. However, reading and re-writing files containing macros will
+ safely preserve the macros.<br/><br/>
</li>
<li>
Pivot Tables<br/><br/>
- Generating pivot tables is not supported. Reading spreadsheets containing pivot tables
- has not been tested.
+ Generating pivot tables is not supported. It has been reported that files containing pivot
+ tables can be read and re-written safely.
</li>
</ul>
</section>
<authors>
<person id="AO" name="Andrew C. Oliver" email="acoliver@apache.org"/>
<person id="GJS" name="Glen Stampoultzis" email="poi-user@jakarta.apache.org"/>
+ <person id="AS" name="Avik Sengupta" email="poi-user@jakarta.apache.org"/>
</authors>
</header>
<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;
+ which there are serializers for HSSF;
<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>
<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
+ MFC, that you needed to read in Java. Alternatively, you'd use POIFS 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 implementation of this file format to date!
</p>
<section><title>HWPF</title>
<p>HWPF is our port of the Microsoft Word 97 file format to pure Java. It supports read and write capability.
Please see <link href="./hwpf/index.html">the HWPF project page for more information</link>. This component is
- in the early stages of design. Jump in!</p>
+ in the early stages of development.It can already read and write simple files. Jump in!</p>
</section>
<section><title>HPSF</title>
<p>HPSF is our port of the OLE 2 property set format to pure
<todo><title>Things To Do for Poi</title>
<devs>
- <!-- in strict alphabetical order -->
<person id="AO" name="Andrew C. Oliver" email="acoliver@apache.org"/>
<person id="GS" name="Glen Stampoultzis" email="poi-user@jakarta.apache.org"/>
<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="RA" name="Ryan Ackley" email="poi-dev@jakarta.apache.org"/>
+ <person id="AS" name="Avik Sengupta" email="poi-dev@jakarta.apache.org"/>
<person id="open" name="POI Developers" email="poi-dev@jakarta.apache.org"/>
+ <person id="Everyone" name="POI Developers" email="poi-dev@jakarta.apache.org"/>
</devs>
<actions priority="high">
- <action context="code" dev="NKB">
+ <action context="code" dev="RA">
Finish HWPF
</action>
<action context="code" dev="GS">
Finish Charts
</action>
- <action context="code" dev="open">
- Finish Formulas.
+ <action context="code" dev="Everyone">
+ Evaluate and bugfix performance code in HEAD
</action>
+
</actions>
<actions priority="medium">
- <action context="code" dev="open">
- Expose functionality in low level records in higher level API
- </action>
<action context="code" dev="open">
Implement more record types.
</action>
Create new adapter object for handling MulBlank, MulRk, Rk
records.
</action>
- <action context="code" dev="open">
- Add a way to copy sheets.
+ <action context="code" dev="AS">
+ Improve formulas (Shared Formulas, Unkown PTG's)
</action>
</actions>
.crumbSeparator
{
}
+#authors {
+ font-size: x-small;
+}
\ No newline at end of file
</xsl:for-each>
</div>
</xsl:if>
- <xsl:call-template name="pdflink"/>
+ <!--xsl:call-template name="pdflink"/-->
</body>
</document>
</xsl:if>