--- /dev/null
+<html xmlns:NetUtils="org.apache.cocoon.util.NetUtils">
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title></title>
+<link href="ns4_toxins.css" type="text/css" rel="stylesheet">
+<link href="main.css" type="text/css" rel="stylesheet">
+<link media="print" href="print.css" type="text/css" rel="stylesheet">
+<link href="compact.css" type="text/css" title="compact" rel="alternate stylesheet">
+</head>
+<body marginheight="0" marginwidth="0">
+<div id="banner">
+<table width="100%" cellpadding="8" cellspacing="0" border="0">
+<tr>
+<td><a href="http://www.apache.org/"><img hspace="0" vspace="0" border="0" src="common/images/group-logo.gif"></a></td><td>
+<div align="right">
+<a href="http://www.apache.org/"><img hspace="0" vspace="0" border="0" src="common/images/project-logo.gif"></a>
+</div>
+</td>
+</tr>
+</table>
+</div>
+<div class="modbar">
+<small><strong><a href="http://www.apache.org/">www.apache.org</a> >
+ <a href="http://www.apache.org/">jakarta.apache.org</a> >
+ <a href="#"></a></strong></small>
+</div>
+<table id="main" width="98%" cellpadding="8" cellspacing="0" border="0">
+<tr valign="top">
+<td width="20%" id="leftcol">
+<div id="navcolumn">
+<div>
+<small><a href="../index.html">Main</a></small>
+</div>
+<div>
+<small><strong>HSSF</strong></small>
+<div>
+<small><a href="quick-guide.html">Quick Guide</a></small>
+</div>
+<div>
+<small><a href="how-to.html">HOWTO</a></small>
+</div>
+<div>
+<small><a href="use-case.html">Use Case</a></small>
+</div>
+<div>
+<small><a href="diagrams.html">Pictorial Docs</a></small>
+</div>
+<div>
+<small><a href="alternatives.html">Alternatives</a></small>
+</div>
+</div>
+<div>
+<small><strong>Contributer's Guide</strong></small>
+<div>
+<small><a href="record-generator.html">Record Generator</a></small>
+</div>
+</div>
+</div>
+<div id="helptext">
+<table width="100%" cellpadding="3" cellspacing="0" border="0">
+<tr>
+<th>How do I...?</th>
+</tr>
+<tr>
+<td>
+<div>Learn more about this project? </div>
+<div>Print this page...</div>
+<div>Troubleshoot...</div>
+</td>
+</tr>
+</table>
+</div>
+</td><td id="bodycol" width="100%">
+<div id="topmodule">
+<table width="100%" cellpadding="3" cellspacing="0" border="0">
+<tr>
+<td nowrap="nowrap">
+<form method="get" action="http://www.google.com/search" onsubmit="q.value = query.value + ' site:jakarta.apache.org'">
+<input type="hidden" name="q"><input maxlength="255" size="35" name="id" id="query" type="text">
+ <input type="button" value="Search" name="Search">
+ <img border="0" alt="" height="15" width="2" src="images/seperator2.gif">
+ <input type="radio" name="web" value="web">web site <input type="radio" name="mail" value="mail">mail lists
+ </form>
+</td>
+</tr>
+</table>
+</div>
+<h2>HSSF</h2>
+<font color="#525D76"><i>Alternatives to HSSF</i></font>
+<br>
+<font size="-2" color="#000000">
+<p>
+<a href="mailto:"></a>
+</p>
+</font>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#003063"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>Alternatives</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p>
+ Maybe it's unwise to advertise your competitors but we believe
+ competition is good and we have the best support reading and
+ write Excel workbooks currently available.
+ </p>
+
+<table width="100%" cellspacing="2" cellpadding="2" border="0">
+
+<tr>
+
+<td><b>Product</b></td>
+ <td><b>URL</b></td>
+ <td><b>Description</b></td>
+
+</tr>
+
+<tr>
+
+<td>Formula One</td>
+ <td>
+ <a href="http://www.tidestone.com/">www.tidestone.com</a>
+ </td>
+ <td>An alternative to this project is to
+ buy the $10,000 Formula 1 library
+ and accept its crude api and limitations.</td>
+
+</tr>
+
+<tr>
+
+<td>Visual Basic</td>
+ <td>
+ <a href="http://www.microsoft.com/">www.microsoft.com</a>
+ </td>
+ <td>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.</td>
+
+</tr>
+
+<tr>
+
+<td>JExcel</td>
+ <td>http://stareyes.homeip.net:8888</td>
+ <td>Frequently unavailable. Little currently known about it's capabilities.</td>
+
+</tr>
+
+<tr>
+
+<td>JWorkbook</td>
+ <td>http://www.object-refinery.com/jworkbook/index.html</td>
+ <td>This effort supports Gnumeric and Excel, however the Excel part is done using POI anyway.</td>
+
+</tr>
+
+<tr>
+
+<td>xlReader</td>
+ <td><a href="http://www.sourceforge.net/projects/xlrd">http://www.sourceforge.net/projects/xlrd</a></td>
+ <td>Provides decent support for reading Excel.</td>
+
+</tr>
+
+<tr>
+
+<td>Excel ODBC Driver</td>
+ <td><a href="http://www.nwlink.com/~leewal/content/exceljavasample.htm">http://www.nwlink.com/~leewal/content/exceljavasample.htm</a></td>
+ <td>ODBC offers a somewhat wierd method for using Excel.</td>
+
+</tr>
+
+<tr>
+
+<td>ExtenXLS</td>
+ <td><a href="http://www.extentech.com/products/ExtenXLS/docs/intro3.jsp">http://www.extentech.com/products/ExtenXLS/docs/intro3.jsp</a></td>
+ <td>Commercial library for reading, modifying and writing Excel spreadsheets. Not cheap but
+ certainly a lot more affordable than Formula 1. No idea as to it's quality.</td>
+
+</tr>
+
+<tr>
+
+<td>J-Integra Java-Excel Bridge</td>
+ <td><a href="http://www.intrinsyc.com/products/bridging/jintegra.asp">http://www.intrinsyc.com/products/bridging/jintegra.asp</a></td>
+ <td>Uses DCOM to an Excel instance on a windows machine.</td>
+
+</tr>
+
+<tr>
+
+<td>Perl & C</td>
+ <td>-</td>
+ <td>There are a number of perl and C libraries, however none of them are consistent.</td>
+
+</tr>
+
+</table>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+</td>
+</tr>
+</table>
+<div id="footer">
+<table cellpadding="4" cellspacing="0" border="0">
+<tr>
+<td><a href="http://www.apache.org/">Copyright © 1999-2002 The Apache Software Foundation. All Rights Reserved.</a></td>
+</tr>
+<tr>
+<td align="right" width="100%">
+<br>
+</td>
+</tr>
+<tr>
+<td align="right" width="100%"><a href="http://krysalis.org/"><img alt="Krysalis Logo" src="images/krysalis-compatible.jpg"></a><a href="http://xml.apache.org/cocoon/"><img alt="Cocoon Logo" src="images/built-with-cocoon.gif"></a><a href="http://jakarta.apache.org/ant/"><img alt="Ant Logo" src="images/ant_logo_medium.gif"></a></td>
+</tr>
+</table>
+</div>
+</body>
+</html>
--- /dev/null
+<html xmlns:NetUtils="org.apache.cocoon.util.NetUtils">
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title></title>
+<link href="ns4_toxins.css" type="text/css" rel="stylesheet">
+<link href="main.css" type="text/css" rel="stylesheet">
+<link media="print" href="print.css" type="text/css" rel="stylesheet">
+<link href="compact.css" type="text/css" title="compact" rel="alternate stylesheet">
+</head>
+<body marginheight="0" marginwidth="0">
+<div id="banner">
+<table width="100%" cellpadding="8" cellspacing="0" border="0">
+<tr>
+<td><a href="http://www.apache.org/"><img hspace="0" vspace="0" border="0" src="common/images/group-logo.gif"></a></td><td>
+<div align="right">
+<a href="http://www.apache.org/"><img hspace="0" vspace="0" border="0" src="common/images/project-logo.gif"></a>
+</div>
+</td>
+</tr>
+</table>
+</div>
+<div class="modbar">
+<small><strong><a href="http://www.apache.org/">www.apache.org</a> >
+ <a href="http://www.apache.org/">jakarta.apache.org</a> >
+ <a href="#"></a></strong></small>
+</div>
+<table id="main" width="98%" cellpadding="8" cellspacing="0" border="0">
+<tr valign="top">
+<td width="20%" id="leftcol">
+<div id="navcolumn">
+<div>
+<small><a href="../index.html">Main</a></small>
+</div>
+<div>
+<small><strong>HSSF</strong></small>
+<div>
+<small><a href="quick-guide.html">Quick Guide</a></small>
+</div>
+<div>
+<small><a href="how-to.html">HOWTO</a></small>
+</div>
+<div>
+<small><a href="use-case.html">Use Case</a></small>
+</div>
+<div>
+<small><a href="diagrams.html">Pictorial Docs</a></small>
+</div>
+<div>
+<small><a href="alternatives.html">Alternatives</a></small>
+</div>
+</div>
+<div>
+<small><strong>Contributer's Guide</strong></small>
+<div>
+<small><a href="record-generator.html">Record Generator</a></small>
+</div>
+</div>
+</div>
+<div id="helptext">
+<table width="100%" cellpadding="3" cellspacing="0" border="0">
+<tr>
+<th>How do I...?</th>
+</tr>
+<tr>
+<td>
+<div>Learn more about this project? </div>
+<div>Print this page...</div>
+<div>Troubleshoot...</div>
+</td>
+</tr>
+</table>
+</div>
+</td><td id="bodycol" width="100%">
+<div id="topmodule">
+<table width="100%" cellpadding="3" cellspacing="0" border="0">
+<tr>
+<td nowrap="nowrap">
+<form method="get" action="http://www.google.com/search" onsubmit="q.value = query.value + ' site:jakarta.apache.org'">
+<input type="hidden" name="q"><input maxlength="255" size="35" name="id" id="query" type="text">
+ <input type="button" value="Search" name="Search">
+ <img border="0" alt="" height="15" width="2" src="images/seperator2.gif">
+ <input type="radio" name="web" value="web">web site <input type="radio" name="mail" value="mail">mail lists
+ </form>
+</td>
+</tr>
+</table>
+</div>
+<h2>Quick Guide to HSSF Features</h2>
+<font size="-2" color="#000000">
+<p>
+<a href="mailto:"></a>
+</p>
+</font>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#003063"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>Quick Guide to Features</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p>
+ 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 <a href="how-to.html">HOWTO</a>
+ guide as it contains actual descriptions of how to use this stuff.
+ </p>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#003063"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>Index of Features</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<ul>
+
+<li>
+<a href="#NewWorkbook">How to create a new workbook</a>
+</li>
+
+<li>
+<a href="#NewSheet">How to create a sheet</a>
+</li>
+
+<li>
+<a href="#CreateCells">How to create cells</a>
+</li>
+
+<li>
+<a href="#CreateDateCells">How to create date cells</a>
+</li>
+
+<li>
+<a href="#CellTypes">Working with different types of cells</a>
+</li>
+
+<li>
+<a href="#Alignment">Aligning cells</a>
+</li>
+
+<li>
+<a href="#Borders">Working with borders</a>
+</li>
+
+<li>
+<a href="#FrillsAndFills">Fills and color</a>
+</li>
+
+<li>
+<a href="#MergedCells">Merging cells</a>
+</li>
+
+<li>
+<a href="#WorkingWithFonts">Working with fonts</a>
+</li>
+
+<li>
+<a href="#ReadWriteWorkbook">Reading and writing</a>
+</li>
+
+</ul>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#003063"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>Features</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<anchor id="NewWorkbook"></anchor>
+
+<h4>New Workbook</h4>
+
+<div align="center">
+<table cellspacing="2" cellpadding="2" border="1">
+<tr>
+<td>
+<pre>
+ HSSFWorkbook wb = new HSSFWorkbook();
+ FileOutputStream fileOut = new FileOutputStream("workbook.xls");
+ wb.write(fileOut);
+ fileOut.close();
+ </pre>
+</td>
+</tr>
+</table>
+</div>
+
+
+<anchor id="NewSheet"></anchor>
+
+<h4>New Sheet</h4>
+
+<div align="center">
+<table cellspacing="2" cellpadding="2" border="1">
+<tr>
+<td>
+<pre>
+ HSSFWorkbook wb = new HSSFWorkbook();
+ HSSFSheet sheet1 = wb.createSheet("new sheet");
+ HSSFSheet sheet2 = wb.createSheet("second sheet");
+ FileOutputStream fileOut = new FileOutputStream("workbook.xls");
+ wb.write(fileOut);
+ fileOut.close();
+ </pre>
+</td>
+</tr>
+</table>
+</div>
+
+
+<anchor id="CreateCells"></anchor>
+
+<h4>Creating Cells</h4>
+
+<div align="center">
+<table cellspacing="2" cellpadding="2" border="1">
+<tr>
+<td>
+<pre>
+ HSSFWorkbook wb = new HSSFWorkbook();
+ HSSFSheet sheet = wb.createSheet("new sheet");
+
+ // Create a row and put some cells in it. Rows are 0 based.
+ HSSFRow row = sheet.createRow((short)0);
+ // Create a cell and put a value in it.
+ HSSFCell cell = row.createCell((short)0);
+ cell.setCellValue(1);
+
+ // Or do it on one line.
+ row.createCell((short)1).setCellValue(1.2);
+ row.createCell((short)2).setCellValue("This is a string");
+ row.createCell((short)3).setCellValue(true);
+
+ // Write the output to a file
+ FileOutputStream fileOut = new FileOutputStream("workbook.xls");
+ wb.write(fileOut);
+ fileOut.close();
+ </pre>
+</td>
+</tr>
+</table>
+</div>
+
+
+<anchor id="CreateDateCells"></anchor>
+
+<h4>Creating Date Cells</h4>
+
+<div align="center">
+<table cellspacing="2" cellpadding="2" border="1">
+<tr>
+<td>
+<pre>
+ HSSFWorkbook wb = new HSSFWorkbook();
+ HSSFSheet sheet = wb.createSheet("new sheet");
+
+ // Create a row and put some cells in it. Rows are 0 based.
+ HSSFRow row = sheet.createRow((short)0);
+
+ // Create a cell and put a date value in it. The first cell is not styled
+ // as a date.
+ HSSFCell cell = row.createCell((short)0);
+ cell.setCellValue(new Date());
+
+ // we style the second cell as a date (and time). It is important to
+ // create a new cell style from the workbook otherwise you can end up
+ // modifying the built in style and effecting not only this cell but other cells.
+ HSSFCellStyle cellStyle = wb.createCellStyle();
+ cellStyle.setDataFormat(HSSFDataFormat.getFormat("m/d/yy h:mm"));
+ cell = row.createCell((short)1);
+ cell.setCellValue(new Date());
+ cell.setCellStyle(cellStyle);
+
+ // Write the output to a file
+ FileOutputStream fileOut = new FileOutputStream("workbook.xls");
+ wb.write(fileOut);
+ fileOut.close();
+ </pre>
+</td>
+</tr>
+</table>
+</div>
+
+
+<anchor id="CellTypes"></anchor>
+
+<h4>Working with different types of cells</h4>
+
+<div align="center">
+<table cellspacing="2" cellpadding="2" border="1">
+<tr>
+<td>
+<pre>
+ HSSFWorkbook wb = new HSSFWorkbook();
+ HSSFSheet sheet = wb.createSheet("new sheet");
+ HSSFRow row = sheet.createRow((short)2);
+ row.createCell((short) 0).setCellValue(1.1);
+ row.createCell((short) 1).setCellValue(new Date());
+ row.createCell((short) 2).setCellValue("a string");
+ row.createCell((short) 3).setCellValue(true);
+ row.createCell((short) 4).setCellType(HSSFCell.CELL_TYPE_ERROR);
+
+ // Write the output to a file
+ FileOutputStream fileOut = new FileOutputStream("workbook.xls");
+ wb.write(fileOut);
+ fileOut.close();
+ </pre>
+</td>
+</tr>
+</table>
+</div>
+
+
+<anchor id="Alignment"></anchor>
+
+<h4>Demonstrates various alignment options</h4>
+
+<div align="center">
+<table cellspacing="2" cellpadding="2" border="1">
+<tr>
+<td>
+<pre>
+ public static void main(String[] args)
+ throws IOException
+ {
+ HSSFWorkbook wb = new HSSFWorkbook();
+ HSSFSheet sheet = wb.createSheet("new sheet");
+ HSSFRow row = sheet.createRow((short) 2);
+ createCell(wb, row, (short) 0, HSSFCellStyle.ALIGN_CENTER);
+ createCell(wb, row, (short) 1, HSSFCellStyle.ALIGN_CENTER_SELECTION);
+ createCell(wb, row, (short) 2, HSSFCellStyle.ALIGN_FILL);
+ createCell(wb, row, (short) 3, HSSFCellStyle.ALIGN_GENERAL);
+ createCell(wb, row, (short) 4, HSSFCellStyle.ALIGN_JUSTIFY);
+ createCell(wb, row, (short) 5, HSSFCellStyle.ALIGN_LEFT);
+ createCell(wb, row, (short) 6, HSSFCellStyle.ALIGN_RIGHT);
+
+ // Write the output to a file
+ FileOutputStream fileOut = new FileOutputStream("workbook.xls");
+ wb.write(fileOut);
+ fileOut.close();
+
+ }
+
+ /**
+ * Creates a cell and aligns it a certain way.
+ *
+ * @param wb the workbook
+ * @param row the row to create the cell in
+ * @param column the column number to create the cell in
+ * @param align the alignment for the cell.
+ */
+ private static void createCell(HSSFWorkbook wb, HSSFRow row, short column, short align)
+ {
+ HSSFCell cell = row.createCell(column);
+ cell.setCellValue("Align It");
+ HSSFCellStyle cellStyle = wb.createCellStyle();
+ cellStyle.setAlignment(align);
+ cell.setCellStyle(cellStyle);
+ }
+ </pre>
+</td>
+</tr>
+</table>
+</div>
+
+
+<anchor id="Borders"></anchor>
+
+<h4>Working with borders</h4>
+
+<div align="center">
+<table cellspacing="2" cellpadding="2" border="1">
+<tr>
+<td>
+<pre>
+ HSSFWorkbook wb = new HSSFWorkbook();
+ HSSFSheet sheet = wb.createSheet("new sheet");
+
+ // Create a row and put some cells in it. Rows are 0 based.
+ HSSFRow row = sheet.createRow((short) 1);
+
+ // Create a cell and put a value in it.
+ HSSFCell cell = row.createCell((short) 1);
+ cell.setCellValue(4);
+
+ // Style the cell with borders all around.
+ HSSFCellStyle style = wb.createCellStyle();
+ style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
+ style.setBottomBorderColor(HSSFCellStyle.BLACK);
+ style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
+ style.setLeftBorderColor(HSSFCellStyle.GREEN);
+ style.setBorderRight(HSSFCellStyle.BORDER_THIN);
+ style.setRightBorderColor(HSSFCellStyle.BLUE);
+ style.setBorderTop(HSSFCellStyle.BORDER_MEDIUM_DASHED);
+ style.setTopBorderColor(HSSFCellStyle.AUTOMATIC);
+ cell.setCellStyle(style);
+
+ // Write the output to a file
+ FileOutputStream fileOut = new FileOutputStream("workbook.xls");
+ wb.write(fileOut);
+ fileOut.close();
+ </pre>
+</td>
+</tr>
+</table>
+</div>
+
+
+<anchor id="FillsAndFrills"></anchor>
+
+<h4>Fills and colors</h4>
+
+<div align="center">
+<table cellspacing="2" cellpadding="2" border="1">
+<tr>
+<td>
+<pre>
+ HSSFWorkbook wb = new HSSFWorkbook();
+ HSSFSheet sheet = wb.createSheet("new sheet");
+
+ // Create a row and put some cells in it. Rows are 0 based.
+ HSSFRow row = sheet.createRow((short) 1);
+
+ // Aqua background
+ HSSFCellStyle style = wb.createCellStyle();
+ style.setFillBackgroundColor(HSSFCellStyle.AQUA);
+ style.setFillPattern(HSSFCellStyle.BIG_SPOTS);
+ HSSFCell cell = row.createCell((short) 1);
+ cell.setCellValue("X");
+ cell.setCellStyle(style);
+
+ // Orange "foreground", foreground being the fill foreground not the font color.
+ style = wb.createCellStyle();
+ style.setFillForegroundColor(HSSFCellStyle.ORANGE);
+ style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
+ cell = row.createCell((short) 2);
+ cell.setCellValue("X");
+ cell.setCellStyle(style);
+
+ // Write the output to a file
+ FileOutputStream fileOut = new FileOutputStream("workbook.xls");
+ wb.write(fileOut);
+ fileOut.close();
+ </pre>
+</td>
+</tr>
+</table>
+</div>
+
+
+<anchor id="MergedCells"></anchor>
+
+<h4>Merging cells</h4>
+
+<div align="center">
+<table cellspacing="2" cellpadding="2" border="1">
+<tr>
+<td>
+<pre>
+ HSSFWorkbook wb = new HSSFWorkbook();
+ HSSFSheet sheet = wb.createSheet("new sheet");
+
+ HSSFRow row = sheet.createRow((short) 1);
+ HSSFCell cell = row.createCell((short) 1);
+ cell.setCellValue("This is a test of merging");
+
+ sheet.addMergedRegion(new Region(1,(short)1,1,(short)2));
+
+ // Write the output to a file
+ FileOutputStream fileOut = new FileOutputStream("workbook.xls");
+ wb.write(fileOut);
+ fileOut.close();
+ </pre>
+</td>
+</tr>
+</table>
+</div>
+
+
+<anchor id="WorkingWithFonts"></anchor>
+
+<h4>Working with fonts</h4>
+
+<div align="center">
+<table cellspacing="2" cellpadding="2" border="1">
+<tr>
+<td>
+<pre>
+ HSSFWorkbook wb = new HSSFWorkbook();
+ HSSFSheet sheet = wb.createSheet("new sheet");
+
+ // Create a row and put some cells in it. Rows are 0 based.
+ HSSFRow row = sheet.createRow((short) 1);
+
+ // Create a new font and alter it.
+ HSSFFont font = wb.createFont();
+ font.setFontHeightInPoints((short)24);
+ font.setFontName("Courier New");
+ font.setItalic(true);
+ font.setStrikeout(true);
+
+ // Fonts are set into a style so create a new one to use.
+ HSSFCellStyle style = wb.createCellStyle();
+ style.setFont(font);
+
+ // Create a cell and put a value in it.
+ HSSFCell cell = row.createCell((short) 1);
+ cell.setCellValue("This is a test of fonts");
+ cell.setCellStyle(style);
+
+ // Write the output to a file
+ FileOutputStream fileOut = new FileOutputStream("workbook.xls");
+ wb.write(fileOut);
+ fileOut.close();
+ </pre>
+</td>
+</tr>
+</table>
+</div>
+
+
+<anchor id="ReadWriteWorkbook"></anchor>
+
+<h4>Reading and Rewriting Workbooks</h4>
+
+<div align="center">
+<table cellspacing="2" cellpadding="2" border="1">
+<tr>
+<td>
+<pre>
+ POIFSFileSystem fs =
+ new POIFSFileSystem(new FileInputStream("workbook.xls"));
+ HSSFWorkbook wb = new HSSFWorkbook(fs);
+ HSSFSheet sheet = wb.getSheetAt(0);
+ HSSFRow row = sheet.getRow(2);
+ HSSFCell cell = row.getCell((short)3);
+ if (cell == null)
+ cell = row.createCell((short)3);
+ cell.setCellType(HSSFCell.CELL_TYPE_STRING);
+ cell.setCellValue("a test");
+
+ // Write the output to a file
+ FileOutputStream fileOut = new FileOutputStream("workbook.xls");
+ wb.write(fileOut);
+ fileOut.close();
+ </pre>
+</td>
+</tr>
+</table>
+</div>
+
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+</td>
+</tr>
+</table>
+<div id="footer">
+<table cellpadding="4" cellspacing="0" border="0">
+<tr>
+<td><a href="http://www.apache.org/">Copyright © 1999-2002 The Apache Software Foundation. All Rights Reserved.</a></td>
+</tr>
+<tr>
+<td align="right" width="100%">
+<br>
+</td>
+</tr>
+<tr>
+<td align="right" width="100%"><a href="http://krysalis.org/"><img alt="Krysalis Logo" src="images/krysalis-compatible.jpg"></a><a href="http://xml.apache.org/cocoon/"><img alt="Cocoon Logo" src="images/built-with-cocoon.gif"></a><a href="http://jakarta.apache.org/ant/"><img alt="Ant Logo" src="images/ant_logo_medium.gif"></a></td>
+</tr>
+</table>
+</div>
+</body>
+</html>