diff --git a/src/documentation/xdocs/3rdparty.xml b/src/documentation/xdocs/3rdparty.xml index 25d983f951..dac1516edd 100644 --- a/src/documentation/xdocs/3rdparty.xml +++ b/src/documentation/xdocs/3rdparty.xml @@ -1,5 +1,4 @@ -
@@ -11,14 +10,14 @@ - +

See How to contribute to Poi.

- +
- +

These are not necessarily deemed to be high enough quality to be included in the core distribution, but they have been tested under @@ -32,18 +31,18 @@ listed below will eventually migrate to the "contributed components" level, and then maybe even into the main distribution.

- +
- +

Submissions of modifications to Poi which are awaiting review. Anyone can comment on them on the dev mailing list - code reviewers are needed! Use these at your own risk - although Poi has no guarantee either, these patches have not been reviewed, let alone accepted.

- +
- +

The other extensions listed here are not endorsed by the Poi project either - they are provided as a convenience only. They may or may not work, they may or may not be open source, etc. @@ -63,6 +62,6 @@ - +

diff --git a/src/documentation/xdocs/contrib.xml b/src/documentation/xdocs/contrib.xml index 22b96c9fd1..e95bc34b1d 100644 --- a/src/documentation/xdocs/contrib.xml +++ b/src/documentation/xdocs/contrib.xml @@ -15,7 +15,7 @@ - +

The POI Project is an Open Source @@ -48,9 +48,9 @@ we have work for you! And we'll be very available to you for any questions!

- +
- +

The rest of this document is mainly about contributing new or improved code and/or documentation, but we would also be glad to have @@ -81,10 +81,10 @@ - +

- +

An overview of how to use CVS to participate in POI development. Do not be afraid - you cannot accidently destroy the actual code repository, because you are working with a local copy as an anonymous user. @@ -105,9 +105,9 @@ repository, how to keep it up-to-date, and how to generate the differences to create a patch. (The commands are for Linux.)

- +
- +

After a developer has consistently provided contributions (code, documentation and discussion), then the rest of the dev community may vote to grant this developer commit access to CVS. @@ -125,10 +125,10 @@ - See the bottom of the page for links to tips for UNIX and Windows. Even if you are on UNIX, the Windows page will also help. - +

- +

There are two methods for discussing development and submitting patches. So that everyone can be productive, it is important to know which method @@ -178,10 +178,10 @@ posting - perhaps it was not clear enough and the readers' eyes glazed over.

- +
- +

This is a collection of tips for contributing to the project in a manner that is productive for all parties. @@ -273,7 +273,7 @@ see the way other people do things. Follow the leading examples. - +

diff --git a/src/documentation/xdocs/faq.xml b/src/documentation/xdocs/faq.xml index 79b63a6b38..7934dfd6e8 100644 --- a/src/documentation/xdocs/faq.xml +++ b/src/documentation/xdocs/faq.xml @@ -32,9 +32,10 @@ Why am I getting an exception each time I attempt to read my spreadsheet? +

It's possible your spreadsheet contains a feature that is not currently supported by HSSF. For example - spreadsheets containing cells with rich text are not currently supported. +

- diff --git a/src/documentation/xdocs/hdf/index.xml b/src/documentation/xdocs/hdf/index.xml index ad1fbe65be..e9b1658f4f 100644 --- a/src/documentation/xdocs/hdf/index.xml +++ b/src/documentation/xdocs/hdf/index.xml @@ -1,5 +1,5 @@ - +
@@ -12,7 +12,7 @@
- +

HDF will be the name of OUR port of the Microsoft Word 97(-2002) file format to pure Java.

@@ -20,6 +20,6 @@ follow development on the poi-dev mailing list.

- +
diff --git a/src/documentation/xdocs/historyandfuture.xml b/src/documentation/xdocs/historyandfuture.xml index ae26b195ce..3855480f69 100755 --- a/src/documentation/xdocs/historyandfuture.xml +++ b/src/documentation/xdocs/historyandfuture.xml @@ -12,7 +12,7 @@ - +

The POI project was dreamed up back around April 2001, when Andy Oliver landed a short term contract to do Java-based @@ -76,9 +76,9 @@ already started making waves. looks like everything turned out since you're reading this!

- +
- +

First we'll tackle this from a project standpoint: Well, we made an offer to Microsoft and Actuate (tongue in cheek ... well mostly) that we'd quit the project and retire if @@ -120,7 +120,7 @@ already started making waves. that new blood will join the team and allow us to tackle this even faster (in part because POIFS is already finished). But maybe what we need most is you!

