mirror of https://github.com/apache/poi.git
regen'd the site
PR: Obtained from: Submitted by: Reviewed by: git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@352310 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
f4b7198703
commit
e51a924f6d
|
@ -45,7 +45,7 @@
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="historyandfuture.html">Future</a>
|
<a class="s1" href="historyandfuture.html">Future</a>
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="http://sourceforge.net/project/showfiles.php?group_id=32701">Download</a>
|
<a class="s1" href="http://jakarta.apache.org/builds/jakarta-poi/">Download</a>
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="plan/POI10Vision.html">1.0 Vision</a>
|
<a class="s1" href="plan/POI10Vision.html">1.0 Vision</a>
|
||||||
<br>
|
<br>
|
||||||
|
@ -55,6 +55,8 @@
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="changes.html">Changes</a>
|
<a class="s1" href="changes.html">Changes</a>
|
||||||
<br>
|
<br>
|
||||||
|
<a class="s1" href="faq.html">FAQ</a>
|
||||||
|
<br>
|
||||||
<br>
|
<br>
|
||||||
<span class="s1">Sub-Projects</span>
|
<span class="s1">Sub-Projects</span>
|
||||||
<br>
|
<br>
|
||||||
|
@ -129,23 +131,272 @@
|
||||||
<div align="right">
|
<div align="right">
|
||||||
<table cellspacing="0" cellpadding="2" border="0" width="100%">
|
<table cellspacing="0" cellpadding="2" border="0" width="100%">
|
||||||
<tr>
|
<tr>
|
||||||
<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b> 1.5-dev (March 22 2002)</b></font></font></td>
|
<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b> 1.5-dev (03-April-2002)</b></font></font></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<br>
|
<br>
|
||||||
<sl>
|
<sl>
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<icon alt="update" src="images/update.jpg"></icon>
|
<icon alt="update" src="images/update.jpg"></icon>New project build.(NKB)</li>
|
||||||
New project build.
|
|
||||||
(NKB)</li>
|
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<icon alt="update" src="images/update.jpg"></icon>
|
<icon alt="update" src="images/update.jpg"></icon>New project documentation system based on Cocoon.(NKB)</li>
|
||||||
New project documentation system based on Cocoon.
|
|
||||||
(NKB)</li>
|
<li>
|
||||||
|
<icon alt="update" src="images/update.jpg"></icon>Package rename(POI-DEVELOPERS)</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<icon alt="fix" src="images/fix.jpg"></icon>Various bug fixes(POI-DEVELOPERS)</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<icon alt="add" src="images/add.jpg"></icon>Early stages of HSF development (not ready for development)(POI-DEVELOPERS)</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<icon alt="add" src="images/add.jpg"></icon>Initial low level record support for charting (not complete)(POI-DEVELOPERS)</li>
|
||||||
|
|
||||||
|
</sl>
|
||||||
|
</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.1.0 ()</b></font></font></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<br>
|
||||||
|
<sl>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<icon alt="" src="images/.jpg"></icon>Created new event model(POI-DEVELOPERS)</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<icon alt="" src="images/.jpg"></icon>Optimizations made to HSSF including aggregate records for
|
||||||
|
values, rows, etc.(POI-DEVELOPERS)</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<icon alt="" src="images/.jpg"></icon>predictive sizing, offset based writing (instead of lots of
|
||||||
|
array copies)(POI-DEVELOPERS)</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<icon alt="" src="images/.jpg"></icon>minor re-factoring and bug fixes.(POI-DEVELOPERS)</li>
|
||||||
|
|
||||||
|
</sl>
|
||||||
|
</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.0.0 (???)</b></font></font></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<br>
|
||||||
|
<sl>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<icon alt="" src="images/.jpg"></icon>Minor documentation updates.(POI-DEVELOPERS)</li>
|
||||||
|
|
||||||
|
</sl>
|
||||||
|
</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> 0.14.0 (???)</b></font></font></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<br>
|
||||||
|
<sl>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<icon alt="" src="images/.jpg"></icon>Added DataFormat helper class and exposed set and get format
|
||||||
|
on HSSFCellStyle(POI-DEVELOPERS)</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<icon alt="" src="images/.jpg"></icon>Fixed column width apis (unit wise) and various javadoc on
|
||||||
|
the subject(POI-DEVELOPERS)</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<icon alt="" src="images/.jpg"></icon>Fix for Dimensions record (again)... (one of these days I'll
|
||||||
|
write a unit test for this ;-p).(POI-DEVELOPERS)</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<icon alt="" src="images/.jpg"></icon>Some optimization on sheet creation.(POI-DEVELOPERS)</li>
|
||||||
|
|
||||||
|
</sl>
|
||||||
|
</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> 0.13.0 (???)</b></font></font></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<br>
|
||||||
|
<sl>
|
||||||
|
|
||||||
|
|
||||||
|
</sl>
|
||||||
|
</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> 0.12.0 (???)</b></font></font></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<br>
|
||||||
|
<sl>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<icon alt="" src="images/.jpg"></icon>Added MulBlank, Blank, ColInfo(POI-DEVELOPERS)</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<icon alt="" src="images/.jpg"></icon>Added log4j facility and removed all sys.out type logging(POI-DEVELOPERS)</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<icon alt="" src="images/.jpg"></icon>Added support for adding font's, styles and corresponding
|
||||||
|
high level api for styling cells(POI-DEVELOPERS)</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<icon alt="" src="images/.jpg"></icon>added support for changing row height, cell width and default
|
||||||
|
row height/cell width.(POI-DEVELOPERS)</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<icon alt="" src="images/.jpg"></icon>Added fixes for internationalization (UTF-16 should work now
|
||||||
|
from HSSFCell.setStringValue, etc when the encoding is set)(POI-DEVELOPERS)</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<icon alt="" src="images/.jpg"></icon>added support for adding/removing and naming sheets.(POI-DEVELOPERS)</li>
|
||||||
|
|
||||||
|
</sl>
|
||||||
|
</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> 0.11.0 (???)</b></font></font></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<br>
|
||||||
|
<sl>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<icon alt="" src="images/.jpg"></icon>Bugfix release. We were throwing an exception when reading
|
||||||
|
RKRecord objects.(POI-DEVELOPERS)</li>
|
||||||
|
|
||||||
|
</sl>
|
||||||
|
</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> 0.10.0 (???)</b></font></font></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<br>
|
||||||
|
<sl>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<icon alt="" src="images/.jpg"></icon>Got continuation records to work (read/write)(POI-DEVELOPERS)</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<icon alt="" src="images/.jpg"></icon>Added various pre-support for formulas(POI-DEVELOPERS)</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<icon alt="" src="images/.jpg"></icon>Massive API reorganization, repackaging.(POI-DEVELOPERS)</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<icon alt="" src="images/.jpg"></icon>BiffViewer class added for validating HSSF & POI and/or
|
||||||
|
HSSF Output.(POI-DEVELOPERS)</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<icon alt="" src="images/.jpg"></icon>Better API support for modification.(POI-DEVELOPERS)</li>
|
||||||
|
|
||||||
|
</sl>
|
||||||
|
</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> 0.7 (and interim releases) (???)</b></font></font></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<br>
|
||||||
|
<sl>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<icon alt="" src="images/.jpg"></icon>Added encoding flag to high and low level api to use utf-16
|
||||||
|
when needed (HSSFCell.setEncoding())(POI-DEVELOPERS)</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<icon alt="" src="images/.jpg"></icon>added read only support for Label records (which are
|
||||||
|
reinterpreted as LabelSST when written)(POI-DEVELOPERS)</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<icon alt="" src="images/.jpg"></icon>Broken continuation record implementation (oops)(POI-DEVELOPERS)</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<icon alt="" src="images/.jpg"></icon>BiffViewer class added for validating HSSF & POI and/or
|
||||||
|
HSSF Output.(POI-DEVELOPERS)</li>
|
||||||
|
|
||||||
|
</sl>
|
||||||
|
</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> 0.6 (release) (???)</b></font></font></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<br>
|
||||||
|
<sl>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<icon alt="" src="images/.jpg"></icon>Support for read/write and modify.(POI-DEVELOPERS)</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<icon alt="" src="images/.jpg"></icon>Read only support for MulRK records (converted to Number when
|
||||||
|
writing)
|
||||||
|
(POI-DEVELOPERS)</li>
|
||||||
|
|
||||||
</sl>
|
</sl>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="historyandfuture.html">Future</a>
|
<a class="s1" href="historyandfuture.html">Future</a>
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="http://sourceforge.net/project/showfiles.php?group_id=32701">Download</a>
|
<a class="s1" href="http://jakarta.apache.org/builds/jakarta-poi/">Download</a>
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="plan/POI10Vision.html">1.0 Vision</a>
|
<a class="s1" href="plan/POI10Vision.html">1.0 Vision</a>
|
||||||
<br>
|
<br>
|
||||||
|
@ -55,6 +55,8 @@
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="changes.html">Changes</a>
|
<a class="s1" href="changes.html">Changes</a>
|
||||||
<br>
|
<br>
|
||||||
|
<a class="s1" href="faq.html">FAQ</a>
|
||||||
|
<br>
|
||||||
<br>
|
<br>
|
||||||
<span class="s1">Sub-Projects</span>
|
<span class="s1">Sub-Projects</span>
|
||||||
<br>
|
<br>
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="historyandfuture.html">Future</a>
|
<a class="s1" href="historyandfuture.html">Future</a>
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="http://sourceforge.net/project/showfiles.php?group_id=32701">Download</a>
|
<a class="s1" href="http://jakarta.apache.org/builds/jakarta-poi/">Download</a>
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="plan/POI10Vision.html">1.0 Vision</a>
|
<a class="s1" href="plan/POI10Vision.html">1.0 Vision</a>
|
||||||
<br>
|
<br>
|
||||||
|
@ -55,6 +55,8 @@
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="changes.html">Changes</a>
|
<a class="s1" href="changes.html">Changes</a>
|
||||||
<br>
|
<br>
|
||||||
|
<a class="s1" href="faq.html">FAQ</a>
|
||||||
|
<br>
|
||||||
<br>
|
<br>
|
||||||
<span class="s1">Sub-Projects</span>
|
<span class="s1">Sub-Projects</span>
|
||||||
<br>
|
<br>
|
||||||
|
@ -140,6 +142,11 @@
|
||||||
What is the HSSF "eventmodel"?
|
What is the HSSF "eventmodel"?
|
||||||
</jump>
|
</jump>
|
||||||
</li>
|
</li>
|
||||||
|
<li>
|
||||||
|
<jump anchor="faq-2">
|
||||||
|
Why can't read the document I created using Star Office 5.1?
|
||||||
|
</jump>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -167,7 +174,6 @@
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<p align="justify">
|
<p align="justify">
|
||||||
The HSSF eventmodel package is a new API for reading XLS files more efficiently. It does
|
The HSSF eventmodel package is a new API for reading XLS files more efficiently. It does
|
||||||
|
@ -175,12 +181,31 @@
|
||||||
tenfold. It is based on the AWT event model in combination with SAX. If you need read-only
|
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.
|
access to a given XLS file, this is the best way to do it.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<br>
|
||||||
|
<anchor id="faq-2"></anchor>
|
||||||
|
<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>
|
||||||
|
Why can't read the document I created using Star Office 5.1?
|
||||||
|
</b></font></font></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<p align="justify">
|
<p align="justify">
|
||||||
Soon, very soon.
|
Star Office 5.1 writes some records using the older BIFF standard. This causes some problems
|
||||||
|
with POI which supports only BIFF8.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="historyandfuture.html">Future</a>
|
<a class="s1" href="historyandfuture.html">Future</a>
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="http://sourceforge.net/project/showfiles.php?group_id=32701">Download</a>
|
<a class="s1" href="http://jakarta.apache.org/builds/jakarta-poi/">Download</a>
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="plan/POI10Vision.html">1.0 Vision</a>
|
<a class="s1" href="plan/POI10Vision.html">1.0 Vision</a>
|
||||||
<br>
|
<br>
|
||||||
|
@ -55,6 +55,8 @@
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="changes.html">Changes</a>
|
<a class="s1" href="changes.html">Changes</a>
|
||||||
<br>
|
<br>
|
||||||
|
<a class="s1" href="faq.html">FAQ</a>
|
||||||
|
<br>
|
||||||
<br>
|
<br>
|
||||||
<span class="s1">Sub-Projects</span>
|
<span class="s1">Sub-Projects</span>
|
||||||
<br>
|
<br>
|
||||||
|
|
|
@ -44,12 +44,16 @@
|
||||||
<br>
|
<br>
|
||||||
<span class="s1">HSSF</span>
|
<span class="s1">HSSF</span>
|
||||||
<br>
|
<br>
|
||||||
|
<a class="s1" href="quick-guide.html">Quick Guide</a>
|
||||||
|
<br>
|
||||||
<a class="s1" href="how-to.html">HOWTO</a>
|
<a class="s1" href="how-to.html">HOWTO</a>
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="use-case.html">Use Case</a>
|
<a class="s1" href="use-case.html">Use Case</a>
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="diagrams.html">Pictorial Docs</a>
|
<a class="s1" href="diagrams.html">Pictorial Docs</a>
|
||||||
<br>
|
<br>
|
||||||
|
<a class="s1" href="alternatives.html">Alternatives</a>
|
||||||
|
<br>
|
||||||
<br>
|
<br>
|
||||||
<span class="s1">Contributer's Guide</span>
|
<span class="s1">Contributer's Guide</span>
|
||||||
<br>
|
<br>
|
||||||
|
|
|
@ -44,12 +44,16 @@
|
||||||
<br>
|
<br>
|
||||||
<span class="s1">HSSF</span>
|
<span class="s1">HSSF</span>
|
||||||
<br>
|
<br>
|
||||||
|
<a class="s1" href="quick-guide.html">Quick Guide</a>
|
||||||
|
<br>
|
||||||
<a class="s1" href="how-to.html">HOWTO</a>
|
<a class="s1" href="how-to.html">HOWTO</a>
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="use-case.html">Use Case</a>
|
<a class="s1" href="use-case.html">Use Case</a>
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="diagrams.html">Pictorial Docs</a>
|
<a class="s1" href="diagrams.html">Pictorial Docs</a>
|
||||||
<br>
|
<br>
|
||||||
|
<a class="s1" href="alternatives.html">Alternatives</a>
|
||||||
|
<br>
|
||||||
<br>
|
<br>
|
||||||
<span class="s1">Contributer's Guide</span>
|
<span class="s1">Contributer's Guide</span>
|
||||||
<br>
|
<br>
|
||||||
|
@ -112,7 +116,7 @@
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p align="justify">
|
<p align="justify">
|
||||||
Have more? Add a new "bug" to the bug database with [DOCUMENTATION]
|
Have more? Add a new "bug" to the bug database with [DOCUMENTATION]
|
||||||
prefacing the description and a link to the file on an http server
|
prefacing the description and a link to the file on an http server
|
||||||
somewhere. If you don't have your own webserver, then you can email it
|
somewhere. If you don't have your own webserver, then you can email it
|
||||||
to (acoliver at apache dot org) provided its < 5MB. Diagrams should be
|
to (acoliver at apache dot org) provided its < 5MB. Diagrams should be
|
||||||
|
|
|
@ -44,12 +44,16 @@
|
||||||
<br>
|
<br>
|
||||||
<span class="s1">HSSF</span>
|
<span class="s1">HSSF</span>
|
||||||
<br>
|
<br>
|
||||||
|
<a class="s1" href="quick-guide.html">Quick Guide</a>
|
||||||
|
<br>
|
||||||
<a class="s1" href="how-to.html">HOWTO</a>
|
<a class="s1" href="how-to.html">HOWTO</a>
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="use-case.html">Use Case</a>
|
<a class="s1" href="use-case.html">Use Case</a>
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="diagrams.html">Pictorial Docs</a>
|
<a class="s1" href="diagrams.html">Pictorial Docs</a>
|
||||||
<br>
|
<br>
|
||||||
|
<a class="s1" href="alternatives.html">Alternatives</a>
|
||||||
|
<br>
|
||||||
<br>
|
<br>
|
||||||
<span class="s1">Contributer's Guide</span>
|
<span class="s1">Contributer's Guide</span>
|
||||||
<br>
|
<br>
|
||||||
|
@ -97,30 +101,6 @@
|
||||||
<br>
|
<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>Recent revision history</b></font></font></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<br>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
|
|
||||||
<li>12.30.2001 - revised for poi 1.0-final - minor revisions</li>
|
|
||||||
|
|
||||||
<li>01.03.2001 - revised for poi 1.1-devel</li>
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<br>
|
|
||||||
|
|
||||||
|
|
||||||
<div align="right">
|
<div align="right">
|
||||||
<table cellspacing="0" cellpadding="2" border="0" width="99%">
|
<table cellspacing="0" cellpadding="2" border="0" width="99%">
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -130,17 +110,18 @@
|
||||||
<td>
|
<td>
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
<p align="justify">This release of the how-to outlines functionality included in a
|
<p align="justify">This release of the how-to outlines functionality for 1.5.
|
||||||
development build of HSSF. Those looking for information on the
|
Those looking for information on the release edition should
|
||||||
release edition should look in the poi-src for the release or at a
|
look in the poi-src for the release or at a
|
||||||
previous edition in CVS tagged for that release.</p>
|
previous edition in CVS tagged for that release.</p>
|
||||||
|
|
||||||
<p align="justify">
|
<p align="justify">
|
||||||
This release allows numeric and string cell values to be written to
|
This release allows numeric and string cell values to be written to
|
||||||
or read from an XLS file. Also in this release is row and column
|
or read from an XLS file as well as reading and writing dates. Also
|
||||||
sizing, cell styling (bold, italics, borders,etc), and support for
|
in this release is row and column sizing, cell styling (bold,
|
||||||
built-in data formats. New to this release is an event-based API
|
italics, borders,etc), and support for built-in data formats. New
|
||||||
for reading XLS files. It differs greatly from the read/write API
|
to this release 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
|
and is intended for intermediate developers who need a smaller
|
||||||
memory footprint. It will also serve as the basis for the HSSF
|
memory footprint. It will also serve as the basis for the HSSF
|
||||||
Generator.</p>
|
Generator.</p>
|
||||||
|
@ -215,10 +196,8 @@ org.apache.poi.hssf.usermodel.HSSFWorkbook.
|
||||||
|
|
||||||
<p align="justify">Sheets are created by calling createSheet() from an existing
|
<p align="justify">Sheets are created by calling createSheet() from an existing
|
||||||
instance of HSSFWorkbook, the created sheet is automatically added in
|
instance of HSSFWorkbook, the created sheet is automatically added in
|
||||||
sequence to the workbook. In this release there will always be at
|
sequence to the workbook. Sheets do not in themselves have a sheet
|
||||||
least three sheets generated regardless of whether you have three
|
name (the tab at the bottom); you set
|
||||||
sheets. More than three sheets is probably not supported. Sheets do
|
|
||||||
not in themselves have a sheet name (the tab at the bottom); you set
|
|
||||||
the name associated with a sheet by calling
|
the name associated with a sheet by calling
|
||||||
HSSFWorkbook.setSheetName(sheetindex,"SheetName").</p>
|
HSSFWorkbook.setSheetName(sheetindex,"SheetName").</p>
|
||||||
|
|
||||||
|
@ -263,36 +242,38 @@ org.apache.poi.hssf.dev.HSSF test class):</p>
|
||||||
<table cellspacing="2" cellpadding="2" border="1">
|
<table cellspacing="2" cellpadding="2" border="1">
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<pre> // create a new file
|
<pre> short rownum;
|
||||||
FileOutputStream out = new FileOutputStream("/home/me/myfile.xls");
|
|
||||||
|
// create a new file
|
||||||
|
FileOutputStream out = new FileOutputStream("workbook.xls");
|
||||||
// create a new workbook
|
// create a new workbook
|
||||||
HSSFWorkbook wb = new HSSFWorkbook();
|
HSSFWorkbook wb = new HSSFWorkbook();
|
||||||
// create a new sheet
|
// create a new sheet
|
||||||
HSSFSheet s = wb.createSheet();
|
HSSFSheet s = wb.createSheet();
|
||||||
// declare a row object reference
|
// declare a row object reference
|
||||||
HSSFRow r = null;
|
HSSFRow r = null;
|
||||||
// declare a cell object reference
|
// declare a cell object reference
|
||||||
HSSFCell c = null;
|
HSSFCell c = null;
|
||||||
// create 3 cell styles
|
// create 3 cell styles
|
||||||
HSSFCellStyle cs = wb.createCellStyle();
|
HSSFCellStyle cs = wb.createCellStyle();
|
||||||
HSSFCellStyle cs2 = wb.createCellStyle();
|
HSSFCellStyle cs2 = wb.createCellStyle();
|
||||||
HSSFCellStyle cs3 = wb.createCellStyle();
|
HSSFCellStyle cs3 = wb.createCellStyle();
|
||||||
// create 2 fonts objects
|
// create 2 fonts objects
|
||||||
HSSFFont f = wb.createFont();
|
HSSFFont f = wb.createFont();
|
||||||
HSSFFont f2 = wb.createFont();
|
HSSFFont f2 = wb.createFont();
|
||||||
|
|
||||||
//set font 1 to 12 point type
|
//set font 1 to 12 point type
|
||||||
f.setFontHeightInPoints((short)12);
|
f.setFontHeightInPoints((short) 12);
|
||||||
//make it red
|
//make it red
|
||||||
f.setColor((short)0xA);
|
f.setColor((short) HSSFCellStyle.RED);
|
||||||
// make it bold
|
// make it bold
|
||||||
//arial is the default font
|
//arial is the default font
|
||||||
f.setBoldweight(f.BOLDWEIGHT_BOLD);
|
f.setBoldweight(f.BOLDWEIGHT_BOLD);
|
||||||
|
|
||||||
//set font 2 to 10 point type
|
//set font 2 to 10 point type
|
||||||
f2.setFontHeightInPoints((short)10);
|
f2.setFontHeightInPoints((short) 10);
|
||||||
//make it the color at palette index 0xf (white)
|
//make it the color at palette index 0xf (white)
|
||||||
f2.setColor((short)0xf);
|
f2.setColor((short) HSSFCellStyle.WHITE);
|
||||||
//make it bold
|
//make it bold
|
||||||
f2.setBoldweight(f2.BOLDWEIGHT_BOLD);
|
f2.setBoldweight(f2.BOLDWEIGHT_BOLD);
|
||||||
|
|
||||||
|
@ -304,53 +285,56 @@ org.apache.poi.hssf.dev.HSSF test class):</p>
|
||||||
//set a thin border
|
//set a thin border
|
||||||
cs2.setBorderBottom(cs2.BORDER_THIN);
|
cs2.setBorderBottom(cs2.BORDER_THIN);
|
||||||
//fill w fg fill color
|
//fill w fg fill color
|
||||||
cs2.setFillPattern((short)1);
|
cs2.setFillPattern((short) HSSFCellStyle.SOLID_FOREGROUND);
|
||||||
// set foreground fill to red
|
// set foreground fill to red
|
||||||
cs2.setFillForegroundColor((short)0xA);
|
cs2.setFillForegroundColor((short) HSSFCellStyle.RED);
|
||||||
|
|
||||||
// set the font
|
// set the font
|
||||||
cs2.setFont(f2);
|
cs2.setFont(f2);
|
||||||
|
|
||||||
// set the sheet name to HSSF Test
|
// set the sheet name to HSSF Test
|
||||||
wb.setSheetName(0,"HSSF Test");
|
wb.setSheetName(0, "HSSF Test");
|
||||||
// create a sheet with 300 rows (0-299)
|
// create a sheet with 300 rows (0-299)
|
||||||
for (rownum = (short)0; rownum < 300; rownum++)
|
for (rownum = (short) 0; rownum < 300; rownum++)
|
||||||
{
|
{
|
||||||
// create a row
|
// create a row
|
||||||
r = s.createRow(rownum);
|
r = s.createRow(rownum);
|
||||||
// on every other row
|
// on every other row
|
||||||
if ( (rownum % 2) == 0) {
|
if ((rownum % 2) == 0)
|
||||||
|
{
|
||||||
// make the row height bigger (in twips - 1/20 of a point)
|
// make the row height bigger (in twips - 1/20 of a point)
|
||||||
r.setHeight((short)0x249);
|
r.setHeight((short) 0x249);
|
||||||
}
|
}
|
||||||
|
|
||||||
//r.setRowNum(( short ) rownum);
|
//r.setRowNum(( short ) rownum);
|
||||||
// create 50 cells (0-49) (the += 2 becomes apparent later
|
// create 50 cells (0-49) (the += 2 becomes apparent later
|
||||||
for (short cellnum = (short)0; cellnum < 50; cellnum += 2)
|
for (short cellnum = (short) 0; cellnum < 50; cellnum += 2)
|
||||||
{
|
{
|
||||||
// create a numeric cell
|
// create a numeric cell
|
||||||
c = r.createCell(cellnum,HSSFCell.CELL_TYPE_NUMERIC);
|
c = r.createCell(cellnum);
|
||||||
// do some goofy math to demonstrate decimals
|
// do some goofy math to demonstrate decimals
|
||||||
c.setCellValue(rownum * 10000 + cellnum
|
c.setCellValue(rownum * 10000 + cellnum
|
||||||
+ ((( double ) rownum / 1000)
|
+ (((double) rownum / 1000)
|
||||||
+ (( double ) cellnum / 10000)));
|
+ ((double) cellnum / 10000)));
|
||||||
|
|
||||||
// on every other row
|
// on every other row
|
||||||
if ( (rownum % 2) == 0) {
|
if ((rownum % 2) == 0)
|
||||||
|
{
|
||||||
// set this cell to the first cell style we defined
|
// set this cell to the first cell style we defined
|
||||||
c.setCellStyle(cs);
|
c.setCellStyle(cs);
|
||||||
}
|
}
|
||||||
|
|
||||||
// create a string cell (see why += 2 in the
|
// create a string cell (see why += 2 in the
|
||||||
c = r.createCell((short)(cellnum+1),HSSFCell.CELL_TYPE_STRING);
|
c = r.createCell((short) (cellnum + 1));
|
||||||
|
|
||||||
// set the cell's string value to "TEST"
|
// set the cell's string value to "TEST"
|
||||||
c.setCellValue("TEST");
|
c.setCellValue("TEST");
|
||||||
// make this column a bit wider
|
// make this column a bit wider
|
||||||
s.setColumnWidth((short)(cellnum+1), (short)((50*8) / ((double)1/20)) );
|
s.setColumnWidth((short) (cellnum + 1), (short) ((50 * 8) / ((double) 1 / 20)));
|
||||||
|
|
||||||
// on every other row
|
// on every other row
|
||||||
if ( (rownum % 2) == 0) {
|
if ((rownum % 2) == 0)
|
||||||
|
{
|
||||||
// set this to the white on red cell style
|
// set this to the white on red cell style
|
||||||
// we defined above
|
// we defined above
|
||||||
c.setCellStyle(cs2);
|
c.setCellStyle(cs2);
|
||||||
|
@ -371,9 +355,10 @@ org.apache.poi.hssf.dev.HSSF test class):</p>
|
||||||
cs3.setBorderBottom(cs3.BORDER_THICK);
|
cs3.setBorderBottom(cs3.BORDER_THICK);
|
||||||
|
|
||||||
//create 50 cells
|
//create 50 cells
|
||||||
for (short cellnum = (short)0; cellnum < 50; cellnum++) {
|
for (short cellnum = (short) 0; cellnum < 50; cellnum++)
|
||||||
|
{
|
||||||
//create a blank type cell (no value)
|
//create a blank type cell (no value)
|
||||||
c = r.createCell(cellnum,HSSFCell.CELL_TYPE_BLANK);
|
c = r.createCell(cellnum);
|
||||||
// set it to the thick black border style
|
// set it to the thick black border style
|
||||||
c.setCellStyle(cs3);
|
c.setCellStyle(cs3);
|
||||||
}
|
}
|
||||||
|
@ -384,7 +369,7 @@ org.apache.poi.hssf.dev.HSSF test class):</p>
|
||||||
// demonstrate adding/naming and deleting a sheet
|
// demonstrate adding/naming and deleting a sheet
|
||||||
// create a sheet, set its title then delete it
|
// create a sheet, set its title then delete it
|
||||||
s = wb.createSheet();
|
s = wb.createSheet();
|
||||||
wb.setSheetName(1,"DeletedSheet");
|
wb.setSheetName(1, "DeletedSheet");
|
||||||
wb.removeSheetAt(1);
|
wb.removeSheetAt(1);
|
||||||
//end deleted sheet
|
//end deleted sheet
|
||||||
|
|
||||||
|
@ -430,7 +415,7 @@ would if creating a new xls. When you are done modifying cells just
|
||||||
call workbook.write(outputstream) just as you did above.</p>
|
call workbook.write(outputstream) just as you did above.</p>
|
||||||
|
|
||||||
<p align="justify">An example of this can be seen in
|
<p align="justify">An example of this can be seen in
|
||||||
<a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/poi/poi/production/src/net/sourceforge/poi/hssf/dev/HSSF.java?rev=HEAD&content-type=text/plain">org.apache.poi.hssf.dev.HSSF</a>.</p>
|
<a href="http://cvs.apache.org/viewcvs/~checkout~/jakarta-poi/src/java/org/apache/poi/hssf/dev/HSSF.java?rev=1.1">org.apache.poi.hssf.dev.HSSF</a>.</p>
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -498,118 +483,95 @@ comments:</p>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<pre>
|
<pre>
|
||||||
//this non-public class implements the required interface
|
/**
|
||||||
// we construct it with a copy of its container class...this is cheap but effective
|
* This example shows how to use the event API for reading a file.
|
||||||
class EFHSSFListener implements HSSFListener {
|
*/
|
||||||
EFHSSF efhssf;
|
public class EventExample
|
||||||
public EFHSSFListener(EFHSSF efhssf) {
|
implements HSSFListener
|
||||||
this.efhssf = efhssf;
|
{
|
||||||
|
private SSTRecord sstrec;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method listens for incoming records and handles them as required.
|
||||||
|
* @param record The record that was found while reading.
|
||||||
|
*/
|
||||||
|
public void processRecord(Record record)
|
||||||
|
{
|
||||||
|
switch (record.getSid())
|
||||||
|
{
|
||||||
|
// the BOFRecord can represent either the beginning of a sheet or the workbook
|
||||||
|
case BOFRecord.sid:
|
||||||
|
BOFRecord bof = (BOFRecord) record;
|
||||||
|
if (bof.getType() == bof.TYPE_WORKBOOK)
|
||||||
|
{
|
||||||
|
System.out.println("Encountered workbook");
|
||||||
|
// assigned to the class level member
|
||||||
|
} else if (bof.getType() == bof.TYPE_WORKSHEET)
|
||||||
|
{
|
||||||
|
System.out.println("Encountered sheet reference");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case BoundSheetRecord.sid:
|
||||||
|
BoundSheetRecord bsr = (BoundSheetRecord) record;
|
||||||
|
System.out.println("New sheet named: " + bsr.getSheetname());
|
||||||
|
break;
|
||||||
|
case RowRecord.sid:
|
||||||
|
RowRecord rowrec = (RowRecord) record;
|
||||||
|
System.out.println("Row found, first column at "
|
||||||
|
+ rowrec.getFirstCol() + " last column at " + rowrec.getLastCol());
|
||||||
|
break;
|
||||||
|
case NumberRecord.sid:
|
||||||
|
NumberRecord numrec = (NumberRecord) record;
|
||||||
|
System.out.println("Cell found with value " + numrec.getValue()
|
||||||
|
+ " at row " + numrec.getRow() + " and column " + numrec.getColumn());
|
||||||
|
break;
|
||||||
|
// SSTRecords store a array of unique strings used in Excel.
|
||||||
|
case SSTRecord.sid:
|
||||||
|
sstrec = (SSTRecord) record;
|
||||||
|
for (int k = 0; k < sstrec.getNumUniqueStrings(); k++)
|
||||||
|
{
|
||||||
|
System.out.println("String table value " + k + " = " + sstrec.getString(k));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case LabelSSTRecord.sid:
|
||||||
|
LabelSSTRecord lrec = (LabelSSTRecord) record;
|
||||||
|
System.out.println("String cell found with value "
|
||||||
|
+ sstrec.getString(lrec.getSSTIndex()));
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// we just use this as an adapter so we pass the record to the method in the container class
|
/**
|
||||||
public void processRecord(Record record) {
|
* Read an excel file and spit out what we find.
|
||||||
efhssf.recordHandler(record);
|
*
|
||||||
}
|
* @param args Expect one argument that is the file to read.
|
||||||
}
|
* @throws IOException When there is an error processing the file.
|
||||||
|
*/
|
||||||
//here is an excerpt of the main line execution code from EFHSSF
|
public static void main(String[] args) throws IOException
|
||||||
public void run() throws IOException {
|
{
|
||||||
// create a new file input stream with the input file specified
|
// create a new file input stream with the input file specified
|
||||||
// at the command line
|
// at the command line
|
||||||
FileInputStream fin = new FileInputStream(infile);
|
FileInputStream fin = new FileInputStream(args[0]);
|
||||||
// create a new org.apache.poi.poifs.filesystem.Filesystem
|
// create a new org.apache.poi.poifs.filesystem.Filesystem
|
||||||
Filesystem poifs = new Filesystem(fin);
|
POIFSFileSystem poifs = new POIFSFileSystem(fin);
|
||||||
// get the Workbook (excel part) stream in a InputStream
|
// get the Workbook (excel part) stream in a InputStream
|
||||||
InputStream din = poifs.createDocumentInputStream("Workbook");
|
InputStream din = poifs.createDocumentInputStream("Workbook");
|
||||||
// construct out HSSFRequest object
|
// construct out HSSFRequest object
|
||||||
HSSFRequest req = new HSSFRequest();
|
HSSFRequest req = new HSSFRequest();
|
||||||
// lazy listen for ALL records with the listener shown above
|
// lazy listen for ALL records with the listener shown above
|
||||||
req.addListenerForAllRecords(new EFHSSFListener(this));
|
req.addListenerForAllRecords(new EventExample());
|
||||||
// create our event factory
|
// create our event factory
|
||||||
HSSFEventFactory factory = new HSSFEventFactory();
|
HSSFEventFactory factory = new HSSFEventFactory();
|
||||||
// process our events based on the document input stream
|
// process our events based on the document input stream
|
||||||
factory.processEvents(req,din);
|
factory.processEvents(req, din);
|
||||||
// once all the events are processed close our file input stream
|
// once all the events are processed close our file input stream
|
||||||
fin.close();
|
fin.close();
|
||||||
// and our document input stream (don't want to leak these!)
|
// and our document input stream (don't want to leak these!)
|
||||||
din.close();
|
din.close();
|
||||||
// create a new output stream from filename specified at the command line
|
|
||||||
FileOutputStream fout = new FileOutputStream(outfile);
|
|
||||||
// write the HSSFWorkbook (class member) we created out to the file.
|
|
||||||
workbook.write(fout);
|
|
||||||
// close our file output stream
|
|
||||||
fout.close();
|
|
||||||
// print done. Go enjoy your copy of the file.
|
|
||||||
System.out.println("done.");
|
System.out.println("done.");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
</pre>
|
||||||
//here is an excerpt of the recordHander called from our listener.
|
|
||||||
// the record handler in the container class is intent on just rewriting the file
|
|
||||||
public void recordHandler(Record record) {
|
|
||||||
HSSFRow row = null;
|
|
||||||
HSSFCell cell = null;
|
|
||||||
int sheetnum = -1;
|
|
||||||
switch (record.getSid()) {
|
|
||||||
// the BOFRecord can represent either the beginning of a sheet or the workbook
|
|
||||||
case BOFRecord.sid:
|
|
||||||
BOFRecord bof = (BOFRecord) record;
|
|
||||||
if (bof.getType() == bof.TYPE_WORKBOOK) {
|
|
||||||
//if its the workbook then create a new HSSFWorkbook
|
|
||||||
workbook = new HSSFWorkbook();
|
|
||||||
// assigned to the class level member
|
|
||||||
} else if (bof.getType() == bof.TYPE_WORKSHEET) {
|
|
||||||
sheetnum++;
|
|
||||||
// otherwise if its a sheet increment the sheetnum index
|
|
||||||
cursheet = workbook.getSheetAt(sheetnum);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
// get the sheet at that index and assign it to method variable
|
|
||||||
// cursheet (the sheet was created when the BoundSheetRecord record occurred
|
|
||||||
case BoundSheetRecord.sid:
|
|
||||||
// when we find a boundsheet record create a new sheet in the workbook and
|
|
||||||
BoundSheetRecord bsr = (BoundSheetRecord) record;
|
|
||||||
// assign it the name specified in this record.
|
|
||||||
workbook.createSheet(bsr.getSheetname());
|
|
||||||
break;
|
|
||||||
// if this is a row record add the row to the current sheet
|
|
||||||
case RowRecord.sid:
|
|
||||||
RowRecord rowrec = (RowRecord) record;
|
|
||||||
// assign our row the rownumber specified in the Row Record
|
|
||||||
cursheet.createRow(rowrec.getRowNumber());
|
|
||||||
break;
|
|
||||||
// if this is a NumberRecord (RKRecord, MulRKRecord get converted to Number
|
|
||||||
// records) then get the row specified in the number record from the current
|
|
||||||
// sheet. With this instance of HSSFRow create a new HSSFCell with the column
|
|
||||||
// number specified in the record and assign it type NUMERIC
|
|
||||||
case NumberRecord.sid:
|
|
||||||
NumberRecord numrec = (NumberRecord) record;
|
|
||||||
row = cursheet.getRow(numrec.getRow());
|
|
||||||
cell = row.createCell(numrec.getColumn(),HSSFCell.CELL_TYPE_NUMERIC);
|
|
||||||
// set the HSSFCell's value to the value stored in the NumberRecord
|
|
||||||
cell.setCellValue(numrec.getValue());
|
|
||||||
break;
|
|
||||||
// if this is the SSTRecord (occurs once in the workbook) then add all of its
|
|
||||||
// strings to our workbook. We'll look them up later when we add LABELSST records.
|
|
||||||
case SSTRecord.sid:
|
|
||||||
SSTRecord sstrec = (SSTRecord) record;
|
|
||||||
for (int k = 0; k < sstrec.getNumUniqueStrings(); k++) {
|
|
||||||
workbook.addSSTString(sstrec.getString(k));
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
// if this is a LabelSSTRecord then get the row specified in the LabelSSTRecord from
|
|
||||||
// the current sheet. With this instance of HSSFRow create a new HSSFCell with the
|
|
||||||
// column nubmer specified in the record and set the type to type STRING.
|
|
||||||
case LabelSSTRecord.sid:
|
|
||||||
LabelSSTRecord lrec = (LabelSSTRecord) record;
|
|
||||||
row = cursheet.getRow(lrec.getRow());
|
|
||||||
cell = row.createCell(lrec.getColumn(),HSSFCell.CELL_TYPE_STRING);
|
|
||||||
//set the cells value to the string in our workbook object (added in the case
|
|
||||||
//above) at the index specified by the LabelSSTRecord.
|
|
||||||
cell.setCellValue(workbook.getSSTString(lrec.getSSTIndex()));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}</pre>
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
@ -683,15 +645,19 @@ export CLASSPATH=$CLASSPATH:$HSSFDIR/hssf.jar:$HSSFDIR/poi-poifs.jar:$HSSFDIR/po
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
<p align="justify"></p>
|
||||||
|
|
||||||
<p align="justify">This should generate a test sheet in your home directory called <code>"myxls.xls"</code>. </p>
|
<p align="justify">This should generate a test sheet in your home directory called <code>"myxls.xls"</code>. </p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
|
|
||||||
<li>Type:
|
<li>Type:
|
||||||
<code>java org.apache.poi.hssf.dev.HSSF ~/input.xls output.xls
|
<code>java org.apache.poi.hssf.dev.HSSF ~/input.xls output.xls</code>
|
||||||
|
|
||||||
|
<p align="justify">
|
||||||
This is the read/write/modify test. It reads in the spreadsheet, modifies a cell, and writes it back out.
|
This is the read/write/modify test. It reads in the spreadsheet, modifies a cell, and writes it back out.
|
||||||
Failing this test is not necessarily a bad thing. If HSSF tries to modify a non-existant sheet then this will
|
Failing this test is not necessarily a bad thing. If HSSF tries to modify a non-existant sheet then this will
|
||||||
most likely fail. No big deal. </code>
|
most likely fail. No big deal. </p>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -711,44 +677,61 @@ most likely fail. No big deal. </code>
|
||||||
<td>
|
<td>
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
<p align="justify">HSSF now has a logging facility (using log4j - thanks jakarta!)
|
<p align="justify">HSSF now has a logging facility (using
|
||||||
|
<a href="http://jakarta.apache.org/commons/logging.html">commons logging</a>)
|
||||||
that will record massive amounts of debugging information. Its mostly
|
that will record massive amounts of debugging information. Its mostly
|
||||||
useful to us hssf-developing geeks, but might be useful in tracking
|
useful to us hssf-developing geeks, but might be useful in tracking
|
||||||
down problems. By default we turn this off because it results in
|
down problems.
|
||||||
unnecessary performance degradation when fully turned on! Using it is
|
|
||||||
simple. You need an hssflog.properties file (example listed below,
|
|
||||||
those familiar with log4j can customize this as they wish). You can
|
|
||||||
either put this in your home directory (or wherever the default
|
|
||||||
directory is on windows which I suspect is c:\windows) or you can put
|
|
||||||
it wherever you want and set the HSSF.log to the path ending in "/"
|
|
||||||
(or "\\" on windows). If for any reason HSSF can't find it,
|
|
||||||
you get no logging. If the log configuration dictates the logging be
|
|
||||||
turned off, you get no logging.</p>
|
|
||||||
|
|
||||||
<p align="justify">Here is an example hssflog.properties (actually its not an example
|
|
||||||
its mine):
|
|
||||||
<div align="center">
|
|
||||||
<table cellspacing="2" cellpadding="2" border="1">
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<pre># Set root category priority to DEBUG and its only appender to A1.
|
|
||||||
log4j.rootCategory=DEBUG, A1
|
|
||||||
|
|
||||||
# A1 is set to be a ConsoleAppender.
|
|
||||||
log4j.appender.A1=org.apache.log4j.ConsoleAppender
|
|
||||||
|
|
||||||
# A1 uses PatternLayout.
|
|
||||||
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
|
|
||||||
log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
|
|
||||||
#uncomment below to change the level to WARN to disable debugging information. This effectively turns off logging.
|
|
||||||
#the default level is DEBUG (and changing it to DEBUG is the basically the same thing as leaving it commented out).
|
|
||||||
#log4j.category.org.apache.poi=WARN</pre>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
<p align="justify">So Why use commons logging rather than log4j? Well the following discussion from
|
||||||
|
the jakarta-general mailing list sums it up pretty well. (Thanks Morgan)
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p align="justify">
|
||||||
|
<em>Here's the problem, as I see it.</em>
|
||||||
|
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p align="justify">
|
||||||
|
<em>Suppose Commons component A decides to adopt Log4J, Commons component B
|
||||||
|
decides to adopt LogKit, and Commons component C adopts JDK1.4 logging.
|
||||||
|
They will all minimally function with the right jars in the classpath.
|
||||||
|
However you (the end-user) are left with maintaining configuration for 3
|
||||||
|
different logging APIs, which is tedious at best. When you take into
|
||||||
|
account cool features like variable log levels, Log4J appenders and the
|
||||||
|
like, you're pretty much guaranteed to swallow up useful configuration
|
||||||
|
options because sophisticated configurations are too difficult to maintain
|
||||||
|
over mutiple logging implementations.</em>
|
||||||
|
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p align="justify">
|
||||||
|
|
||||||
|
<em>Contrarily, if all three Commons components use a logging facade, you can
|
||||||
|
focus all your configuration efforts on one logging implementation. Sure,
|
||||||
|
there is a trade-off; you don't have access to all the features, and the
|
||||||
|
interface between the facade and the implementation must be maintained. But
|
||||||
|
the benefits are not just political; they potentially make the end-users
|
||||||
|
configuration much easier.</em>
|
||||||
|
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p align="justify">
|
||||||
|
<em>Even if all Commons components used the same logging implementation (Log4J
|
||||||
|
for example), other projects in Jakarta-land may choose otherwise. If you
|
||||||
|
add enough Jakarta projects to your environment, you eventually end up with
|
||||||
|
the scenario described above. It's a worthwhile effort to attempt a logging
|
||||||
|
solution that plays well with the Jakarta community at large. I think in
|
||||||
|
many cases the Commons Logging component can fill that role.</em>
|
||||||
|
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p align="justify">
|
||||||
|
Refer to the commons logging package level javadoc for more information concerning how to
|
||||||
|
<a href="http://jakarta.apache.org/commons/logging/api/index.html">configure commons logging.</a>
|
||||||
|
|
||||||
|
</p>
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -800,7 +783,7 @@ matching "on" exactly.</p>
|
||||||
|
|
||||||
<p align="justify">In the next release cycle we'll also have something called a
|
<p align="justify">In the next release cycle we'll also have something called a
|
||||||
FormulaViewer. The class is already there, but its not very useful
|
FormulaViewer. The class is already there, but its not very useful
|
||||||
yet. When it does something, I'll document it.</p>
|
yet. When it does something, we'll document it.</p>
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
|
@ -839,300 +822,14 @@ As a general principal, HSSF's goal is to support HSSF-Serializer
|
||||||
are you using HSSF/POIFS? How would you like to use it? What features
|
are you using HSSF/POIFS? How would you like to use it? What features
|
||||||
are most important first?
|
are most important first?
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p align="justify">This release is near feature freeze for the 1.0-beta. All
|
|
||||||
priorities refer to things we'll be adding in the next release
|
|
||||||
(probably 2.0). The 1.0-beta is scheduled for release in the mid to
|
|
||||||
late December timeframe. While it's way to early to say when the
|
|
||||||
2.0-beta will be released, my "gut" feeling is to aim for
|
|
||||||
around March and have at least the first three items.</p>
|
|
||||||
|
|
||||||
<p align="justify">Current list of priorities:</p>
|
|
||||||
|
|
||||||
<ol>
|
|
||||||
|
|
||||||
<li>Helper class for fonts, etc.</li>
|
|
||||||
|
|
||||||
<li>Add Formulas.</li>
|
|
||||||
|
|
||||||
<li>Implement more record types (for other things ... not sure
|
|
||||||
what this will mean yet).</li>
|
|
||||||
|
|
||||||
<li>Add more dummy checks (for when API user's do things they
|
|
||||||
"can't" do)</li>
|
|
||||||
|
|
||||||
<li>Add support for embedded graphics and stuff like that.</li>
|
|
||||||
|
|
||||||
<li>Create new adapter object for handling MulBlank, MulRk, Rk
|
|
||||||
records.</li>
|
|
||||||
|
|
||||||
</ol>
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
<div align="right">
|
|
||||||
<table cellspacing="0" cellpadding="2" border="0" width="98%">
|
|
||||||
<tr>
|
|
||||||
<td bgcolor="#525D76"><font color="#ffffff" size="-1"><font face="Arial,sans-serif"><b>Changes</b></font></font></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<br>
|
|
||||||
|
|
||||||
<div align="right">
|
|
||||||
<table cellspacing="0" cellpadding="2" border="0" width="97%">
|
|
||||||
<tr>
|
|
||||||
<td bgcolor="#525D76"><font color="#ffffff" size="-2"><font face="Arial,sans-serif"><b>1.1.0</b></font></font></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<br>
|
|
||||||
|
|
||||||
|
|
||||||
<ol>
|
|
||||||
|
|
||||||
<li>Created new event model</li>
|
|
||||||
|
|
||||||
<li>Optimizations made to HSSF including aggregate records for
|
|
||||||
values, rows, etc.</li>
|
|
||||||
|
|
||||||
<li>predictive sizing, offset based writing (instead of lots of
|
|
||||||
array copies)</li>
|
|
||||||
|
|
||||||
<li>minor re-factoring and bug fixes.</li>
|
|
||||||
|
|
||||||
</ol>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<br>
|
|
||||||
|
|
||||||
<div align="right">
|
|
||||||
<table cellspacing="0" cellpadding="2" border="0" width="97%">
|
|
||||||
<tr>
|
|
||||||
<td bgcolor="#525D76"><font color="#ffffff" size="-2"><font face="Arial,sans-serif"><b>1.0.0</b></font></font></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<br>
|
|
||||||
|
|
||||||
|
|
||||||
<ol>
|
|
||||||
|
|
||||||
<li>Minor documentation updates.</li>
|
|
||||||
|
|
||||||
</ol>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<br>
|
|
||||||
|
|
||||||
<div align="right">
|
|
||||||
<table cellspacing="0" cellpadding="2" border="0" width="97%">
|
|
||||||
<tr>
|
|
||||||
<td bgcolor="#525D76"><font color="#ffffff" size="-2"><font face="Arial,sans-serif"><b>0.14.0</b></font></font></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<br>
|
|
||||||
|
|
||||||
<ol>
|
|
||||||
|
|
||||||
<ol>
|
|
||||||
|
|
||||||
<li>Added DataFormat helper class and exposed set and get format
|
|
||||||
on HSSFCellStyle</li>
|
|
||||||
|
|
||||||
<li>Fixed column width apis (unit wise) and various javadoc on
|
|
||||||
the subject</li>
|
|
||||||
|
|
||||||
<li>Fix for Dimensions record (again)... (one of these days I'll
|
|
||||||
write a unit test for this ;-p).</li>
|
|
||||||
|
|
||||||
<li>Some optimization on sheet creation.</li>
|
|
||||||
|
|
||||||
</ol>
|
|
||||||
|
|
||||||
</ol>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<br>
|
|
||||||
|
|
||||||
<div align="right">
|
|
||||||
<table cellspacing="0" cellpadding="2" border="0" width="97%">
|
|
||||||
<tr>
|
|
||||||
<td bgcolor="#525D76"><font color="#ffffff" size="-2"><font face="Arial,sans-serif"><b>0.13.0</b></font></font></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<br>
|
|
||||||
|
|
||||||
<p align="justify">- NO WAY!</p>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<br>
|
|
||||||
|
|
||||||
<div align="right">
|
|
||||||
<table cellspacing="0" cellpadding="2" border="0" width="97%">
|
|
||||||
<tr>
|
|
||||||
<td bgcolor="#525D76"><font color="#ffffff" size="-2"><font face="Arial,sans-serif"><b>0.12.0</b></font></font></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<br>
|
|
||||||
|
|
||||||
<ol>
|
|
||||||
|
|
||||||
<li>Added MulBlank, Blank, ColInfo</li>
|
|
||||||
|
|
||||||
<li>Added log4j facility and removed all sys.out type logging</li>
|
|
||||||
|
|
||||||
<li>Added support for adding font's, styles and corresponding
|
|
||||||
high level api for styling cells</li>
|
|
||||||
|
|
||||||
<li>added support for changing row height, cell width and default
|
|
||||||
row height/cell width.</li>
|
|
||||||
|
|
||||||
<li>Added fixes for internationalization (UTF-16 should work now
|
|
||||||
from HSSFCell.setStringValue, etc when the encoding is set)</li>
|
|
||||||
|
|
||||||
<li>added support for adding/removing and naming sheets.</li>
|
|
||||||
|
|
||||||
</ol>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<br>
|
|
||||||
|
|
||||||
<div align="right">
|
|
||||||
<table cellspacing="0" cellpadding="2" border="0" width="97%">
|
|
||||||
<tr>
|
|
||||||
<td bgcolor="#525D76"><font color="#ffffff" size="-2"><font face="Arial,sans-serif"><b>0.11.0</b></font></font></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<br>
|
|
||||||
|
|
||||||
<ol>
|
|
||||||
|
|
||||||
<li>Bugfix release. We were throwing an exception when reading
|
|
||||||
RKRecord objects.</li>
|
|
||||||
|
|
||||||
</ol>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<br>
|
|
||||||
|
|
||||||
<div align="right">
|
|
||||||
<table cellspacing="0" cellpadding="2" border="0" width="97%">
|
|
||||||
<tr>
|
|
||||||
<td bgcolor="#525D76"><font color="#ffffff" size="-2"><font face="Arial,sans-serif"><b>0.10.0</b></font></font></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<br>
|
|
||||||
|
|
||||||
<ol>
|
|
||||||
|
|
||||||
<li>Got continuation records to work (read/write)</li>
|
|
||||||
|
|
||||||
<li>Added various pre-support for formulas</li>
|
|
||||||
|
|
||||||
<li>Massive API reorganization, repackaging.</li>
|
|
||||||
|
|
||||||
<li>BiffViewer class added for validating HSSF & POI and/or
|
|
||||||
HSSF Output.</li>
|
|
||||||
|
|
||||||
<li>Better API support for modification.</li>
|
|
||||||
|
|
||||||
</ol>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<br>
|
|
||||||
|
|
||||||
<div align="right">
|
|
||||||
<table cellspacing="0" cellpadding="2" border="0" width="97%">
|
|
||||||
<tr>
|
|
||||||
<td bgcolor="#525D76"><font color="#ffffff" size="-2"><font face="Arial,sans-serif"><b>0.7 (and interim releases)</b></font></font></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<br>
|
|
||||||
|
|
||||||
<ol>
|
|
||||||
|
|
||||||
<li>Added encoding flag to high and low level api to use utf-16
|
|
||||||
when needed (HSSFCell.setEncoding())</li>
|
|
||||||
|
|
||||||
<li>added read only support for Label records (which are
|
|
||||||
reinterpreted as LabelSST when written)</li>
|
|
||||||
|
|
||||||
<li>Broken continuation record implementation (oops)</li>
|
|
||||||
|
|
||||||
<li>BiffViewer class added for validating HSSF & POI and/or
|
|
||||||
HSSF Output.</li>
|
|
||||||
|
|
||||||
</ol>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<br>
|
|
||||||
|
|
||||||
<div align="right">
|
|
||||||
<table cellspacing="0" cellpadding="2" border="0" width="97%">
|
|
||||||
<tr>
|
|
||||||
<td bgcolor="#525D76"><font color="#ffffff" size="-2"><font face="Arial,sans-serif"><b>0.6 (release)</b></font></font></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<br>
|
|
||||||
|
|
||||||
<ol>
|
|
||||||
|
|
||||||
<li>Support for read/write and modify.</li>
|
|
||||||
|
|
||||||
<li>Read only support for MulRK records (converted to Number when
|
|
||||||
writing)
|
|
||||||
</li>
|
|
||||||
|
|
||||||
</ol>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<br>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<br>
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
@ -44,12 +44,16 @@
|
||||||
<br>
|
<br>
|
||||||
<span class="s1">HSSF</span>
|
<span class="s1">HSSF</span>
|
||||||
<br>
|
<br>
|
||||||
|
<a class="s1" href="quick-guide.html">Quick Guide</a>
|
||||||
|
<br>
|
||||||
<a class="s1" href="how-to.html">HOWTO</a>
|
<a class="s1" href="how-to.html">HOWTO</a>
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="use-case.html">Use Case</a>
|
<a class="s1" href="use-case.html">Use Case</a>
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="diagrams.html">Pictorial Docs</a>
|
<a class="s1" href="diagrams.html">Pictorial Docs</a>
|
||||||
<br>
|
<br>
|
||||||
|
<a class="s1" href="alternatives.html">Alternatives</a>
|
||||||
|
<br>
|
||||||
<br>
|
<br>
|
||||||
<span class="s1">Contributer's Guide</span>
|
<span class="s1">Contributer's Guide</span>
|
||||||
<br>
|
<br>
|
||||||
|
|
|
@ -44,12 +44,16 @@
|
||||||
<br>
|
<br>
|
||||||
<span class="s1">HSSF</span>
|
<span class="s1">HSSF</span>
|
||||||
<br>
|
<br>
|
||||||
|
<a class="s1" href="quick-guide.html">Quick Guide</a>
|
||||||
|
<br>
|
||||||
<a class="s1" href="how-to.html">HOWTO</a>
|
<a class="s1" href="how-to.html">HOWTO</a>
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="use-case.html">Use Case</a>
|
<a class="s1" href="use-case.html">Use Case</a>
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="diagrams.html">Pictorial Docs</a>
|
<a class="s1" href="diagrams.html">Pictorial Docs</a>
|
||||||
<br>
|
<br>
|
||||||
|
<a class="s1" href="alternatives.html">Alternatives</a>
|
||||||
|
<br>
|
||||||
<br>
|
<br>
|
||||||
<span class="s1">Contributer's Guide</span>
|
<span class="s1">Contributer's Guide</span>
|
||||||
<br>
|
<br>
|
||||||
|
|
|
@ -44,12 +44,16 @@
|
||||||
<br>
|
<br>
|
||||||
<span class="s1">HSSF</span>
|
<span class="s1">HSSF</span>
|
||||||
<br>
|
<br>
|
||||||
|
<a class="s1" href="quick-guide.html">Quick Guide</a>
|
||||||
|
<br>
|
||||||
<a class="s1" href="how-to.html">HOWTO</a>
|
<a class="s1" href="how-to.html">HOWTO</a>
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="use-case.html">Use Case</a>
|
<a class="s1" href="use-case.html">Use Case</a>
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="diagrams.html">Pictorial Docs</a>
|
<a class="s1" href="diagrams.html">Pictorial Docs</a>
|
||||||
<br>
|
<br>
|
||||||
|
<a class="s1" href="alternatives.html">Alternatives</a>
|
||||||
|
<br>
|
||||||
<br>
|
<br>
|
||||||
<span class="s1">Contributer's Guide</span>
|
<span class="s1">Contributer's Guide</span>
|
||||||
<br>
|
<br>
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="historyandfuture.html">Future</a>
|
<a class="s1" href="historyandfuture.html">Future</a>
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="http://sourceforge.net/project/showfiles.php?group_id=32701">Download</a>
|
<a class="s1" href="http://jakarta.apache.org/builds/jakarta-poi/">Download</a>
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="plan/POI10Vision.html">1.0 Vision</a>
|
<a class="s1" href="plan/POI10Vision.html">1.0 Vision</a>
|
||||||
<br>
|
<br>
|
||||||
|
@ -55,6 +55,8 @@
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="changes.html">Changes</a>
|
<a class="s1" href="changes.html">Changes</a>
|
||||||
<br>
|
<br>
|
||||||
|
<a class="s1" href="faq.html">FAQ</a>
|
||||||
|
<br>
|
||||||
<br>
|
<br>
|
||||||
<span class="s1">Sub-Projects</span>
|
<span class="s1">Sub-Projects</span>
|
||||||
<br>
|
<br>
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="historyandfuture.html">Future</a>
|
<a class="s1" href="historyandfuture.html">Future</a>
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="http://sourceforge.net/project/showfiles.php?group_id=32701">Download</a>
|
<a class="s1" href="http://jakarta.apache.org/builds/jakarta-poi/">Download</a>
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="plan/POI10Vision.html">1.0 Vision</a>
|
<a class="s1" href="plan/POI10Vision.html">1.0 Vision</a>
|
||||||
<br>
|
<br>
|
||||||
|
@ -55,6 +55,8 @@
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="changes.html">Changes</a>
|
<a class="s1" href="changes.html">Changes</a>
|
||||||
<br>
|
<br>
|
||||||
|
<a class="s1" href="faq.html">FAQ</a>
|
||||||
|
<br>
|
||||||
<br>
|
<br>
|
||||||
<span class="s1">Sub-Projects</span>
|
<span class="s1">Sub-Projects</span>
|
||||||
<br>
|
<br>
|
||||||
|
@ -268,21 +270,12 @@
|
||||||
<div align="right">
|
<div align="right">
|
||||||
<table cellspacing="0" cellpadding="2" border="0" width="100%">
|
<table cellspacing="0" cellpadding="2" border="0" width="100%">
|
||||||
<tr>
|
<tr>
|
||||||
<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>xxxxxxx (French)</b></font></font></td>
|
<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>Francais (French)</b></font></font></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
<p align="justify">
|
|
||||||
Growing up in Florida, one does not use very much French on a day
|
|
||||||
to day basis, and while I know how to say French in French I have
|
|
||||||
absolutely no idea how to spell it. So if you are so inclined and
|
|
||||||
have the requisite extended characters on your keyboard, please
|
|
||||||
email acoliver at apache dot org the proper spelling for French in
|
|
||||||
French.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
|
@ -302,21 +295,12 @@
|
||||||
<div align="right">
|
<div align="right">
|
||||||
<table cellspacing="0" cellpadding="2" border="0" width="100%">
|
<table cellspacing="0" cellpadding="2" border="0" width="100%">
|
||||||
<tr>
|
<tr>
|
||||||
<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>Japanese</b></font></font></td>
|
<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>Nihongo (Japanese)</b></font></font></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
<p align="justify">
|
|
||||||
If anyone knows how to spell Japanese in a way that Japanese
|
|
||||||
speakers (who don't recognize the English -- I hope to one day
|
|
||||||
have the site translated into other lanugages -- volunteers?)
|
|
||||||
can recognize it without making everyone download new
|
|
||||||
charactersets just to view the page please step up and send in a
|
|
||||||
patch to the poi-dev list!
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="historyandfuture.html">Future</a>
|
<a class="s1" href="historyandfuture.html">Future</a>
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="http://sourceforge.net/project/showfiles.php?group_id=32701">Download</a>
|
<a class="s1" href="http://jakarta.apache.org/builds/jakarta-poi/">Download</a>
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="plan/POI10Vision.html">1.0 Vision</a>
|
<a class="s1" href="plan/POI10Vision.html">1.0 Vision</a>
|
||||||
<br>
|
<br>
|
||||||
|
@ -55,6 +55,8 @@
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="changes.html">Changes</a>
|
<a class="s1" href="changes.html">Changes</a>
|
||||||
<br>
|
<br>
|
||||||
|
<a class="s1" href="faq.html">FAQ</a>
|
||||||
|
<br>
|
||||||
<br>
|
<br>
|
||||||
<span class="s1">Sub-Projects</span>
|
<span class="s1">Sub-Projects</span>
|
||||||
<br>
|
<br>
|
||||||
|
@ -134,24 +136,18 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
<p align="justify">Here is a list of some of the web sites that are proudly using Poi 1.X (in no particular order):
|
<p align="justify">Currently we don't have any sites listed that use Poi, but we're sure they're out there.
|
||||||
</p>
|
Help us change this. If you've
|
||||||
<!--
|
written a site that utilises Poi let us know.
|
||||||
<ul>
|
</p>
|
||||||
<li><link href=""></link></li>
|
<!--
|
||||||
</ul>
|
<ul>
|
||||||
</s1>
|
<li><link href=""></link></li>
|
||||||
-->
|
</ul>
|
||||||
|
</s1>
|
||||||
<p align="justify">
|
-->
|
||||||
If you do not find your site here, make sure you tell us
|
|
||||||
(use the word "Livesites" in the email subject, confirm that
|
|
||||||
you want to be listed publicly, say which version of Poi, and do not
|
|
||||||
forget to tell us the URL).
|
|
||||||
We would like to see this list grow bigger every day :-)
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="historyandfuture.html">Future</a>
|
<a class="s1" href="historyandfuture.html">Future</a>
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="http://sourceforge.net/project/showfiles.php?group_id=32701">Download</a>
|
<a class="s1" href="http://jakarta.apache.org/builds/jakarta-poi/">Download</a>
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="plan/POI10Vision.html">1.0 Vision</a>
|
<a class="s1" href="plan/POI10Vision.html">1.0 Vision</a>
|
||||||
<br>
|
<br>
|
||||||
|
@ -55,6 +55,8 @@
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="changes.html">Changes</a>
|
<a class="s1" href="changes.html">Changes</a>
|
||||||
<br>
|
<br>
|
||||||
|
<a class="s1" href="faq.html">FAQ</a>
|
||||||
|
<br>
|
||||||
<br>
|
<br>
|
||||||
<span class="s1">Sub-Projects</span>
|
<span class="s1">Sub-Projects</span>
|
||||||
<br>
|
<br>
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="historyandfuture.html">Future</a>
|
<a class="s1" href="historyandfuture.html">Future</a>
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="http://sourceforge.net/project/showfiles.php?group_id=32701">Download</a>
|
<a class="s1" href="http://jakarta.apache.org/builds/jakarta-poi/">Download</a>
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="plan/POI10Vision.html">1.0 Vision</a>
|
<a class="s1" href="plan/POI10Vision.html">1.0 Vision</a>
|
||||||
<br>
|
<br>
|
||||||
|
@ -55,6 +55,8 @@
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="changes.html">Changes</a>
|
<a class="s1" href="changes.html">Changes</a>
|
||||||
<br>
|
<br>
|
||||||
|
<a class="s1" href="faq.html">FAQ</a>
|
||||||
|
<br>
|
||||||
<br>
|
<br>
|
||||||
<span class="s1">Sub-Projects</span>
|
<span class="s1">Sub-Projects</span>
|
||||||
<br>
|
<br>
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="historyandfuture.html">Future</a>
|
<a class="s1" href="historyandfuture.html">Future</a>
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="http://sourceforge.net/project/showfiles.php?group_id=32701">Download</a>
|
<a class="s1" href="http://jakarta.apache.org/builds/jakarta-poi/">Download</a>
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="plan/POI10Vision.html">1.0 Vision</a>
|
<a class="s1" href="plan/POI10Vision.html">1.0 Vision</a>
|
||||||
<br>
|
<br>
|
||||||
|
@ -55,6 +55,8 @@
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="changes.html">Changes</a>
|
<a class="s1" href="changes.html">Changes</a>
|
||||||
<br>
|
<br>
|
||||||
|
<a class="s1" href="faq.html">FAQ</a>
|
||||||
|
<br>
|
||||||
<br>
|
<br>
|
||||||
<span class="s1">Sub-Projects</span>
|
<span class="s1">Sub-Projects</span>
|
||||||
<br>
|
<br>
|
||||||
|
|
|
@ -243,7 +243,7 @@
|
||||||
solution for outputting Office Document formats often involves
|
solution for outputting Office Document formats often involves
|
||||||
actually manipulating the software as an OLE Server. This method
|
actually manipulating the software as an OLE Server. This method
|
||||||
provides extremely low performance, extremely high overhead and is
|
provides extremely low performance, extremely high overhead and is
|
||||||
only capable of handing one document at a time.
|
only capable of handling one document at a time.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<ol>
|
<ol>
|
||||||
|
@ -257,7 +257,7 @@
|
||||||
<li>
|
<li>
|
||||||
Our intended audience for the HSSF
|
Our intended audience for the HSSF
|
||||||
library portion of this project is ourselves as we are developing
|
library portion of this project is ourselves as we are developing
|
||||||
the serializer and anyone who needs to write to Excel spreadsheets
|
the Serializer and anyone who needs to write to Excel spreadsheets
|
||||||
in a non-XML Java environment or who has specific needs not
|
in a non-XML Java environment or who has specific needs not
|
||||||
addressed by the Serializer.
|
addressed by the Serializer.
|
||||||
</li>
|
</li>
|
||||||
|
@ -352,12 +352,8 @@
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
<p align="justify">
|
<p align="justify">
|
||||||
The alternative to this project is to
|
Originally there weren't any decent <a href="../hssf/alternatives.html">alternatives</a> for reading or writing
|
||||||
buy the $10,000 Formula 1 library (<a href="http://www.tidestone.com/">www.tidestone.com</a>)
|
to Excel. This has changed somewhat.
|
||||||
and accept its crude api and limitations. As a second alternative,
|
|
||||||
give up XML and write Visual Basic code on a Microsoft Windows based
|
|
||||||
Environment or output in Microsoft's beta and primarily undocumented
|
|
||||||
XML for office format.
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
|
|
|
@ -96,7 +96,7 @@
|
||||||
changed a bit. We're not going to change the vision document to
|
changed a bit. We're not going to change the vision document to
|
||||||
reflect this (however proper that may be) because it would only
|
reflect this (however proper that may be) because it would only
|
||||||
involve deletion. There is no purpose in providing less
|
involve deletion. There is no purpose in providing less
|
||||||
information provded we give clarification.
|
information provided we give clarification.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p align="justify">
|
<p align="justify">
|
||||||
|
@ -426,37 +426,9 @@
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
<p align="justify">
|
<p align="justify">
|
||||||
Alternatives to using HSSF to manipulate Excel files include:
|
Originally there weren't any decent <a href="../hssf/alternatives.html">alternatives</a> for reading or writing
|
||||||
</p>
|
to Excel. This has changed somewhat.
|
||||||
|
</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>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -548,10 +520,10 @@
|
||||||
<tr>
|
<tr>
|
||||||
|
|
||||||
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
|
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
|
||||||
Benefit
|
<b>Benefit</b>
|
||||||
</font></td>
|
</font></td>
|
||||||
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
|
<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
|
||||||
Supporting Features
|
<b>Supporting Features</b>
|
||||||
</font></td>
|
</font></td>
|
||||||
|
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="historyandfuture.html">Future</a>
|
<a class="s1" href="historyandfuture.html">Future</a>
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="http://sourceforge.net/project/showfiles.php?group_id=32701">Download</a>
|
<a class="s1" href="http://jakarta.apache.org/builds/jakarta-poi/">Download</a>
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="plan/POI10Vision.html">1.0 Vision</a>
|
<a class="s1" href="plan/POI10Vision.html">1.0 Vision</a>
|
||||||
<br>
|
<br>
|
||||||
|
@ -55,6 +55,8 @@
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="changes.html">Changes</a>
|
<a class="s1" href="changes.html">Changes</a>
|
||||||
<br>
|
<br>
|
||||||
|
<a class="s1" href="faq.html">FAQ</a>
|
||||||
|
<br>
|
||||||
<br>
|
<br>
|
||||||
<span class="s1">Sub-Projects</span>
|
<span class="s1">Sub-Projects</span>
|
||||||
<br>
|
<br>
|
||||||
|
@ -137,7 +139,15 @@
|
||||||
<sl>
|
<sl>
|
||||||
<li>
|
<li>
|
||||||
<em>[code]</em>
|
<em>[code]</em>
|
||||||
do it
|
Finish HDF
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<em>[code]</em>
|
||||||
|
Finish Charts
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<em>[code]</em>
|
||||||
|
Add Formulas.
|
||||||
</li>
|
</li>
|
||||||
</sl>
|
</sl>
|
||||||
</td>
|
</td>
|
||||||
|
@ -156,7 +166,31 @@
|
||||||
<sl>
|
<sl>
|
||||||
<li>
|
<li>
|
||||||
<em>[code]</em>
|
<em>[code]</em>
|
||||||
do it
|
Expose functionality in low level records in higher level API
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<em>[code]</em>
|
||||||
|
Implement more record types (for other things ... not sure
|
||||||
|
what this will mean yet).
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<em>[code]</em>
|
||||||
|
Implement more record types (for other things ... not sure
|
||||||
|
what this will mean yet).
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<em>[code]</em>
|
||||||
|
Add more dummy checks (for when API user's do things they
|
||||||
|
"can't" do)
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<em>[code]</em>
|
||||||
|
Add support for embedded graphics and stuff like that.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<em>[code]</em>
|
||||||
|
Create new adapter object for handling MulBlank, MulRk, Rk
|
||||||
|
records.
|
||||||
</li>
|
</li>
|
||||||
</sl>
|
</sl>
|
||||||
</td>
|
</td>
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="historyandfuture.html">Future</a>
|
<a class="s1" href="historyandfuture.html">Future</a>
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="http://sourceforge.net/project/showfiles.php?group_id=32701">Download</a>
|
<a class="s1" href="http://jakarta.apache.org/builds/jakarta-poi/">Download</a>
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="plan/POI10Vision.html">1.0 Vision</a>
|
<a class="s1" href="plan/POI10Vision.html">1.0 Vision</a>
|
||||||
<br>
|
<br>
|
||||||
|
@ -55,6 +55,8 @@
|
||||||
<br>
|
<br>
|
||||||
<a class="s1" href="changes.html">Changes</a>
|
<a class="s1" href="changes.html">Changes</a>
|
||||||
<br>
|
<br>
|
||||||
|
<a class="s1" href="faq.html">FAQ</a>
|
||||||
|
<br>
|
||||||
<br>
|
<br>
|
||||||
<span class="s1">Sub-Projects</span>
|
<span class="s1">Sub-Projects</span>
|
||||||
<br>
|
<br>
|
||||||
|
@ -199,7 +201,9 @@
|
||||||
<li>Glen Stampoultzis (glens at apache.org)</li>
|
<li>Glen Stampoultzis (glens at apache.org)</li>
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<a href="http://www.rainer-klute.de/">Rainer Klute</a> (klute at apache dot org)</li>
|
<a href="http://www.rainer-klute.de/">Rainer Klute</a> (klute at apache dot org)</li>
|
||||||
|
|
||||||
|
<li>Nicola Ken Barozzi (barozzi at nicolaken dot com)</li>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
@ -220,8 +224,6 @@
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
|
|
||||||
<li>Nicola Ken Barozzi (barozzi at nicolaken dot com)</li>
|
|
||||||
|
|
||||||
<li>Ryan Ackley (sackley at cfl dot rr dot com)</li>
|
<li>Ryan Ackley (sackley at cfl dot rr dot com)</li>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
Loading…
Reference in New Issue