Various quickguide updates

git-svn-id: https://svn.apache.org/repos/asf/poi/branches/ooxml@642740 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Nick Burch 2008-03-30 14:03:37 +00:00
parent f14684fd69
commit d8f457d03e
2 changed files with 27 additions and 19 deletions

View File

@ -254,21 +254,20 @@
<p>Sometimes, you'd like to just iterate over all the rows in
a sheet, or all the cells in a row. This is possible with
a simple for loop.</p>
<p>Luckily, this is very easy. HSSFRow defines a
<p>Luckily, this is very easy. Row defines a
<em>CellIterator</em> inner class to handle iterating over
the cells (get one with a call to <em>row.cellIterator()</em>),
and HSSFSheet provides a <em>rowIterator()</em> method to
and Sheet provides a <em>rowIterator()</em> method to
give an iterator over all the rows.</p>
<p>(Unfortunately, due to the broken and
backwards-incompatible way that Java 5 foreach loops were
implemented, it isn't possible to use them on a codebase
that supports Java 1.4, as POI does)</p>
<p>Alternately, Sheet and Row both implement java.lang.Iterable,
so if you're using Java 1.5, you can simply take advantage
of the built in "foreach" support - see below.</p>
<source>
HSSFSheet sheet = wb.getSheetAt(0);
Sheet sheet = wb.getSheetAt(0);
for (Iterator rit = sheet.rowIterator(); rit.hasNext(); ) {
HSSFRow row = (HSSFRow)rit.next();
Row row = (Row)rit.next();
for (Iterator cit = row.cellIterator(); cit.hasNext(); ) {
HSSFCell cell = (HSSFCell)cit.next();
Cell cell = (Cell)cit.next();
// Do something here
}
}
@ -284,26 +283,25 @@
}
</source>
</section>
<section><title>Iterate over rows and cells using Java 1.5 foreach loops - OOXML Branch Only</title>
<section><title>Iterate over rows and cells using Java 1.5 foreach loops</title>
<p>Sometimes, you'd like to just iterate over all the rows in
a sheet, or all the cells in a row. If you are using Java
5 or later, then this is especially handy, as it'll allow the
new foreach loop support to work.</p>
<p>Luckily, this is very easy. Both HSSFSheet and HSSFRow
<p>Luckily, this is very easy. Both Sheet and Row
implement <em>java.lang.Iterable</em> to allow foreach
loops. For HSSFRow this allows access to the
loops. For Row this allows access to the
<em>CellIterator</em> inner class to handle iterating over
the cells, and for HSSFSheet gives the
the cells, and for Sheet gives the
<em>rowIterator()</em> to iterator over all the rows.</p>
<source>
HSSFSheet sheet = wb.getSheetAt(0);
for (HSSFRow row : sheet.rowIterator()) {
for (HSSFCell cell : row.cellIterator()) {
Sheet sheet = wb.getSheetAt(0);
for (Row row : sheet) {
for (Cell cell : row) {
// Do something here
}
}
</source>
<note>This only works on the OOXML branch of POI</note>
</section>
<anchor id="TextExtraction"/>
<section><title>Text Extraction</title>

View File

@ -24,8 +24,6 @@ import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.CreationHelper;
import org.apache.poi.ss.usermodel.DataFormat;
import org.apache.poi.ss.usermodel.RichTextString;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
@ -125,4 +123,16 @@ public class FromQuickGuide {
wb.write(fileOut);
fileOut.close();
}
public void iterating() {
Workbook wb = new HSSFWorkbook();
Sheet sheet = wb.createSheet("new sheet");
for (Row row : sheet) {
for (Cell cell : row) {
// Do something here
System.out.println(cell.getCellType());
}
}
}
}