Merge from 1.5 branch
git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@352479 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
756c1f0a55
commit
6805caa4dc
src
documentation
images
logoRaPiGmbH1.pnglogoRaPiGmbH2.pnglogoRaPiGmbH3.pnglogoRaPiGmbH4.pnglogoRaPiGmbH5.pnglogoRaPiGmbH6.pnglogoRaPiGmbH7.png
xdocs
java/org/apache/poi/hssf
testcases/org/apache/poi/hssf/usermodel
BIN
src/documentation/images/logoRaPiGmbH1.png
Normal file
BIN
src/documentation/images/logoRaPiGmbH1.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 5.8 KiB |
BIN
src/documentation/images/logoRaPiGmbH2.png
Normal file
BIN
src/documentation/images/logoRaPiGmbH2.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 5.9 KiB |
BIN
src/documentation/images/logoRaPiGmbH3.png
Normal file
BIN
src/documentation/images/logoRaPiGmbH3.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 3.5 KiB |
BIN
src/documentation/images/logoRaPiGmbH4.png
Normal file
BIN
src/documentation/images/logoRaPiGmbH4.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 2.6 KiB |
BIN
src/documentation/images/logoRaPiGmbH5.png
Normal file
BIN
src/documentation/images/logoRaPiGmbH5.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 7.2 KiB |
BIN
src/documentation/images/logoRaPiGmbH6.png
Normal file
BIN
src/documentation/images/logoRaPiGmbH6.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 6.5 KiB |
BIN
src/documentation/images/logoRaPiGmbH7.png
Normal file
BIN
src/documentation/images/logoRaPiGmbH7.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 9.4 KiB |
@ -39,6 +39,7 @@
|
|||||||
|
|
||||||
<menu label="Get Involved">
|
<menu label="Get Involved">
|
||||||
<menu-item label="Contributing" href="contrib.html"/>
|
<menu-item label="Contributing" href="contrib.html"/>
|
||||||
|
<menu-item label="Branching" href="branching.html"/>
|
||||||
<menu-item label="Bug Database" href="http://nagoya.apache.org/bugzilla/buglist.cgi?product=POI"/>
|
<menu-item label="Bug Database" href="http://nagoya.apache.org/bugzilla/buglist.cgi?product=POI"/>
|
||||||
<menu-item label="CVS" href="http://jakarta.apache.org/site/cvsindex.html"/>
|
<menu-item label="CVS" href="http://jakarta.apache.org/site/cvsindex.html"/>
|
||||||
<menu-item label="Mail Lists" href="http://jakarta.apache.org/site/mail.html"/>
|
<menu-item label="Mail Lists" href="http://jakarta.apache.org/site/mail.html"/>
|
||||||
|
97
src/documentation/xdocs/branching.xml
Normal file
97
src/documentation/xdocs/branching.xml
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" "./dtd/document-v11.dtd">
|
||||||
|
|
||||||
|
<document>
|
||||||
|
|
||||||
|
<header>
|
||||||
|
<title>Branching</title>
|
||||||
|
<authors>
|
||||||
|
<person id="GJS" name="Glen Stampoultzis" email="glens@apache.org"/>
|
||||||
|
</authors>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<section title="Branching Conventions">
|
||||||
|
<p>
|
||||||
|
Branches are tagged in the following way:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>REL_1_5_BRANCH</li>
|
||||||
|
<li>REL_2_0_BRANCH</li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
Merge points should be tagged as follows:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>REL_1_5_BRANCH_MERGE1</li>
|
||||||
|
<li>REL_1_5_BRANCH_MERGE2</li>
|
||||||
|
<li>etc...</li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
Releases should be tagged as:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>REL_1_5</li>
|
||||||
|
<li>REL_1_5_1</li>
|
||||||
|
<li>REL_1_5_2</li>
|
||||||
|
<li>etc...</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
<section title="Branching Advise">
|
||||||
|
<p>
|
||||||
|
Don't forget which branch you are currently on. This is critically
|
||||||
|
important. Committing stuff to the wrong branch causes all sorts of
|
||||||
|
headaches. Best to name your checkout after the branch you are on.
|
||||||
|
</p>
|
||||||
|
</section>
|
||||||
|
<section title="Who Manages Branching?">
|
||||||
|
<p>
|
||||||
|
All branching is currently managed by Glen Stampoultzis. If you wish
|
||||||
|
to create your own branch please let him know. Merging is also
|
||||||
|
handled by Glen. Just pop him a mail if you feel it's necessary to
|
||||||
|
create a branch or perform a merge.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
The reason to go through a single point for branching is that it can be
|
||||||
|
an easy thing to get wrong. Having a single person managing branches
|
||||||
|
means there is less chance of getting getting our wires crossed with this
|
||||||
|
difficult area of CVS.
|
||||||
|
</p>
|
||||||
|
</section>
|
||||||
|
<section title="Currently Active Branches">
|
||||||
|
<p>
|
||||||
|
The following branches are currently active:
|
||||||
|
</p>
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
<b>Branch</b>
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
<b>Description</b>
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
HEAD
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
This is the trunk and is always active. Currently it is being used to continue development
|
||||||
|
of the 2.0 release.
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
REL_1_5_BRANCH
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
All bug fixes not specifically relevant to the 2.0 work should be placed in this branch.
|
||||||
|
From here they will merged back to the trunk and the merge point marked.
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</section>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</document>
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
<document>
|
<document>
|
||||||
<header>
|
<header>
|
||||||
<title></title>
|
<title>Project History</title>
|
||||||
<authors>
|
<authors>
|
||||||
<person id="AO" name="Andrew C. Oliver" email="acoliver@apache.org"/>
|
<person id="AO" name="Andrew C. Oliver" email="acoliver@apache.org"/>
|
||||||
</authors>
|
</authors>
|
||||||
|
@ -2,114 +2,139 @@
|
|||||||
<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" "document-v11.dtd">
|
<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" "document-v11.dtd">
|
||||||
|
|
||||||
<document>
|
<document>
|
||||||
<header>
|
<header>
|
||||||
<title></title>
|
<title></title>
|
||||||
<authors>
|
<authors>
|
||||||
<person id="AO" name="Andrew C. Oliver" email="acoliver@apache.org"/>
|
<person id="AO" name="Andrew C. Oliver" email="acoliver@apache.org"/>
|
||||||
</authors>
|
<person id="GS" name="Glen Stampoultzis" email="glens@apache.org"/>
|
||||||
</header>
|
</authors>
|
||||||
|
</header>
|
||||||
<body>
|
|
||||||
<section title="POI logos">
|
<body>
|
||||||
<p>
|
<section title="POI logos">
|
||||||
Here are the current logo submissions. Thanks to the artists!
|
<p>
|
||||||
</p>
|
Here are the current logo submissions. Thanks to the artists!
|
||||||
<section title="Michael Mosmann">
|
</p>
|
||||||
|
<section title="Michael Mosmann">
|
||||||
<p>
|
<p>
|
||||||
<img src="images/logoMichaelMosmann.png"/>
|
<img src="images/logoMichaelMosmann.png"/>
|
||||||
</p>
|
</p>
|
||||||
|
</section>
|
||||||
|
<section title="Loïc Lefèvre">
|
||||||
|
<p>
|
||||||
|
<img src="images/logoLoicLefevre.png"/>
|
||||||
|
<img src="images/logoLoicLefevre2.png"/>
|
||||||
|
</p>
|
||||||
|
</section>
|
||||||
|
<section title="Glen Stampoultzis">
|
||||||
|
<p>
|
||||||
|
<img src="images/logoGlenStampoutlzis.png"/>
|
||||||
|
</p>
|
||||||
|
</section>
|
||||||
|
<section title="Marcus Gustafsson">
|
||||||
|
<p>
|
||||||
|
<img src="images/logoGustafsson1.png"/>
|
||||||
|
<img src="images/logoGustafsson2.png"/>
|
||||||
|
</p>
|
||||||
|
</section>
|
||||||
|
<section title="Adrianus Handoyo">
|
||||||
|
<p>
|
||||||
|
<img src="images/logoAdria1.png"/>
|
||||||
|
<img src="images/logoAdria2.png"/>
|
||||||
|
<img src="images/logoAdria3.png"/>
|
||||||
|
</p>
|
||||||
|
</section>
|
||||||
|
<section title="RussellBeattie">
|
||||||
|
<p>
|
||||||
|
<img src="images/logoRussellBeattie1.png"/>
|
||||||
|
<img src="images/logoRussellBeattie2.png"/>
|
||||||
|
<img src="images/logoRussellBeattie3.png"/>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<img src="images/logoRussellBeattie4.png"/>
|
||||||
|
<img src="images/logoRussellBeattie5.png"/>
|
||||||
|
</p>
|
||||||
|
</section>
|
||||||
|
<section title="Daniel Fernandez">
|
||||||
|
<p>
|
||||||
|
<img src="images/logoDanielFernandez.png"/>
|
||||||
|
</p>
|
||||||
|
</section>
|
||||||
|
<section title="Andrew Clements">
|
||||||
|
<p>
|
||||||
|
<img src="images/logoAndrewClements.png"/>
|
||||||
|
<img src="images/logoAndrewClements2.png"/>
|
||||||
|
</p>
|
||||||
|
</section>
|
||||||
|
<section title="Wendy Wise">
|
||||||
|
<p>
|
||||||
|
<img src="images/logoWendyWise.png"/>
|
||||||
|
<img src="images/logoWendyWise2.png"/>
|
||||||
|
</p>
|
||||||
|
</section>
|
||||||
|
<section title="Nikhil Karmokar">
|
||||||
|
<p>
|
||||||
|
<img src="images/logoKarmokar1.png"/>
|
||||||
|
<img src="images/logoKarmokar1s.png"/>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<img src="images/logoKarmokar2.png"/>
|
||||||
|
<img src="images/logoKarmokar2s.png"/>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<img src="images/logoKarmokar3.png"/>
|
||||||
|
<img src="images/logoKarmokar3s.png"/>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<img src="images/logoKarmokar4.png"/>
|
||||||
|
<img src="images/logoKarmokar4s.png"/>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<img src="images/logoKarmokar5.png"/>
|
||||||
|
<img src="images/logoKarmokar5s.png"/>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<img src="images/logoKarmokar6.png"/>
|
||||||
|
<img src="images/logoKarmokar6s.png"/>
|
||||||
|
</p>
|
||||||
|
</section>
|
||||||
|
<section title="Lieven Janssen">
|
||||||
|
<p>
|
||||||
|
<img src="images/logoJanssen1.png"/>
|
||||||
|
<img src="images/logoJanssen2.png"/>
|
||||||
|
</p>
|
||||||
|
</section>
|
||||||
|
<section title="RaPi GmbH">
|
||||||
|
<p>
|
||||||
|
Contact Person: Fancy at: fancy at my-feiqi.com
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<img src="images/logoRaPiGmbH1.png"/>
|
||||||
|
<img src="images/logoRaPiGmbH2.png"/>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<img src="images/logoRaPiGmbH3.png"/>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<img src="images/logoRaPiGmbH4.png"/>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<img src="images/logoRaPiGmbH5.png"/>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<img src="images/logoRaPiGmbH6.png"/>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<img src="images/logoRaPiGmbH7.png"/>
|
||||||
|
</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
<section title="Loïc Lefèvre">
|
</body>
|
||||||
<p>
|
<footer>
|
||||||
<img src="images/logoLoicLefevre.png"/>
|
<legal>
|
||||||
<img src="images/logoLoicLefevre2.png"/>
|
Copyright (c) @year@ The Apache Software Foundation All rights reserved.
|
||||||
</p>
|
$Revision$ $Date$
|
||||||
</section>
|
</legal>
|
||||||
<section title="Glen Stampoultzis">
|
</footer>
|
||||||
<p>
|
|
||||||
<img src="images/logoGlenStampoutlzis.png"/>
|
|
||||||
</p>
|
|
||||||
</section>
|
|
||||||
<section title="Marcus Gustafsson">
|
|
||||||
<p>
|
|
||||||
<img src="images/logoGustafsson1.png"/>
|
|
||||||
<img src="images/logoGustafsson2.png"/>
|
|
||||||
</p>
|
|
||||||
</section>
|
|
||||||
<section title="Adrianus Handoyo">
|
|
||||||
<p>
|
|
||||||
<img src="images/logoAdria1.png"/>
|
|
||||||
<img src="images/logoAdria2.png"/>
|
|
||||||
<img src="images/logoAdria3.png"/>
|
|
||||||
</p>
|
|
||||||
</section>
|
|
||||||
<section title="RussellBeattie">
|
|
||||||
<p>
|
|
||||||
<img src="images/logoRussellBeattie1.png"/>
|
|
||||||
<img src="images/logoRussellBeattie2.png"/>
|
|
||||||
<img src="images/logoRussellBeattie3.png"/>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<img src="images/logoRussellBeattie4.png"/>
|
|
||||||
<img src="images/logoRussellBeattie5.png"/>
|
|
||||||
</p>
|
|
||||||
</section>
|
|
||||||
<section title="Daniel Fernandez">
|
|
||||||
<p>
|
|
||||||
<img src="images/logoDanielFernandez.png"/>
|
|
||||||
</p>
|
|
||||||
</section>
|
|
||||||
<section title="Andrew Clements">
|
|
||||||
<p>
|
|
||||||
<img src="images/logoAndrewClements.png"/>
|
|
||||||
<img src="images/logoAndrewClements2.png"/>
|
|
||||||
</p>
|
|
||||||
</section>
|
|
||||||
<section title="Wendy Wise">
|
|
||||||
<p>
|
|
||||||
<img src="images/logoWendyWise.png"/>
|
|
||||||
<img src="images/logoWendyWise2.png"/>
|
|
||||||
</p>
|
|
||||||
</section>
|
|
||||||
<section title="Nikhil Karmokar">
|
|
||||||
<p>
|
|
||||||
<img src="images/logoKarmokar1.png"/>
|
|
||||||
<img src="images/logoKarmokar1s.png"/>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<img src="images/logoKarmokar2.png"/>
|
|
||||||
<img src="images/logoKarmokar2s.png"/>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<img src="images/logoKarmokar3.png"/>
|
|
||||||
<img src="images/logoKarmokar3s.png"/>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<img src="images/logoKarmokar4.png"/>
|
|
||||||
<img src="images/logoKarmokar4s.png"/>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<img src="images/logoKarmokar5.png"/>
|
|
||||||
<img src="images/logoKarmokar5s.png"/>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<img src="images/logoKarmokar6.png"/>
|
|
||||||
<img src="images/logoKarmokar6s.png"/>
|
|
||||||
</p>
|
|
||||||
</section>
|
|
||||||
<section title="Lieven Janssen">
|
|
||||||
<p>
|
|
||||||
<img src="images/logoJanssen1.png"/>
|
|
||||||
<img src="images/logoJanssen2.png"/>
|
|
||||||
</p>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
</section>
|
|
||||||
</body>
|
|
||||||
<footer>
|
|
||||||
<legal>
|
|
||||||
Copyright (c) @year@ The Apache Software Foundation All rights reserved.
|
|
||||||
$Revision$ $Date$
|
|
||||||
</legal>
|
|
||||||
</footer>
|
|
||||||
</document>
|
</document>
|
||||||
|
@ -452,8 +452,8 @@ public class RowRecord
|
|||||||
LittleEndian.putShort(data, 0 + offset, sid);
|
LittleEndian.putShort(data, 0 + offset, sid);
|
||||||
LittleEndian.putShort(data, 2 + offset, ( short ) 16);
|
LittleEndian.putShort(data, 2 + offset, ( short ) 16);
|
||||||
LittleEndian.putShort(data, 4 + offset, getRowNumber());
|
LittleEndian.putShort(data, 4 + offset, getRowNumber());
|
||||||
LittleEndian.putShort(data, 6 + offset, getFirstCol());
|
LittleEndian.putShort(data, 6 + offset, getFirstCol() == -1 ? (short)0 : getFirstCol());
|
||||||
LittleEndian.putShort(data, 8 + offset, getLastCol());
|
LittleEndian.putShort(data, 8 + offset, getLastCol() == -1 ? (short)0 : getLastCol());
|
||||||
LittleEndian.putShort(data, 10 + offset, getHeight());
|
LittleEndian.putShort(data, 10 + offset, getHeight());
|
||||||
LittleEndian.putShort(data, 12 + offset, getOptimize());
|
LittleEndian.putShort(data, 12 + offset, getOptimize());
|
||||||
LittleEndian.putShort(data, 14 + offset, field_6_reserved);
|
LittleEndian.putShort(data, 14 + offset, field_6_reserved);
|
||||||
|
@ -292,8 +292,8 @@ public class HSSFRow
|
|||||||
* get the hssfcell representing a given column (logical cell) 0-based. If you
|
* get the hssfcell representing a given column (logical cell) 0-based. If you
|
||||||
* ask for a cell that is not defined....you get a null.
|
* ask for a cell that is not defined....you get a null.
|
||||||
*
|
*
|
||||||
* @param cellnum - 0 based column number
|
* @param cellnum 0 based column number
|
||||||
* @returns HSSFCell representing that column or null if undefined.
|
* @return HSSFCell representing that column or null if undefined.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public HSSFCell getCell(short cellnum)
|
public HSSFCell getCell(short cellnum)
|
||||||
@ -441,7 +441,7 @@ public class HSSFRow
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @returns cell iterator of the physically defined cells. Note element 4 may
|
* @return cell iterator of the physically defined cells. Note element 4 may
|
||||||
* actually be row cell depending on how many are defined!
|
* actually be row cell depending on how many are defined!
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
/* ====================================================================
|
/* ====================================================================
|
||||||
* The Apache Software License, Version 1.1
|
* The Apache Software License, Version 1.1
|
||||||
*
|
*
|
||||||
@ -60,11 +59,14 @@
|
|||||||
*/
|
*/
|
||||||
package org.apache.poi.hssf.usermodel;
|
package org.apache.poi.hssf.usermodel;
|
||||||
|
|
||||||
import org.apache.poi.util.POILogFactory;
|
|
||||||
import org.apache.poi.hssf.model.Sheet;
|
import org.apache.poi.hssf.model.Sheet;
|
||||||
import org.apache.poi.hssf.model.Workbook;
|
import org.apache.poi.hssf.model.Workbook;
|
||||||
import org.apache.poi.hssf.record.*;
|
import org.apache.poi.hssf.record.CellValueRecordInterface;
|
||||||
|
import org.apache.poi.hssf.record.RowRecord;
|
||||||
|
import org.apache.poi.hssf.record.VCenterRecord;
|
||||||
|
import org.apache.poi.hssf.record.WSBoolRecord;
|
||||||
import org.apache.poi.hssf.util.Region;
|
import org.apache.poi.hssf.util.Region;
|
||||||
|
import org.apache.poi.util.POILogFactory;
|
||||||
import org.apache.poi.util.POILogger;
|
import org.apache.poi.util.POILogger;
|
||||||
|
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
@ -74,12 +76,12 @@ import java.util.TreeMap;
|
|||||||
* High level representation of a worksheet.
|
* High level representation of a worksheet.
|
||||||
* @author Andrew C. Oliver (acoliver at apache dot org)
|
* @author Andrew C. Oliver (acoliver at apache dot org)
|
||||||
* @author Glen Stampoultzis (glens at apache.org)
|
* @author Glen Stampoultzis (glens at apache.org)
|
||||||
* @version 1.0-pre
|
* @author Libin Roman (romal at vistaportal.com)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class HSSFSheet
|
public class HSSFSheet
|
||||||
{
|
{
|
||||||
private static final int DEBUG = POILogger.DEBUG;
|
private static final int DEBUG = POILogger.DEBUG;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Used for compile-time optimization. This is the initial size for the collection of
|
* Used for compile-time optimization. This is the initial size for the collection of
|
||||||
@ -87,17 +89,17 @@ public class HSSFSheet
|
|||||||
* by setting this to a higher number and recompiling a custom edition of HSSFSheet.
|
* by setting this to a higher number and recompiling a custom edition of HSSFSheet.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public final static int INITIAL_CAPACITY = 20;
|
public final static int INITIAL_CAPACITY = 20;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* reference to the low level Sheet object
|
* reference to the low level Sheet object
|
||||||
*/
|
*/
|
||||||
|
|
||||||
private Sheet sheet;
|
private Sheet sheet;
|
||||||
private TreeMap rows;
|
private TreeMap rows;
|
||||||
private Workbook book;
|
private Workbook book;
|
||||||
private int firstrow;
|
private int firstrow;
|
||||||
private int lastrow;
|
private int lastrow;
|
||||||
private static POILogger log = POILogFactory.getLogger(HSSFSheet.class);
|
private static POILogger log = POILogFactory.getLogger(HSSFSheet.class);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -110,8 +112,8 @@ public class HSSFSheet
|
|||||||
|
|
||||||
protected HSSFSheet(Workbook book)
|
protected HSSFSheet(Workbook book)
|
||||||
{
|
{
|
||||||
sheet = Sheet.createSheet();
|
sheet = Sheet.createSheet();
|
||||||
rows = new TreeMap(); // new ArrayList(INITIAL_CAPACITY);
|
rows = new TreeMap(); // new ArrayList(INITIAL_CAPACITY);
|
||||||
this.book = book;
|
this.book = book;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -127,16 +129,11 @@ public class HSSFSheet
|
|||||||
protected HSSFSheet(Workbook book, Sheet sheet)
|
protected HSSFSheet(Workbook book, Sheet sheet)
|
||||||
{
|
{
|
||||||
this.sheet = sheet;
|
this.sheet = sheet;
|
||||||
rows = new TreeMap();
|
rows = new TreeMap();
|
||||||
this.book = book;
|
this.book = book;
|
||||||
setPropertiesFromSheet(sheet);
|
setPropertiesFromSheet(sheet);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** private default constructor prevents bogus initializationless construction */
|
|
||||||
|
|
||||||
private HSSFSheet()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* used internally to set the properties given a Sheet object
|
* used internally to set the properties given a Sheet object
|
||||||
@ -144,8 +141,8 @@ public class HSSFSheet
|
|||||||
|
|
||||||
private void setPropertiesFromSheet(Sheet sheet)
|
private void setPropertiesFromSheet(Sheet sheet)
|
||||||
{
|
{
|
||||||
int sloc = sheet.getLoc();
|
int sloc = sheet.getLoc();
|
||||||
RowRecord row = sheet.getNextRow();
|
RowRecord row = sheet.getNextRow();
|
||||||
|
|
||||||
while (row != null)
|
while (row != null)
|
||||||
{
|
{
|
||||||
@ -154,8 +151,8 @@ public class HSSFSheet
|
|||||||
row = sheet.getNextRow();
|
row = sheet.getNextRow();
|
||||||
}
|
}
|
||||||
sheet.setLoc(sloc);
|
sheet.setLoc(sloc);
|
||||||
CellValueRecordInterface cval = sheet.getNextValueRecord();
|
CellValueRecordInterface cval = sheet.getNextValueRecord();
|
||||||
long timestart = System.currentTimeMillis();
|
long timestart = System.currentTimeMillis();
|
||||||
|
|
||||||
log.log(DEBUG, "Time at start of cell creating in HSSF sheet = ",
|
log.log(DEBUG, "Time at start of cell creating in HSSF sheet = ",
|
||||||
new Long(timestart));
|
new Long(timestart));
|
||||||
@ -163,8 +160,8 @@ public class HSSFSheet
|
|||||||
|
|
||||||
while (cval != null)
|
while (cval != null)
|
||||||
{
|
{
|
||||||
long cellstart = System.currentTimeMillis();
|
long cellstart = System.currentTimeMillis();
|
||||||
HSSFRow hrow = lastrow;
|
HSSFRow hrow = lastrow;
|
||||||
|
|
||||||
if ((lastrow == null) || (lastrow.getRowNum() != cval.getRow()))
|
if ((lastrow == null) || (lastrow.getRowNum() != cval.getRow()))
|
||||||
{
|
{
|
||||||
@ -236,10 +233,10 @@ public class HSSFSheet
|
|||||||
|
|
||||||
while (iter.hasNext())
|
while (iter.hasNext())
|
||||||
{
|
{
|
||||||
HSSFCell cell = ( HSSFCell ) iter.next();
|
HSSFCell cell = (HSSFCell) iter.next();
|
||||||
|
|
||||||
sheet.removeValueRecord(row.getRowNum(),
|
sheet.removeValueRecord(row.getRowNum(),
|
||||||
cell.getCellValueRecord());
|
cell.getCellValueRecord());
|
||||||
}
|
}
|
||||||
sheet.removeRow(row.getRowRecord());
|
sheet.removeRow(row.getRowRecord());
|
||||||
}
|
}
|
||||||
@ -251,10 +248,10 @@ public class HSSFSheet
|
|||||||
|
|
||||||
private int findLastRow(int lastrow)
|
private int findLastRow(int lastrow)
|
||||||
{
|
{
|
||||||
int rownum = lastrow - 1;
|
int rownum = lastrow - 1;
|
||||||
HSSFRow r = getRow(rownum);
|
HSSFRow r = getRow(rownum);
|
||||||
|
|
||||||
while (r == null)
|
while (r == null && rownum >= 0)
|
||||||
{
|
{
|
||||||
r = getRow(--rownum);
|
r = getRow(--rownum);
|
||||||
}
|
}
|
||||||
@ -267,13 +264,17 @@ public class HSSFSheet
|
|||||||
|
|
||||||
private int findFirstRow(int firstrow)
|
private int findFirstRow(int firstrow)
|
||||||
{
|
{
|
||||||
int rownum = firstrow + 1;
|
int rownum = firstrow + 1;
|
||||||
HSSFRow r = getRow(rownum);
|
HSSFRow r = getRow(rownum);
|
||||||
|
|
||||||
while (r == null)
|
while (r == null && rownum <= getLastRowNum())
|
||||||
{
|
{
|
||||||
r = getRow(++rownum);
|
r = getRow(++rownum);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (rownum > getLastRowNum())
|
||||||
|
return -1;
|
||||||
|
|
||||||
return rownum;
|
return rownum;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -311,8 +312,8 @@ public class HSSFSheet
|
|||||||
{
|
{
|
||||||
HSSFRow row = new HSSFRow();
|
HSSFRow row = new HSSFRow();
|
||||||
|
|
||||||
row.setRowNum(( short ) rownum);
|
row.setRowNum((short) rownum);
|
||||||
return ( HSSFRow ) rows.get(row);
|
return (HSSFRow) rows.get(row);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -344,26 +345,6 @@ public class HSSFSheet
|
|||||||
return lastrow;
|
return lastrow;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Seems to be unused (gjs)
|
|
||||||
*
|
|
||||||
* used internally to add cells from a high level row to the low level model
|
|
||||||
* @param row the row object to represent in low level RowRecord.
|
|
||||||
*/
|
|
||||||
private void addCellsFromRow(HSSFRow row)
|
|
||||||
{
|
|
||||||
Iterator iter = row.cellIterator();
|
|
||||||
|
|
||||||
// for (int k = 0; k < row.getPhysicalNumberOfCells(); k++)
|
|
||||||
while (iter.hasNext())
|
|
||||||
{
|
|
||||||
HSSFCell cell =
|
|
||||||
( HSSFCell ) iter.next(); // row.getPhysicalCellAt(k);
|
|
||||||
|
|
||||||
sheet.addValueRecord(row.getRowNum(), cell.getCellValueRecord());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* set the width (in units of 1/256th of a character width)
|
* set the width (in units of 1/256th of a character width)
|
||||||
* @param column - the column to set (0-based)
|
* @param column - the column to set (0-based)
|
||||||
@ -400,7 +381,7 @@ public class HSSFSheet
|
|||||||
/**
|
/**
|
||||||
* get the default row height for the sheet (if the rows do not define their own height) in
|
* get the default row height for the sheet (if the rows do not define their own height) in
|
||||||
* twips (1/20 of a point)
|
* twips (1/20 of a point)
|
||||||
* @retun default row height
|
* @return default row height
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public short getDefaultRowHeight()
|
public short getDefaultRowHeight()
|
||||||
@ -449,7 +430,7 @@ public class HSSFSheet
|
|||||||
|
|
||||||
public void setDefaultRowHeightInPoints(float height)
|
public void setDefaultRowHeightInPoints(float height)
|
||||||
{
|
{
|
||||||
sheet.setDefaultRowHeight(( short ) (height * 20));
|
sheet.setDefaultRowHeight((short) (height * 20));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -480,10 +461,10 @@ public class HSSFSheet
|
|||||||
|
|
||||||
public int addMergedRegion(Region region)
|
public int addMergedRegion(Region region)
|
||||||
{
|
{
|
||||||
return sheet.addMergedRegion(( short ) region.getRowFrom(),
|
return sheet.addMergedRegion((short) region.getRowFrom(),
|
||||||
region.getColumnFrom(),
|
region.getColumnFrom(),
|
||||||
( short ) region.getRowTo(),
|
(short) region.getRowTo(),
|
||||||
region.getColumnTo());
|
region.getColumnTo());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -494,7 +475,7 @@ public class HSSFSheet
|
|||||||
public void setVerticallyCenter(boolean value)
|
public void setVerticallyCenter(boolean value)
|
||||||
{
|
{
|
||||||
VCenterRecord record =
|
VCenterRecord record =
|
||||||
( VCenterRecord ) sheet.findFirstRecordBySid(VCenterRecord.sid);
|
(VCenterRecord) sheet.findFirstRecordBySid(VCenterRecord.sid);
|
||||||
|
|
||||||
record.setVCenter(value);
|
record.setVCenter(value);
|
||||||
}
|
}
|
||||||
@ -506,7 +487,7 @@ public class HSSFSheet
|
|||||||
public boolean getVerticallyCenter(boolean value)
|
public boolean getVerticallyCenter(boolean value)
|
||||||
{
|
{
|
||||||
VCenterRecord record =
|
VCenterRecord record =
|
||||||
( VCenterRecord ) sheet.findFirstRecordBySid(VCenterRecord.sid);
|
(VCenterRecord) sheet.findFirstRecordBySid(VCenterRecord.sid);
|
||||||
|
|
||||||
return record.getVCenter();
|
return record.getVCenter();
|
||||||
}
|
}
|
||||||
@ -543,7 +524,7 @@ public class HSSFSheet
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @returns an iterator of the PHYSICAL rows. Meaning the 3rd element may not
|
* @return an iterator of the PHYSICAL rows. Meaning the 3rd element may not
|
||||||
* be the third row if say for instance the second row is undefined.
|
* be the third row if say for instance the second row is undefined.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -571,7 +552,7 @@ public class HSSFSheet
|
|||||||
public void setAlternativeExpression(boolean b)
|
public void setAlternativeExpression(boolean b)
|
||||||
{
|
{
|
||||||
WSBoolRecord record =
|
WSBoolRecord record =
|
||||||
( WSBoolRecord ) sheet.findFirstRecordBySid(WSBoolRecord.sid);
|
(WSBoolRecord) sheet.findFirstRecordBySid(WSBoolRecord.sid);
|
||||||
|
|
||||||
record.setAlternateExpression(b);
|
record.setAlternateExpression(b);
|
||||||
}
|
}
|
||||||
@ -584,7 +565,7 @@ public class HSSFSheet
|
|||||||
public void setAlternativeFormula(boolean b)
|
public void setAlternativeFormula(boolean b)
|
||||||
{
|
{
|
||||||
WSBoolRecord record =
|
WSBoolRecord record =
|
||||||
( WSBoolRecord ) sheet.findFirstRecordBySid(WSBoolRecord.sid);
|
(WSBoolRecord) sheet.findFirstRecordBySid(WSBoolRecord.sid);
|
||||||
|
|
||||||
record.setAlternateFormula(b);
|
record.setAlternateFormula(b);
|
||||||
}
|
}
|
||||||
@ -597,7 +578,7 @@ public class HSSFSheet
|
|||||||
public void setAutobreaks(boolean b)
|
public void setAutobreaks(boolean b)
|
||||||
{
|
{
|
||||||
WSBoolRecord record =
|
WSBoolRecord record =
|
||||||
( WSBoolRecord ) sheet.findFirstRecordBySid(WSBoolRecord.sid);
|
(WSBoolRecord) sheet.findFirstRecordBySid(WSBoolRecord.sid);
|
||||||
|
|
||||||
record.setAutobreaks(b);
|
record.setAutobreaks(b);
|
||||||
}
|
}
|
||||||
@ -610,7 +591,7 @@ public class HSSFSheet
|
|||||||
public void setDialog(boolean b)
|
public void setDialog(boolean b)
|
||||||
{
|
{
|
||||||
WSBoolRecord record =
|
WSBoolRecord record =
|
||||||
( WSBoolRecord ) sheet.findFirstRecordBySid(WSBoolRecord.sid);
|
(WSBoolRecord) sheet.findFirstRecordBySid(WSBoolRecord.sid);
|
||||||
|
|
||||||
record.setDialog(b);
|
record.setDialog(b);
|
||||||
}
|
}
|
||||||
@ -624,7 +605,7 @@ public class HSSFSheet
|
|||||||
public void setDisplayGuts(boolean b)
|
public void setDisplayGuts(boolean b)
|
||||||
{
|
{
|
||||||
WSBoolRecord record =
|
WSBoolRecord record =
|
||||||
( WSBoolRecord ) sheet.findFirstRecordBySid(WSBoolRecord.sid);
|
(WSBoolRecord) sheet.findFirstRecordBySid(WSBoolRecord.sid);
|
||||||
|
|
||||||
record.setDisplayGuts(b);
|
record.setDisplayGuts(b);
|
||||||
}
|
}
|
||||||
@ -637,7 +618,7 @@ public class HSSFSheet
|
|||||||
public void setFitToPage(boolean b)
|
public void setFitToPage(boolean b)
|
||||||
{
|
{
|
||||||
WSBoolRecord record =
|
WSBoolRecord record =
|
||||||
( WSBoolRecord ) sheet.findFirstRecordBySid(WSBoolRecord.sid);
|
(WSBoolRecord) sheet.findFirstRecordBySid(WSBoolRecord.sid);
|
||||||
|
|
||||||
record.setFitToPage(b);
|
record.setFitToPage(b);
|
||||||
}
|
}
|
||||||
@ -650,7 +631,7 @@ public class HSSFSheet
|
|||||||
public void setRowSumsBelow(boolean b)
|
public void setRowSumsBelow(boolean b)
|
||||||
{
|
{
|
||||||
WSBoolRecord record =
|
WSBoolRecord record =
|
||||||
( WSBoolRecord ) sheet.findFirstRecordBySid(WSBoolRecord.sid);
|
(WSBoolRecord) sheet.findFirstRecordBySid(WSBoolRecord.sid);
|
||||||
|
|
||||||
record.setRowSumsBelow(b);
|
record.setRowSumsBelow(b);
|
||||||
}
|
}
|
||||||
@ -663,7 +644,7 @@ public class HSSFSheet
|
|||||||
public void setRowSumsRight(boolean b)
|
public void setRowSumsRight(boolean b)
|
||||||
{
|
{
|
||||||
WSBoolRecord record =
|
WSBoolRecord record =
|
||||||
( WSBoolRecord ) sheet.findFirstRecordBySid(WSBoolRecord.sid);
|
(WSBoolRecord) sheet.findFirstRecordBySid(WSBoolRecord.sid);
|
||||||
|
|
||||||
record.setRowSumsRight(b);
|
record.setRowSumsRight(b);
|
||||||
}
|
}
|
||||||
@ -675,8 +656,8 @@ public class HSSFSheet
|
|||||||
|
|
||||||
public boolean getAlternateExpression()
|
public boolean getAlternateExpression()
|
||||||
{
|
{
|
||||||
return (( WSBoolRecord ) sheet.findFirstRecordBySid(WSBoolRecord.sid))
|
return ((WSBoolRecord) sheet.findFirstRecordBySid(WSBoolRecord.sid))
|
||||||
.getAlternateExpression();
|
.getAlternateExpression();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -686,8 +667,8 @@ public class HSSFSheet
|
|||||||
|
|
||||||
public boolean getAlternateFormula()
|
public boolean getAlternateFormula()
|
||||||
{
|
{
|
||||||
return (( WSBoolRecord ) sheet.findFirstRecordBySid(WSBoolRecord.sid))
|
return ((WSBoolRecord) sheet.findFirstRecordBySid(WSBoolRecord.sid))
|
||||||
.getAlternateFormula();
|
.getAlternateFormula();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -697,8 +678,8 @@ public class HSSFSheet
|
|||||||
|
|
||||||
public boolean getAutobreaks()
|
public boolean getAutobreaks()
|
||||||
{
|
{
|
||||||
return (( WSBoolRecord ) sheet.findFirstRecordBySid(WSBoolRecord.sid))
|
return ((WSBoolRecord) sheet.findFirstRecordBySid(WSBoolRecord.sid))
|
||||||
.getAutobreaks();
|
.getAutobreaks();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -708,8 +689,8 @@ public class HSSFSheet
|
|||||||
|
|
||||||
public boolean getDialog()
|
public boolean getDialog()
|
||||||
{
|
{
|
||||||
return (( WSBoolRecord ) sheet.findFirstRecordBySid(WSBoolRecord.sid))
|
return ((WSBoolRecord) sheet.findFirstRecordBySid(WSBoolRecord.sid))
|
||||||
.getDialog();
|
.getDialog();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -720,8 +701,8 @@ public class HSSFSheet
|
|||||||
|
|
||||||
public boolean getDisplayGuts()
|
public boolean getDisplayGuts()
|
||||||
{
|
{
|
||||||
return (( WSBoolRecord ) sheet.findFirstRecordBySid(WSBoolRecord.sid))
|
return ((WSBoolRecord) sheet.findFirstRecordBySid(WSBoolRecord.sid))
|
||||||
.getDisplayGuts();
|
.getDisplayGuts();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -731,8 +712,8 @@ public class HSSFSheet
|
|||||||
|
|
||||||
public boolean getFitToPage()
|
public boolean getFitToPage()
|
||||||
{
|
{
|
||||||
return (( WSBoolRecord ) sheet.findFirstRecordBySid(WSBoolRecord.sid))
|
return ((WSBoolRecord) sheet.findFirstRecordBySid(WSBoolRecord.sid))
|
||||||
.getFitToPage();
|
.getFitToPage();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -742,8 +723,8 @@ public class HSSFSheet
|
|||||||
|
|
||||||
public boolean getRowSumsBelow()
|
public boolean getRowSumsBelow()
|
||||||
{
|
{
|
||||||
return (( WSBoolRecord ) sheet.findFirstRecordBySid(WSBoolRecord.sid))
|
return ((WSBoolRecord) sheet.findFirstRecordBySid(WSBoolRecord.sid))
|
||||||
.getRowSumsBelow();
|
.getRowSumsBelow();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -753,7 +734,7 @@ public class HSSFSheet
|
|||||||
|
|
||||||
public boolean getRowSumsRight()
|
public boolean getRowSumsRight()
|
||||||
{
|
{
|
||||||
return (( WSBoolRecord ) sheet.findFirstRecordBySid(WSBoolRecord.sid))
|
return ((WSBoolRecord) sheet.findFirstRecordBySid(WSBoolRecord.sid))
|
||||||
.getRowSumsRight();
|
.getRowSumsRight();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -115,5 +115,11 @@ public class TestHSSFRow
|
|||||||
assertEquals(-1, row.getLastCellNum());
|
assertEquals(-1, row.getLastCellNum());
|
||||||
assertEquals(-1, row.getFirstCellNum());
|
assertEquals(-1, row.getFirstCellNum());
|
||||||
|
|
||||||
|
// check the row record actually writes it out as 0's
|
||||||
|
byte[] data = new byte[100];
|
||||||
|
row.getRowRecord().serialize(0, data);
|
||||||
|
assertEquals(0, data[6]);
|
||||||
|
assertEquals(0, data[8]);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -58,7 +58,6 @@ import junit.framework.TestCase;
|
|||||||
import org.apache.poi.hssf.model.Sheet;
|
import org.apache.poi.hssf.model.Sheet;
|
||||||
import org.apache.poi.hssf.record.VCenterRecord;
|
import org.apache.poi.hssf.record.VCenterRecord;
|
||||||
import org.apache.poi.hssf.record.WSBoolRecord;
|
import org.apache.poi.hssf.record.WSBoolRecord;
|
||||||
import org.apache.poi.hssf.dev.BiffViewer;
|
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
@ -190,7 +189,14 @@ public class TestHSSFSheet
|
|||||||
tempFile.delete();
|
tempFile.delete();
|
||||||
assertNotNull(row);
|
assertNotNull(row);
|
||||||
assertEquals(2, row.getPhysicalNumberOfCells());
|
assertEquals(2, row.getPhysicalNumberOfCells());
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testRemoveRow()
|
||||||
|
{
|
||||||
|
HSSFWorkbook workbook = new HSSFWorkbook();
|
||||||
|
HSSFSheet sheet = workbook.createSheet("Test boolean");
|
||||||
|
HSSFRow row = sheet.createRow((short) 2);
|
||||||
|
sheet.removeRow(row);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user