<?xml version="1.0" encoding="UTF-8"?>
<!--
   ====================================================================
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
   ====================================================================
-->
<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" "../dtd/document-v11.dtd">

<document>
 <header>
  <title>Jakarta POI - HSSF</title>
  <subtitle>Overview</subtitle>
  <authors>
   <person name="Andrew C. Oliver" email="acoliver@apache.org"/>     
   <person name="Nicola Ken Barozzi" email="barozzi@nicolaken.com"/>     
  </authors>
 </header>

 <body>
 <section><title>Overview</title>

  <p>HSSF is the POI Project's pure Java implementation of the Excel '97(-2002) file format.</p>
  <p>HSSF provides a way to read spreadsheets create, modify, read and write XLS spreadsheets
     It provides: 
  </p>
  <ul>
        <li>low level structures for those with special needs</li>
        <li>an eventmodel api for efficient read-only access</li>
        <li>a full usermodel api for creating, reading and modifying XLS files</li>
  </ul>
  <p>
        Truth be told there is probably a better way to generate your spreadsheet
        generation (yet you'll still be using HSSF indirectly).  At the time of
        this writing we're in the process of moving the HSSF Serializer over to 
        the <link href="http://cocoon.apache.org/">Apache Cocoon
        Project</link>.  With Cocoon you can serialize any XML datasource (of
        which might be a ESQL page outputting in SQL for instance) by simply 
        applying the stylesheet and designating the serializer.
  </p>
  <p>
        If you're merely reading spreadsheet data, then use the eventmodel api
        in the org.apache.poi.hssf.eventmodel package.
  </p>
  <p>
        If you're modifying spreadsheet data then use the usermodel api.  You
        can also generate spreadsheets this way, but using Cocoon (which will do
        it this way indirectly) is the best way...we promise.
  </p>

  </section>
 </body>
</document>
