Merge from 1.5 branch
git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@352479 13f79535-47bb-0310-9956-ffa450edef68
BIN
src/documentation/images/logoRaPiGmbH1.png
Normal file
After Width: | Height: | Size: 5.8 KiB |
BIN
src/documentation/images/logoRaPiGmbH2.png
Normal file
After Width: | Height: | Size: 5.9 KiB |
BIN
src/documentation/images/logoRaPiGmbH3.png
Normal file
After Width: | Height: | Size: 3.5 KiB |
BIN
src/documentation/images/logoRaPiGmbH4.png
Normal file
After Width: | Height: | Size: 2.6 KiB |
BIN
src/documentation/images/logoRaPiGmbH5.png
Normal file
After Width: | Height: | Size: 7.2 KiB |
BIN
src/documentation/images/logoRaPiGmbH6.png
Normal file
After Width: | Height: | Size: 6.5 KiB |
BIN
src/documentation/images/logoRaPiGmbH7.png
Normal file
After Width: | Height: | Size: 9.4 KiB |
@ -39,6 +39,7 @@
|
||||
|
||||
<menu label="Get Involved">
|
||||
<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="CVS" href="http://jakarta.apache.org/site/cvsindex.html"/>
|
||||
<menu-item label="Mail Lists" href="http://jakarta.apache.org/site/mail.html"/>
|
||||
|
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>
|
||||
<header>
|
||||
<title></title>
|
||||
<title>Project History</title>
|
||||
<authors>
|
||||
<person id="AO" name="Andrew C. Oliver" email="acoliver@apache.org"/>
|
||||
</authors>
|
||||
|
@ -2,114 +2,139 @@
|
||||
<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" "document-v11.dtd">
|
||||
|
||||
<document>
|
||||
<header>
|
||||
<title></title>
|
||||
<authors>
|
||||
<person id="AO" name="Andrew C. Oliver" email="acoliver@apache.org"/>
|
||||
</authors>
|
||||
</header>
|
||||
|
||||
<body>
|
||||
<section title="POI logos">
|
||||
<p>
|
||||
Here are the current logo submissions. Thanks to the artists!
|
||||
</p>
|
||||
<section title="Michael Mosmann">
|
||||
<header>
|
||||
<title></title>
|
||||
<authors>
|
||||
<person id="AO" name="Andrew C. Oliver" email="acoliver@apache.org"/>
|
||||
<person id="GS" name="Glen Stampoultzis" email="glens@apache.org"/>
|
||||
</authors>
|
||||
</header>
|
||||
|
||||
<body>
|
||||
<section title="POI logos">
|
||||
<p>
|
||||
Here are the current logo submissions. Thanks to the artists!
|
||||
</p>
|
||||
<section title="Michael Mosmann">
|
||||
<p>
|
||||
<img src="images/logoMichaelMosmann.png"/>
|
||||
<img src="images/logoMichaelMosmann.png"/>
|
||||
</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 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>
|
||||
</body>
|
||||
<footer>
|
||||
<legal>
|
||||
Copyright (c) @year@ The Apache Software Foundation All rights reserved.
|
||||
$Revision$ $Date$
|
||||
</legal>
|
||||
</footer>
|
||||
</body>
|
||||
<footer>
|
||||
<legal>
|
||||
Copyright (c) @year@ The Apache Software Foundation All rights reserved.
|
||||
$Revision$ $Date$
|
||||
</legal>
|
||||
</footer>
|
||||
</document>
|
||||
|
@ -452,8 +452,8 @@ public class RowRecord
|
||||
LittleEndian.putShort(data, 0 + offset, sid);
|
||||
LittleEndian.putShort(data, 2 + offset, ( short ) 16);
|
||||
LittleEndian.putShort(data, 4 + offset, getRowNumber());
|
||||
LittleEndian.putShort(data, 6 + offset, getFirstCol());
|
||||
LittleEndian.putShort(data, 8 + offset, getLastCol());
|
||||
LittleEndian.putShort(data, 6 + offset, getFirstCol() == -1 ? (short)0 : getFirstCol());
|
||||
LittleEndian.putShort(data, 8 + offset, getLastCol() == -1 ? (short)0 : getLastCol());
|
||||
LittleEndian.putShort(data, 10 + offset, getHeight());
|
||||
LittleEndian.putShort(data, 12 + offset, getOptimize());
|
||||
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
|
||||
* ask for a cell that is not defined....you get a null.
|
||||
*
|
||||
* @param cellnum - 0 based column number
|
||||
* @returns HSSFCell representing that column or null if undefined.
|
||||
* @param cellnum 0 based column number
|
||||
* @return HSSFCell representing that column or null if undefined.
|
||||
*/
|
||||
|
||||
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!
|
||||
*/
|
||||
|
||||
|
@ -1,4 +1,3 @@
|
||||
|
||||
/* ====================================================================
|
||||
* The Apache Software License, Version 1.1
|
||||
*
|
||||
@ -60,11 +59,14 @@
|
||||
*/
|
||||
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.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.util.POILogFactory;
|
||||
import org.apache.poi.util.POILogger;
|
||||
|
||||
import java.util.Iterator;
|
||||
@ -74,12 +76,12 @@ import java.util.TreeMap;
|
||||
* High level representation of a worksheet.
|
||||
* @author Andrew C. Oliver (acoliver at apache dot org)
|
||||
* @author Glen Stampoultzis (glens at apache.org)
|
||||
* @version 1.0-pre
|
||||
* @author Libin Roman (romal at vistaportal.com)
|
||||
*/
|
||||
|
||||
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
|
||||
@ -87,17 +89,17 @@ public class 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
|
||||
*/
|
||||
|
||||
private Sheet sheet;
|
||||
private TreeMap rows;
|
||||
private Workbook book;
|
||||
private int firstrow;
|
||||
private int lastrow;
|
||||
private Sheet sheet;
|
||||
private TreeMap rows;
|
||||
private Workbook book;
|
||||
private int firstrow;
|
||||
private int lastrow;
|
||||
private static POILogger log = POILogFactory.getLogger(HSSFSheet.class);
|
||||
|
||||
/**
|
||||
@ -110,8 +112,8 @@ public class HSSFSheet
|
||||
|
||||
protected HSSFSheet(Workbook book)
|
||||
{
|
||||
sheet = Sheet.createSheet();
|
||||
rows = new TreeMap(); // new ArrayList(INITIAL_CAPACITY);
|
||||
sheet = Sheet.createSheet();
|
||||
rows = new TreeMap(); // new ArrayList(INITIAL_CAPACITY);
|
||||
this.book = book;
|
||||
}
|
||||
|
||||
@ -127,16 +129,11 @@ public class HSSFSheet
|
||||
protected HSSFSheet(Workbook book, Sheet sheet)
|
||||
{
|
||||
this.sheet = sheet;
|
||||
rows = new TreeMap();
|
||||
this.book = book;
|
||||
rows = new TreeMap();
|
||||
this.book = book;
|
||||
setPropertiesFromSheet(sheet);
|
||||
}
|
||||
|
||||
/** private default constructor prevents bogus initializationless construction */
|
||||
|
||||
private HSSFSheet()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* used internally to set the properties given a Sheet object
|
||||
@ -144,8 +141,8 @@ public class HSSFSheet
|
||||
|
||||
private void setPropertiesFromSheet(Sheet sheet)
|
||||
{
|
||||
int sloc = sheet.getLoc();
|
||||
RowRecord row = sheet.getNextRow();
|
||||
int sloc = sheet.getLoc();
|
||||
RowRecord row = sheet.getNextRow();
|
||||
|
||||
while (row != null)
|
||||
{
|
||||
@ -154,8 +151,8 @@ public class HSSFSheet
|
||||
row = sheet.getNextRow();
|
||||
}
|
||||
sheet.setLoc(sloc);
|
||||
CellValueRecordInterface cval = sheet.getNextValueRecord();
|
||||
long timestart = System.currentTimeMillis();
|
||||
CellValueRecordInterface cval = sheet.getNextValueRecord();
|
||||
long timestart = System.currentTimeMillis();
|
||||
|
||||
log.log(DEBUG, "Time at start of cell creating in HSSF sheet = ",
|
||||
new Long(timestart));
|
||||
@ -163,8 +160,8 @@ public class HSSFSheet
|
||||
|
||||
while (cval != null)
|
||||
{
|
||||
long cellstart = System.currentTimeMillis();
|
||||
HSSFRow hrow = lastrow;
|
||||
long cellstart = System.currentTimeMillis();
|
||||
HSSFRow hrow = lastrow;
|
||||
|
||||
if ((lastrow == null) || (lastrow.getRowNum() != cval.getRow()))
|
||||
{
|
||||
@ -236,10 +233,10 @@ public class HSSFSheet
|
||||
|
||||
while (iter.hasNext())
|
||||
{
|
||||
HSSFCell cell = ( HSSFCell ) iter.next();
|
||||
HSSFCell cell = (HSSFCell) iter.next();
|
||||
|
||||
sheet.removeValueRecord(row.getRowNum(),
|
||||
cell.getCellValueRecord());
|
||||
cell.getCellValueRecord());
|
||||
}
|
||||
sheet.removeRow(row.getRowRecord());
|
||||
}
|
||||
@ -251,10 +248,10 @@ public class HSSFSheet
|
||||
|
||||
private int findLastRow(int lastrow)
|
||||
{
|
||||
int rownum = lastrow - 1;
|
||||
HSSFRow r = getRow(rownum);
|
||||
int rownum = lastrow - 1;
|
||||
HSSFRow r = getRow(rownum);
|
||||
|
||||
while (r == null)
|
||||
while (r == null && rownum >= 0)
|
||||
{
|
||||
r = getRow(--rownum);
|
||||
}
|
||||
@ -267,13 +264,17 @@ public class HSSFSheet
|
||||
|
||||
private int findFirstRow(int firstrow)
|
||||
{
|
||||
int rownum = firstrow + 1;
|
||||
HSSFRow r = getRow(rownum);
|
||||
int rownum = firstrow + 1;
|
||||
HSSFRow r = getRow(rownum);
|
||||
|
||||
while (r == null)
|
||||
while (r == null && rownum <= getLastRowNum())
|
||||
{
|
||||
r = getRow(++rownum);
|
||||
}
|
||||
|
||||
if (rownum > getLastRowNum())
|
||||
return -1;
|
||||
|
||||
return rownum;
|
||||
}
|
||||
|
||||
@ -311,8 +312,8 @@ public class HSSFSheet
|
||||
{
|
||||
HSSFRow row = new HSSFRow();
|
||||
|
||||
row.setRowNum(( short ) rownum);
|
||||
return ( HSSFRow ) rows.get(row);
|
||||
row.setRowNum((short) rownum);
|
||||
return (HSSFRow) rows.get(row);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -344,26 +345,6 @@ public class HSSFSheet
|
||||
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)
|
||||
* @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
|
||||
* twips (1/20 of a point)
|
||||
* @retun default row height
|
||||
* @return default row height
|
||||
*/
|
||||
|
||||
public short getDefaultRowHeight()
|
||||
@ -449,7 +430,7 @@ public class HSSFSheet
|
||||
|
||||
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)
|
||||
{
|
||||
return sheet.addMergedRegion(( short ) region.getRowFrom(),
|
||||
region.getColumnFrom(),
|
||||
( short ) region.getRowTo(),
|
||||
region.getColumnTo());
|
||||
return sheet.addMergedRegion((short) region.getRowFrom(),
|
||||
region.getColumnFrom(),
|
||||
(short) region.getRowTo(),
|
||||
region.getColumnTo());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -494,7 +475,7 @@ public class HSSFSheet
|
||||
public void setVerticallyCenter(boolean value)
|
||||
{
|
||||
VCenterRecord record =
|
||||
( VCenterRecord ) sheet.findFirstRecordBySid(VCenterRecord.sid);
|
||||
(VCenterRecord) sheet.findFirstRecordBySid(VCenterRecord.sid);
|
||||
|
||||
record.setVCenter(value);
|
||||
}
|
||||
@ -506,7 +487,7 @@ public class HSSFSheet
|
||||
public boolean getVerticallyCenter(boolean value)
|
||||
{
|
||||
VCenterRecord record =
|
||||
( VCenterRecord ) sheet.findFirstRecordBySid(VCenterRecord.sid);
|
||||
(VCenterRecord) sheet.findFirstRecordBySid(VCenterRecord.sid);
|
||||
|
||||
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.
|
||||
*/
|
||||
|
||||
@ -571,7 +552,7 @@ public class HSSFSheet
|
||||
public void setAlternativeExpression(boolean b)
|
||||
{
|
||||
WSBoolRecord record =
|
||||
( WSBoolRecord ) sheet.findFirstRecordBySid(WSBoolRecord.sid);
|
||||
(WSBoolRecord) sheet.findFirstRecordBySid(WSBoolRecord.sid);
|
||||
|
||||
record.setAlternateExpression(b);
|
||||
}
|
||||
@ -584,7 +565,7 @@ public class HSSFSheet
|
||||
public void setAlternativeFormula(boolean b)
|
||||
{
|
||||
WSBoolRecord record =
|
||||
( WSBoolRecord ) sheet.findFirstRecordBySid(WSBoolRecord.sid);
|
||||
(WSBoolRecord) sheet.findFirstRecordBySid(WSBoolRecord.sid);
|
||||
|
||||
record.setAlternateFormula(b);
|
||||
}
|
||||
@ -597,7 +578,7 @@ public class HSSFSheet
|
||||
public void setAutobreaks(boolean b)
|
||||
{
|
||||
WSBoolRecord record =
|
||||
( WSBoolRecord ) sheet.findFirstRecordBySid(WSBoolRecord.sid);
|
||||
(WSBoolRecord) sheet.findFirstRecordBySid(WSBoolRecord.sid);
|
||||
|
||||
record.setAutobreaks(b);
|
||||
}
|
||||
@ -610,7 +591,7 @@ public class HSSFSheet
|
||||
public void setDialog(boolean b)
|
||||
{
|
||||
WSBoolRecord record =
|
||||
( WSBoolRecord ) sheet.findFirstRecordBySid(WSBoolRecord.sid);
|
||||
(WSBoolRecord) sheet.findFirstRecordBySid(WSBoolRecord.sid);
|
||||
|
||||
record.setDialog(b);
|
||||
}
|
||||
@ -624,7 +605,7 @@ public class HSSFSheet
|
||||
public void setDisplayGuts(boolean b)
|
||||
{
|
||||
WSBoolRecord record =
|
||||
( WSBoolRecord ) sheet.findFirstRecordBySid(WSBoolRecord.sid);
|
||||
(WSBoolRecord) sheet.findFirstRecordBySid(WSBoolRecord.sid);
|
||||
|
||||
record.setDisplayGuts(b);
|
||||
}
|
||||
@ -637,7 +618,7 @@ public class HSSFSheet
|
||||
public void setFitToPage(boolean b)
|
||||
{
|
||||
WSBoolRecord record =
|
||||
( WSBoolRecord ) sheet.findFirstRecordBySid(WSBoolRecord.sid);
|
||||
(WSBoolRecord) sheet.findFirstRecordBySid(WSBoolRecord.sid);
|
||||
|
||||
record.setFitToPage(b);
|
||||
}
|
||||
@ -650,7 +631,7 @@ public class HSSFSheet
|
||||
public void setRowSumsBelow(boolean b)
|
||||
{
|
||||
WSBoolRecord record =
|
||||
( WSBoolRecord ) sheet.findFirstRecordBySid(WSBoolRecord.sid);
|
||||
(WSBoolRecord) sheet.findFirstRecordBySid(WSBoolRecord.sid);
|
||||
|
||||
record.setRowSumsBelow(b);
|
||||
}
|
||||
@ -663,7 +644,7 @@ public class HSSFSheet
|
||||
public void setRowSumsRight(boolean b)
|
||||
{
|
||||
WSBoolRecord record =
|
||||
( WSBoolRecord ) sheet.findFirstRecordBySid(WSBoolRecord.sid);
|
||||
(WSBoolRecord) sheet.findFirstRecordBySid(WSBoolRecord.sid);
|
||||
|
||||
record.setRowSumsRight(b);
|
||||
}
|
||||
@ -675,8 +656,8 @@ public class HSSFSheet
|
||||
|
||||
public boolean getAlternateExpression()
|
||||
{
|
||||
return (( WSBoolRecord ) sheet.findFirstRecordBySid(WSBoolRecord.sid))
|
||||
.getAlternateExpression();
|
||||
return ((WSBoolRecord) sheet.findFirstRecordBySid(WSBoolRecord.sid))
|
||||
.getAlternateExpression();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -686,8 +667,8 @@ public class HSSFSheet
|
||||
|
||||
public boolean getAlternateFormula()
|
||||
{
|
||||
return (( WSBoolRecord ) sheet.findFirstRecordBySid(WSBoolRecord.sid))
|
||||
.getAlternateFormula();
|
||||
return ((WSBoolRecord) sheet.findFirstRecordBySid(WSBoolRecord.sid))
|
||||
.getAlternateFormula();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -697,8 +678,8 @@ public class HSSFSheet
|
||||
|
||||
public boolean getAutobreaks()
|
||||
{
|
||||
return (( WSBoolRecord ) sheet.findFirstRecordBySid(WSBoolRecord.sid))
|
||||
.getAutobreaks();
|
||||
return ((WSBoolRecord) sheet.findFirstRecordBySid(WSBoolRecord.sid))
|
||||
.getAutobreaks();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -708,8 +689,8 @@ public class HSSFSheet
|
||||
|
||||
public boolean getDialog()
|
||||
{
|
||||
return (( WSBoolRecord ) sheet.findFirstRecordBySid(WSBoolRecord.sid))
|
||||
.getDialog();
|
||||
return ((WSBoolRecord) sheet.findFirstRecordBySid(WSBoolRecord.sid))
|
||||
.getDialog();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -720,8 +701,8 @@ public class HSSFSheet
|
||||
|
||||
public boolean getDisplayGuts()
|
||||
{
|
||||
return (( WSBoolRecord ) sheet.findFirstRecordBySid(WSBoolRecord.sid))
|
||||
.getDisplayGuts();
|
||||
return ((WSBoolRecord) sheet.findFirstRecordBySid(WSBoolRecord.sid))
|
||||
.getDisplayGuts();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -731,8 +712,8 @@ public class HSSFSheet
|
||||
|
||||
public boolean getFitToPage()
|
||||
{
|
||||
return (( WSBoolRecord ) sheet.findFirstRecordBySid(WSBoolRecord.sid))
|
||||
.getFitToPage();
|
||||
return ((WSBoolRecord) sheet.findFirstRecordBySid(WSBoolRecord.sid))
|
||||
.getFitToPage();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -742,8 +723,8 @@ public class HSSFSheet
|
||||
|
||||
public boolean getRowSumsBelow()
|
||||
{
|
||||
return (( WSBoolRecord ) sheet.findFirstRecordBySid(WSBoolRecord.sid))
|
||||
.getRowSumsBelow();
|
||||
return ((WSBoolRecord) sheet.findFirstRecordBySid(WSBoolRecord.sid))
|
||||
.getRowSumsBelow();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -753,7 +734,7 @@ public class HSSFSheet
|
||||
|
||||
public boolean getRowSumsRight()
|
||||
{
|
||||
return (( WSBoolRecord ) sheet.findFirstRecordBySid(WSBoolRecord.sid))
|
||||
.getRowSumsRight();
|
||||
return ((WSBoolRecord) sheet.findFirstRecordBySid(WSBoolRecord.sid))
|
||||
.getRowSumsRight();
|
||||
}
|
||||
}
|
||||
|
@ -115,5 +115,11 @@ public class TestHSSFRow
|
||||
assertEquals(-1, row.getLastCellNum());
|
||||
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.record.VCenterRecord;
|
||||
import org.apache.poi.hssf.record.WSBoolRecord;
|
||||
import org.apache.poi.hssf.dev.BiffViewer;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
@ -190,7 +189,14 @@ public class TestHSSFSheet
|
||||
tempFile.delete();
|
||||
assertNotNull(row);
|
||||
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);
|
||||
}
|
||||
|
||||
}
|
||||
|