- +
diff --git a/src/documentation/xdocs/hpsf/how-to.xml b/src/documentation/xdocs/hpsf/how-to.xml index 85da8cf7ff..1a737254de 100644 --- a/src/documentation/xdocs/hpsf/how-to.xml +++ b/src/documentation/xdocs/hpsf/how-to.xml @@ -1,6 +1,6 @@ +"../dtd/document-v11.dtd"> @@ -11,7 +11,7 @@
- +

This HOW-TO is organized in three section. You should read them sequentially because the later sections build upon the earlier ones.

@@ -40,7 +40,7 @@ - +
This section explains how to read the most important standard properties of a Microsoft Office @@ -83,7 +83,7 @@

Sounds easy, doesn't it? Here are the steps in detail.

-

An application that wants to open a document in a POI filesystem @@ -215,11 +215,11 @@ static class MyPOIFSReaderListener implements POIFSReaderListener \005SummaryInformation stream. In this case the applications won't throw an exception but simply does not call the processPOIFSReaderEvent method. You have been warned!

-
- +
+
- +
This section focusses on reading additional standard properties. It also talks about exceptions that may be thrown when dealing with HPSF and @@ -292,17 +292,17 @@ static class MyPOIFSReaderListener implements POIFSReaderListener contrib section tries to open each and every document in a POI filesystem as a property set stream. If this operation was successful it displays the properties.

- +
- +
This section tells how to read non-standard properties. Non-standard properties are application-specific name/value/type triples. Write this section! - - +
+
diff --git a/src/documentation/xdocs/hpsf/index.xml b/src/documentation/xdocs/hpsf/index.xml index 63a9d7c993..1842b5a855 100644 --- a/src/documentation/xdocs/hpsf/index.xml +++ b/src/documentation/xdocs/hpsf/index.xml @@ -1,5 +1,5 @@ - + @@ -11,7 +11,7 @@ - +

Microsoft applications like "Word" or "Excel" let the user describe his document by properties like "title", "category" and so on. The application itself adds further information: last author, creation date etc. These @@ -28,7 +28,7 @@ case of document properties mentioned above. The HPSF description describes the internal structure of property set streams.

- +
diff --git a/src/documentation/xdocs/hpsf/internals.xml b/src/documentation/xdocs/hpsf/internals.xml index e9a8753610..25d3745116 100644 --- a/src/documentation/xdocs/hpsf/internals.xml +++ b/src/documentation/xdocs/hpsf/internals.xml @@ -1,5 +1,5 @@ - + @@ -10,9 +10,9 @@ - +
- +

A Microsoft Office document is internally organized like a filesystem with directory and files. Microsoft calls these files @@ -45,11 +45,11 @@ Embedded documents may have their own property set streams. You cannot tell by a stream's name whether it is a property set stream or not. Instead you have to open the stream and look at its bytes.

- +
- +

Before delving into the details of the property set stream format we have to have a short look at data types. Integral values are stored in the @@ -148,11 +148,11 @@ - +

- +

A property set stream consists of three main parts:

@@ -164,11 +164,11 @@

the section(s) containing the properties.

- +
- +

The first bytes in a property set stream is the header. It has a fixed length and looks like this:

@@ -265,11 +265,11 @@ - +
- +

Following the header is the section list. This is an array of pairs each consisting of a section format ID and an offset. This array has as many @@ -355,11 +355,11 @@ - +

- +

A section is divided into three parts: the section header (with the section length and the number of properties in the section), the @@ -509,11 +509,11 @@ - +

- +

As seen above, a section holds a property list: an array with property @@ -535,7 +535,7 @@ Information and the Document Summary Information streams. You can extend them by your own additional IDs. This will be described below.

- +

The Summary Information stream has a single section with a section format ID of 0xF29F85E04FF91068AB9108002B27B3D9. The following @@ -672,11 +672,11 @@

VT_I4

- +
- +

The Document Summary Information stream has two sections with a section format ID of 0xD5CDD5022E9C101B939708002B2CF9AE for the first @@ -781,12 +781,12 @@

VT_BOOL

- - +
+
- +

A property consists of a DWord type field followed by the @@ -1090,11 +1090,11 @@


- +
- +

In order to assemble the HPSF description I used information publically available on the Internet only. The references given below have been very @@ -1144,8 +1144,8 @@

This documentation origins from the HPSF description available at http://www.rainer-klute.de/~klute/Software/poibrowser/doc/HPSF-Description.html.

- - +
+
diff --git a/src/documentation/xdocs/hpsf/todo.xml b/src/documentation/xdocs/hpsf/todo.xml index df7c06c3e8..4d2d47c094 100644 --- a/src/documentation/xdocs/hpsf/todo.xml +++ b/src/documentation/xdocs/hpsf/todo.xml @@ -10,7 +10,7 @@ - +

