Tweaks to the iterator use guides for hssf
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@618690 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
7377714861
commit
fc6afc8849
@ -236,16 +236,51 @@
|
|||||||
</source>
|
</source>
|
||||||
</section>
|
</section>
|
||||||
<anchor id="Iterator"/>
|
<anchor id="Iterator"/>
|
||||||
<section><title>Iterate over rows and cells (including Java 5 foreach loops)</title>
|
<section><title>Iterate over rows and cells</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. This is possible with
|
||||||
5 or later, then this is especially handy, as it'll allow the
|
a simple for loop.</p>
|
||||||
new foreach loop support to work.</p>
|
|
||||||
<p>Luckily, this is very easy. HSSFRow defines a
|
<p>Luckily, this is very easy. HSSFRow 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 HSSFSheet 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
|
||||||
|
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>
|
||||||
|
<source>
|
||||||
|
HSSFSheet sheet = wb.getSheetAt(0);
|
||||||
|
for (Iterator rit = sheet.rowIterator(); rit.hasNext(); ) {
|
||||||
|
HSSFRow row = (HSSFRow)rit.next();
|
||||||
|
for (Iterator cit = row.cellIterator(); cit.hasNext(); ) {
|
||||||
|
HSSFCell cell = (HSSFCell)cit.next();
|
||||||
|
// Do something here
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</source>
|
||||||
|
<source>
|
||||||
|
HSSFSheet sheet = wb.getSheetAt(0);
|
||||||
|
for (Iterator<HSSFRow> rit = (Iterator<HSSFRow>)sheet.rowIterator(); rit.hasNext(); ) {
|
||||||
|
HSSFRow row = rit.next();
|
||||||
|
for (Iterator<HSSFCell> cit = (Iterator<HSSFCell>)row.cellIterator(); cit.hasNext(); ) {
|
||||||
|
HSSFCell cell = cit.next();
|
||||||
|
// Do something here
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</source>
|
||||||
|
</section>
|
||||||
|
<section><title>Iterate over rows and cells using Java 1.5 foreach loops - OOXML Branch Only</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
|
||||||
|
implement <em>java.lang.Iterable</em> to allow foreach
|
||||||
|
loops. For HSSFRow this allows access to the
|
||||||
|
<em>CellIterator</em> inner class to handle iterating over
|
||||||
|
the cells, and for HSSFSheet gives the
|
||||||
|
<em>rowIterator()</em> to iterator over all the rows.</p>
|
||||||
<source>
|
<source>
|
||||||
HSSFSheet sheet = wb.getSheetAt(0);
|
HSSFSheet sheet = wb.getSheetAt(0);
|
||||||
for (HSSFRow row : sheet.rowIterator()) {
|
for (HSSFRow row : sheet.rowIterator()) {
|
||||||
@ -254,6 +289,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
</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>
|
||||||
|
Loading…
Reference in New Issue
Block a user