<section><title>Purpose</title>
<p>
The POI project consists of APIs for manipulating various file formats
- based upon Microsoft's OLE 2 Compound Document format using pure Java. In short, you can
- read and write MS Excel files using Java. Soon, you'll be able to read and write
- Word files using Java. POI is your Java Excel solution as well as your Java Word solution.
- However, we have a complete API for porting other OLE 2 Compound Document formats and welcome
- others to participate.
+ based upon Microsoft's OLE 2 Compound Document format, and Office OpenXML format, using
+ pure Java. In short, you can read and write MS Excel files using Java. In addition,
+ you can read and write MS Word and MS PowerPoint files using Java. POI is your Java Excel
+ solution (for Excel 97-2007). However, we have a complete API for porting other OLE 2
+ Compound Document formats and welcome others to participate.
</p>
<p>
OLE 2 Compound Document Format based files include most Microsoft Office
files such as XLS and DOC as well as MFC serialization API based file formats.
</p>
+ <p>
+ Office OpenXML Format based files include the new (2007+) xml based file formats,
+ including Microsoft office files such as XLSX, DOCX and PPTX.
+ </p>
<p>
As a general policy we try to collaborate as much as possible with other projects to
provide this functionality. Examples include: <link href="http://xml.apache.org/cocoon">Cocoon</link> for
We'll tackle this on a component level. POI refers to the whole project.
</p>
<p>
- So why should you use POIFS or HSSF?
+ So why should you use POIFS, HSSF or XSSF?
</p>
<p>
You'd use POIFS if you had a document written in OLE 2 Compound Document Format, probably written using
we say that POIFS is the most complete and correct implementation of this file format to date!
</p>
<p>
- You'd use HSSF if you needed to read or write an Excel file using Java (XLS). You can also read and modify
- spreadsheets using this API, although right now writing is more mature.
+ You'd use HSSF if you needed to read or write an Excel file using Java (XLS). You'd use
+ XSSF if you need to read or write an OOXML Excel file using Java (XLSX). The combined
+ SS interface allows you to easily read and write all kinds of Excel files (XLS and XLSX)
+ using Java.
</p>
</section>
</section>
pure Java. It supports both read and write functionality. All of our components ultimately rely on it by
definition. Please see <link href="./poifs/index.html">the POIFS project page</link> for more information.</p>
</section>
- <section><title>HSSF for Excel Documents</title>
- <p>HSSF is our port of the Microsoft Excel 97(-2003) file format (BIFF8) to pure Java. It supports read and write
- capability. Please see <link href="./hssf/index.html">the HSSF project page</link> for more information.</p>
+ <section><title>HSSF and XSSF for Excel Documents</title>
+ <p>HSSF is our port of the Microsoft Excel 97(-2007) file format (BIFF8) to pure
+ Java. XSSF is our port of the Microsoft Excel XML (2007+) file format (OOXML) to
+ pure Java. They both supports read and write capability. Please see
+ <link href="./hssf/index.html">the HSSF+XSSF project page</link> for more
+ information.</p>
</section>
<section><title>HWPF for Word Documents</title>
<p>HWPF is our port of the Microsoft Word 97 file format to pure