The following functionalities should be added to HPFS:

@@ -37,7 +37,7 @@ yet supported (other than byte arrays).

- +
diff --git a/src/documentation/xdocs/hssf/alternatives.xml b/src/documentation/xdocs/hssf/alternatives.xml index 0b4cbc751c..c32f4aa9a2 100644 --- a/src/documentation/xdocs/hssf/alternatives.xml +++ b/src/documentation/xdocs/hssf/alternatives.xml @@ -1,5 +1,5 @@ - +
@@ -11,7 +11,7 @@
- +

Maybe it's unwise to advertise your competitors but we believe competition is good and we have the best support reading and @@ -78,6 +78,6 @@ There are a number of perl and C libraries, however none of them are consistent. - +

diff --git a/src/documentation/xdocs/hssf/diagram1.xml b/src/documentation/xdocs/hssf/diagram1.xml index be8481c14a..9d1cd2a7f9 100644 --- a/src/documentation/xdocs/hssf/diagram1.xml +++ b/src/documentation/xdocs/hssf/diagram1.xml @@ -1,5 +1,5 @@ - +
@@ -12,8 +12,8 @@
- +
- +
diff --git a/src/documentation/xdocs/hssf/diagrams.xml b/src/documentation/xdocs/hssf/diagrams.xml index d7932bdf8c..1a1c1bbd19 100644 --- a/src/documentation/xdocs/hssf/diagrams.xml +++ b/src/documentation/xdocs/hssf/diagrams.xml @@ -1,5 +1,5 @@ - +
@@ -12,7 +12,7 @@
- +

This section is intended for diagrams (UML/etc) that help explain HSSF. @@ -33,6 +33,6 @@ many good affordable UML tools yet! And no they don't HAVE to be UML... just useful.

- +
diff --git a/src/documentation/xdocs/hssf/how-to.xml b/src/documentation/xdocs/hssf/how-to.xml index 2dec745236..8c5d930dba 100644 --- a/src/documentation/xdocs/hssf/how-to.xml +++ b/src/documentation/xdocs/hssf/how-to.xml @@ -10,9 +10,9 @@ - +
- +

This release of the how-to outlines functionality for the 1.5 release. Those looking for information on previous releases should look in the documentation distributed with that release.

@@ -26,10 +26,10 @@ and is intended for intermediate developers who need a smaller memory footprint. It will also serve as the basis for the HSSF Generator.

- - - - +
+
+
+

The high level API (package: org.apache.poi.hssf.usermodel) is what most people should use. Usage is very simple. @@ -211,8 +211,8 @@ wb.write(out); out.close(); ]]> - - +

+

Reading in a file is equally simple. To read in a file, create a new instance of org.apache.poi.poifs.Filesystem, passing in an open InputStream, such as a FileInputStream @@ -229,9 +229,9 @@ would if creating a new xls. When you are done modifying cells just call workbook.write(outputstream) just as you did above.

An example of this can be seen in org.apache.poi.hssf.dev.HSSF.

- - - +
+
+

The event API is brand new. It is intended for intermediate developers who are willing to learn a little bit of the low level API @@ -359,8 +359,8 @@ public class EventExample } } ]]> - - +

+

The low level API is not much to look at. It consists of lots of "Records" in the org.apache.poi.hssf.record.* package, @@ -374,8 +374,8 @@ order to gain a good understanding of how to use the low level APIs should view the source in org.apache.poi.hssf.usermodel.* and the classes in org.apache.poi.hssf.model.*. You should read the documentation for the POIFS libraries as well.

- - +
+

The HSSF application is nothing more than a test for the high level API (and indirectly the low level support). The main body of @@ -402,8 +402,8 @@ This is the read/write/modify test. It reads in the spreadsheet, modifies a cel 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.

- - +
+

HSSF now has a logging facility (using commons logging) that will record massive amounts of debugging information. Its mostly @@ -444,8 +444,8 @@ many cases the Commons Logging component can fill that role. Refer to the commons logging package level javadoc for more information concerning how to configure commons logging.

- - +
+

HSSF has a number of tools useful for developers to debug/develop stuff using HSSF (and more generally XLS files). We've already @@ -479,8 +479,8 @@ matching "on" exactly.

FormulaViewer. The class is already there, but its not very useful yet. When it does something, we'll document it.

- - +
+

This release contains code that supports "internationalization" or more accurately non-US/UK languages; however, it has not been @@ -501,10 +501,10 @@ 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 most important first?

