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 <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 sheet, or all the cells in a row. This is possible with
a simple for loop.</p> 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 <em>CellIterator</em> inner class to handle iterating over
the cells (get one with a call to <em>row.cellIterator()</em>), 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> give an iterator over all the rows.</p>
<p>(Unfortunately, due to the broken and <p>Alternately, Sheet and Row both implement java.lang.Iterable,
backwards-incompatible way that Java 5 foreach loops were so if you're using Java 1.5, you can simply take advantage
implemented, it isn't possible to use them on a codebase of the built in "foreach" support - see below.</p>
that supports Java 1.4, as POI does)</p>
<source> <source>
HSSFSheet sheet = wb.getSheetAt(0); Sheet sheet = wb.getSheetAt(0);
for (Iterator rit = sheet.rowIterator(); rit.hasNext(); ) { for (Iterator rit = sheet.rowIterator(); rit.hasNext(); ) {
HSSFRow row = (HSSFRow)rit.next(); Row row = (Row)rit.next();
for (Iterator cit = row.cellIterator(); cit.hasNext(); ) { for (Iterator cit = row.cellIterator(); cit.hasNext(); ) {
HSSFCell cell = (HSSFCell)cit.next(); Cell cell = (Cell)cit.next();
// Do something here // Do something here
} }
} }
@ -284,26 +283,25 @@
} }
</source> </source>
</section> </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 <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 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 5 or later, then this is especially handy, as it'll allow the
new foreach loop support to work.</p> 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 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 <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> <em>rowIterator()</em> to iterator over all the rows.</p>
<source> <source>
HSSFSheet sheet = wb.getSheetAt(0); Sheet sheet = wb.getSheetAt(0);
for (HSSFRow row : sheet.rowIterator()) { for (Row row : sheet) {
for (HSSFCell cell : row.cellIterator()) { for (Cell cell : row) {
// Do something here // Do something here
} }
} }
</source> </source>
<note>This only works on the OOXML branch of POI</note>
</section> </section>
<anchor id="TextExtraction"/> <anchor id="TextExtraction"/>
<section><title>Text Extraction</title> <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.Cell;
import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.CreationHelper; 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.Row;
import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.Workbook;
@ -125,4 +123,16 @@ public class FromQuickGuide {
wb.write(fileOut); wb.write(fileOut);
fileOut.close(); 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());
}
}
}
} }