<?xml version="1.0"?>
<!DOCTYPE book PUBLIC "-//APACHE//DTD Cocoon Documentation Book V1.0//EN" "../dtd/book-cocoon-v10.dtd">
-<book software="Poi Project"
- title="HSSF"
- copyright="@year@ Poi Project">
+<book software="Poi Project"
+ title="HSSF"
+ copyright="@year@ Poi Project">
- <menu label="Navigation">
- <menu-item label="Main" href="../index.html"/>
- </menu>
+ <menu label="Navigation">
+ <menu-item label="Main" href="../index.html"/>
+ </menu>
- <menu label="HSSF">
- <menu-item label="Quick Guide" href="quick-guide.html"/>
- <menu-item label="HOWTO" href="how-to.html"/>
- <menu-item label="Use Case" href="use-case.html"/>
- <menu-item label="Pictorial Docs" href="diagrams.html"/>
- <menu-item label="Alternatives" href="alternatives.html"/>
- <menu-item label="Limitations" href="limitations.html"/>
- </menu>
-
- <menu label="Contributer's Guide">
- <menu-item label="Record Generator" href="record-generator.html"/>
- </menu>
+ <menu label="HSSF">
+ <menu-item label="Quick Guide" href="quick-guide.html"/>
+ <menu-item label="HOWTO" href="how-to.html"/>
+ <menu-item label="Use Case" href="use-case.html"/>
+ <menu-item label="Pictorial Docs" href="diagrams.html"/>
+ <menu-item label="Alternatives" href="alternatives.html"/>
+ <menu-item label="Limitations" href="limitations.html"/>
+ </menu>
+
+ <menu label="Contributer's Guide">
+ <menu-item label="Hacking HSSF" href="hacking-hssf.html"/>
+ <menu-item label="Record Generator" href="record-generator.html"/>
+ </menu>
</book>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" "../dtd/document-v11.dtd">
+
+<document>
+ <header>
+ <title>Hacking HSSF</title>
+ <authors>
+ <person email="glens@apache.org" name="Glen Stampoultzis" id="GJS"/>
+ <person email="acoliver@apache.org" name="Andrew Oliver" id="AO"/>
+ </authors>
+ </header>
+ <body>
+ <section title="Where Can I Find Documentation on Feature X">
+ <p>
+ You might find the
+ 'Excel 97 Developer's Kit' (out of print, Microsoft Press, no
+ restrictive covenants, available on Amazon.com) helpful for
+ understanding the file format.
+ </p>
+ <p>
+ Also useful is the <link href="http://sc.openoffice.org/excelfileformat.pdf">open office XLS spec</link>. We
+ are collaborating with the maintainer of the spec so if you think you can add something to their
+ document just send through your changes.
+ </p>
+ </section>
+ <section title="Help, I Can't Find Feature X Documented Anywhere">
+ <ol>
+ <li>
+ Look at OpenOffice.org or Gnumeric sources if its implemented there.
+ </li>
+ <li>
+ Use org.apache.poi.hssf.dev.BiffViewer to view the structure of the
+ file. Experiment by adding one criteria entry at a time. See what it
+ does to the structure, infer behavior and structure from it. Using the
+ unix diff command (or get cygwin from www.cygwin.com for windows) you
+ can figure out a lot very quickly. Unimplemented records show up as
+ 'UNKNOWN' and prints a hex dump.
+ </li>
+ </ol>
+ </section>
+ <section title="Low-level Record Generation">
+ <p>
+ Low level records can be time consuming to created. We created a record
+ generator to help generate some of the simpler tasks.
+ </p>
+ <p>
+ We use XML
+ descriptors to generate the Java code (which sure beats the heck out of
+ the PERL scripts originally used ;-) for low level records. The
+ generator is kinda alpha-ish right now and could use some enhancement,
+ so you may find that to be about 1/2 of the work. Notice this is in
+ org.apache.poi.hssf.record.definitions.
+ </p>
+ </section>
+ <section title="Important Notice">
+ One thing to note: ensure any participants in this process have never
+ signed a "Non Disclosure Agreement" with Microsoft, and have not
+ received any information covered by such an agreement. If they have
+ they'll not be able to participate in the POI project.
+ </section>
+ <section title="What Can I Work On?">
+ Check our <link href="../todo.html">todo list</link> or simply look for missing functionality. Start small
+ and work your way up.
+ </section>
+ <section title="What Else Should I Know?">
+ Make sure you <link href="http://jakarta.apache.org/poi/contrib.html">read the contibuting section</link>
+ as it contains more generation information about contributing to Poi in general.
+ </section>
+ </body>
+</document>
\ No newline at end of file