- +
- +
- +
diff --git a/src/documentation/xdocs/hssf/index.xml b/src/documentation/xdocs/hssf/index.xml index 40ca933bd0..9b96f3c390 100644 --- a/src/documentation/xdocs/hssf/index.xml +++ b/src/documentation/xdocs/hssf/index.xml @@ -1,5 +1,5 @@ - +
@@ -12,7 +12,7 @@
- +

HSSF is the POI Project's pure Java implementation of the Excel '97(-2002) file format.

HSSF provides a way to read spreadsheets create, modify, read and write XLS spreadsheets @@ -42,6 +42,6 @@ it this way indirectly) is the best way...we promise.

- +
diff --git a/src/documentation/xdocs/hssf/limitations.xml b/src/documentation/xdocs/hssf/limitations.xml index 758449398b..18b379e1a9 100644 --- a/src/documentation/xdocs/hssf/limitations.xml +++ b/src/documentation/xdocs/hssf/limitations.xml @@ -6,7 +6,7 @@ - +

The intent of this document is to outline some of the known limitations of the POI HSSF API's. It is not intended to be complete list of every bug or missing @@ -47,6 +47,6 @@ has not been tested. - +

- \ No newline at end of file + diff --git a/src/documentation/xdocs/hssf/quick-guide.xml b/src/documentation/xdocs/hssf/quick-guide.xml index ed84516bdf..2d660255dd 100644 --- a/src/documentation/xdocs/hssf/quick-guide.xml +++ b/src/documentation/xdocs/hssf/quick-guide.xml @@ -1,5 +1,5 @@ - +
@@ -9,13 +9,13 @@
- +

Want to use HSSF read and write spreadsheets in a hurry? This guide is for you. If you're after more in-depth coverage of the HSSF user-API please consult the HOWTO guide as it contains actual descriptions of how to use this stuff.

- +
  • How to create a new workbook
  • How to create a sheet
  • @@ -29,19 +29,19 @@
  • Working with fonts
  • Reading and writing
- - +
+
- +
HSSFWorkbook wb = new HSSFWorkbook(); FileOutputStream fileOut = new FileOutputStream("workbook.xls"); wb.write(fileOut); fileOut.close(); - +
- +
HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet1 = wb.createSheet("new sheet"); @@ -50,9 +50,9 @@ wb.write(fileOut); fileOut.close(); - +
- +
HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet("new sheet"); @@ -73,9 +73,9 @@ wb.write(fileOut); fileOut.close(); - +
- +
HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet("new sheet"); @@ -102,9 +102,9 @@ wb.write(fileOut); fileOut.close(); - +
- +
HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet("new sheet"); @@ -120,9 +120,9 @@ wb.write(fileOut); fileOut.close(); - +
- +
public static void main(String[] args) throws IOException @@ -162,9 +162,9 @@ cell.setCellStyle(cellStyle); } - +
- +
HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet("new sheet"); @@ -193,9 +193,9 @@ wb.write(fileOut); fileOut.close(); - +
- +
HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet("new sheet"); @@ -224,9 +224,9 @@ wb.write(fileOut); fileOut.close(); - +
- +
HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet("new sheet"); @@ -242,9 +242,9 @@ wb.write(fileOut); fileOut.close(); - +
- +
HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet("new sheet"); @@ -273,9 +273,9 @@ wb.write(fileOut); fileOut.close(); - +
- +
POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream("workbook.xls")); @@ -293,8 +293,8 @@ wb.write(fileOut); fileOut.close(); - - - +
+
+
diff --git a/src/documentation/xdocs/hssf/record-generator.xml b/src/documentation/xdocs/hssf/record-generator.xml index 7dae69a73d..503a1599c1 100644 --- a/src/documentation/xdocs/hssf/record-generator.xml +++ b/src/documentation/xdocs/hssf/record-generator.xml @@ -1,5 +1,5 @@ - +
@@ -10,9 +10,9 @@
- +
- +

The record generator was born from frustration with translating the Excel records to Java classes. Doing this manually is a time @@ -23,9 +23,9 @@ record looked like and do all the boring stuff. Thus the record generator was born.

- +
- +

The record generator takes XML as input and produced the following output: @@ -35,8 +35,8 @@ for ensuring the record operates as designed.

- - +
+

The record generator is invoked as an Ant target (generate-records). It goes through looking for all files in src/records/defintitions ending with _record.xml. @@ -78,8 +78,8 @@ not already exist. What this means is that you may change test stubs but not the generated records.

- - +
+

