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:
Andrew C. Oliver 2002-04-03 13:25:27 +00:00
parent f4b7198703
commit e51a924f6d
20 changed files with 585 additions and 596 deletions

View File

@ -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 &amp; 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 &amp; 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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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 &lt; 5MB. Diagrams should be to (acoliver at apache dot org) provided its &lt; 5MB. Diagrams should be

View File

@ -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 &lt; 300; rownum++) for (rownum = (short) 0; rownum &lt; 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 &lt; 50; cellnum += 2) for (short cellnum = (short) 0; cellnum &lt; 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 &lt; 50; cellnum++) { for (short cellnum = (short) 0; cellnum &lt; 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 &lt; 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 &lt; 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 &amp; 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 &amp; 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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>