The record generation works by taking an XML file and styling it using XLST. Given that XSLT is a little limited in some ways it was @@ -89,8 +89,8 @@ See record.xsl, record_test.xsl, FieldIterator.java, RecordUtil.java, RecordGenerator.java

- - +
+

The record generator does not handle all possible record types and is not ment to. Sometimes it's going to make more sense to generate @@ -108,7 +108,7 @@ the XSL file itself. The Java code for the record generation is currently quite messy with minimal comments.

- - +
+
diff --git a/src/documentation/xdocs/hssf/use-case.xml b/src/documentation/xdocs/hssf/use-case.xml index 6e16c2aec4..ee37cf59d8 100644 --- a/src/documentation/xdocs/hssf/use-case.xml +++ b/src/documentation/xdocs/hssf/use-case.xml @@ -1,5 +1,5 @@ - +
@@ -9,8 +9,8 @@
- - +
+

Primary Actor: HSSF client

Scope: HSSF

@@ -39,8 +39,8 @@

Extensions:

2a. Exceptions thrown by POIFS will be passed on to the HSSF client.

- - +
+

Primary Actor: HSSF client

Scope: HSSF

@@ -77,8 +77,8 @@ thrown by POIFS will be passed on to the HSSF client.

3a. Exceptions from POIFS are passed to the HSSF client.

- - +
+

Primary Actor: HSSF client

Scope: HSSF

@@ -104,8 +104,8 @@ from POIFS are passed to the HSSF client.

Extensions: None

- - +
+

Primary Actor: HSSF

Scope: HSSF

@@ -140,8 +140,8 @@ Guarantee: None

Extensions:

3a. Exceptions thrown by POIFS will be passed on

- - +
+

Primary Actor: HSSF

@@ -175,8 +175,8 @@ thrown by POIFS will be passed on

write new file to file system)

Extensions:None

- +
- +
diff --git a/src/documentation/xdocs/index.xml b/src/documentation/xdocs/index.xml index 04a727d1d2..8c18783ba4 100644 --- a/src/documentation/xdocs/index.xml +++ b/src/documentation/xdocs/index.xml @@ -10,7 +10,7 @@ - +

The POI committers have voted to "innovate" and hold a @@ -62,8 +62,8 @@ You can see the current submissions here.

- - +
+

The POI project consists of APIs for manipulating various file formats based upon Microsoft's OLE 2 Compound Document format using pure Java. @@ -80,7 +80,7 @@ XLS format; and Lucene for which we'll soon have file format interpretors. When practical, we donate components directly to those projects for POI-enabling them.

- +

We'll tackle this on a component level. POI refers to the whole project.

@@ -97,9 +97,9 @@ You'd use HSSF if you needed to read or write an XLS (Excel) file using Java. You can also read and modify spreadsheets using this API, although right now writing is more mature.

- +
- +

POI stands for Poor Obfuscation Implementation. Why would we name our project such a derogatory name? Well, Microsoft's OLE 2 Compound Document Format is a poorly conceived thing. It is essentially an archive structured @@ -116,32 +116,32 @@ So if you like acronyms, then POI is an acronym. If you hate them, then we just used the name of the food for our project. If you wish to signify your love or hate for acronyms, use POI or Poi to refer to the project respectively.

- +
- +
- - +
+

A common misconception is that POI writes Excel files. POI is the name of the project. POI contains several components, one of which, HSSF, writes Excel files. The following are components of the entire POI project and a brief summary of their purpose.

- - +
+

POIFS is the oldest and most stable part of the project. It is our port of the OLE 2 Compound Document Format to pure Java. It supports both read and write functionality. All of our components ultimately rely on it by definition. Please see the POIFS project page for more information.

- - +
+

HSSF is our port of the Microsoft Excel 97(-2002) file format (BIFF8) to pure Java. It supports read and write capability. Please see the HSSF project page for more information.

- - +
+

HDF is our port of the Microsoft Word 97 file format to pure Java. It supports read and write capability. Please see the HDF project page for more information. This component is in the early stages of design. Jump in!

- - +
+

HPSF is our port of the OLE 2 property set format to pure Java. Property sets are mostly use to store a document's properties (title, author, date of last modification etc.), but they can be used @@ -149,17 +149,17 @@ read functionality only. Please see the HPSF project page for more information.

- +
- +
- +

The HSSF Serializer, which was part of our 1.0 release and last builds on Sourceforge, has been donated to the Cocoon project. We're currently in the process of porting it over.

- +
- +

So you'd like to contribute to the project? Great! We need enthusiastic, hard-working, talented folks to help us on the project in several areas. The first is bug reports and feature requests! The second is documentation - @@ -173,7 +173,7 @@

- +