mirror of https://github.com/apache/poi.git
deprecated constants pointing to MissingCellPolicy - use enum instead
javadocs fixes (jdk8) git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1750172 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
f0a56b51d3
commit
e72ad899b3
|
@ -37,6 +37,7 @@ import org.apache.poi.poifs.filesystem.DirectoryNode;
|
||||||
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
|
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
|
||||||
import org.apache.poi.ss.formula.eval.ErrorEval;
|
import org.apache.poi.ss.formula.eval.ErrorEval;
|
||||||
import org.apache.poi.ss.usermodel.HeaderFooter;
|
import org.apache.poi.ss.usermodel.HeaderFooter;
|
||||||
|
import org.apache.poi.ss.usermodel.Row.MissingCellPolicy;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A text extractor for Excel files.
|
* A text extractor for Excel files.
|
||||||
|
@ -236,6 +237,7 @@ public class ExcelExtractor extends POIOLE2TextExtractor implements org.apache.p
|
||||||
extractor.setIncludeHeadersFooters(cmdArgs.shouldIncludeHeadersFooters());
|
extractor.setIncludeHeadersFooters(cmdArgs.shouldIncludeHeadersFooters());
|
||||||
System.out.println(extractor.getText());
|
System.out.println(extractor.getText());
|
||||||
extractor.close();
|
extractor.close();
|
||||||
|
wb.close();
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Should sheet names be included? Default is true
|
* Should sheet names be included? Default is true
|
||||||
|
@ -280,7 +282,7 @@ public class ExcelExtractor extends POIOLE2TextExtractor implements org.apache.p
|
||||||
|
|
||||||
// We don't care about the difference between
|
// We don't care about the difference between
|
||||||
// null (missing) and blank cells
|
// null (missing) and blank cells
|
||||||
_wb.setMissingCellPolicy(HSSFRow.RETURN_BLANK_AS_NULL);
|
_wb.setMissingCellPolicy(MissingCellPolicy.RETURN_BLANK_AS_NULL);
|
||||||
|
|
||||||
// Process each sheet in turn
|
// Process each sheet in turn
|
||||||
for(int i=0;i<_wb.getNumberOfSheets();i++) {
|
for(int i=0;i<_wb.getNumberOfSheets();i++) {
|
||||||
|
|
|
@ -107,9 +107,10 @@ public final class HSSFRow implements Row, Comparable<HSSFRow> {
|
||||||
* @throws IllegalArgumentException if columnIndex < 0 or greater than 255,
|
* @throws IllegalArgumentException if columnIndex < 0 or greater than 255,
|
||||||
* the maximum number of columns supported by the Excel binary format (.xls)
|
* the maximum number of columns supported by the Excel binary format (.xls)
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public HSSFCell createCell(int column)
|
public HSSFCell createCell(int column)
|
||||||
{
|
{
|
||||||
return this.createCell(column,HSSFCell.CELL_TYPE_BLANK);
|
return this.createCell(column,Cell.CELL_TYPE_BLANK);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -126,6 +127,7 @@ public final class HSSFRow implements Row, Comparable<HSSFRow> {
|
||||||
* @throws IllegalArgumentException if columnIndex < 0 or greater than 255,
|
* @throws IllegalArgumentException if columnIndex < 0 or greater than 255,
|
||||||
* the maximum number of columns supported by the Excel binary format (.xls)
|
* the maximum number of columns supported by the Excel binary format (.xls)
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public HSSFCell createCell(int columnIndex, int type)
|
public HSSFCell createCell(int columnIndex, int type)
|
||||||
{
|
{
|
||||||
short shortCellNum = (short)columnIndex;
|
short shortCellNum = (short)columnIndex;
|
||||||
|
@ -143,6 +145,7 @@ public final class HSSFRow implements Row, Comparable<HSSFRow> {
|
||||||
* remove the HSSFCell from this row.
|
* remove the HSSFCell from this row.
|
||||||
* @param cell to remove
|
* @param cell to remove
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public void removeCell(Cell cell) {
|
public void removeCell(Cell cell) {
|
||||||
if(cell == null) {
|
if(cell == null) {
|
||||||
throw new IllegalArgumentException("cell must not be null");
|
throw new IllegalArgumentException("cell must not be null");
|
||||||
|
@ -221,6 +224,7 @@ public final class HSSFRow implements Row, Comparable<HSSFRow> {
|
||||||
* @param rowIndex the row number (0-based)
|
* @param rowIndex the row number (0-based)
|
||||||
* @throws IndexOutOfBoundsException if the row number is not within the range 0-65535.
|
* @throws IndexOutOfBoundsException if the row number is not within the range 0-65535.
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public void setRowNum(int rowIndex) {
|
public void setRowNum(int rowIndex) {
|
||||||
int maxrow = SpreadsheetVersion.EXCEL97.getLastRowIndex();
|
int maxrow = SpreadsheetVersion.EXCEL97.getLastRowIndex();
|
||||||
if ((rowIndex < 0) || (rowIndex > maxrow)) {
|
if ((rowIndex < 0) || (rowIndex > maxrow)) {
|
||||||
|
@ -237,6 +241,7 @@ public final class HSSFRow implements Row, Comparable<HSSFRow> {
|
||||||
* get row number this row represents
|
* get row number this row represents
|
||||||
* @return the row number (0 based)
|
* @return the row number (0 based)
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public int getRowNum()
|
public int getRowNum()
|
||||||
{
|
{
|
||||||
return rowNum;
|
return rowNum;
|
||||||
|
@ -247,6 +252,7 @@ public final class HSSFRow implements Row, Comparable<HSSFRow> {
|
||||||
*
|
*
|
||||||
* @return the HSSFSheet that owns this row
|
* @return the HSSFSheet that owns this row
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public HSSFSheet getSheet()
|
public HSSFSheet getSheet()
|
||||||
{
|
{
|
||||||
return sheet;
|
return sheet;
|
||||||
|
@ -257,6 +263,7 @@ public final class HSSFRow implements Row, Comparable<HSSFRow> {
|
||||||
* put it into more groups (outlines), reduced as
|
* put it into more groups (outlines), reduced as
|
||||||
* you take it out of them.
|
* you take it out of them.
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public int getOutlineLevel() {
|
public int getOutlineLevel() {
|
||||||
return row.getOutlineLevel();
|
return row.getOutlineLevel();
|
||||||
}
|
}
|
||||||
|
@ -339,6 +346,7 @@ public final class HSSFRow implements Row, Comparable<HSSFRow> {
|
||||||
* @param cellnum 0 based column number
|
* @param cellnum 0 based column number
|
||||||
* @return HSSFCell representing that column or null if undefined.
|
* @return HSSFCell representing that column or null if undefined.
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public HSSFCell getCell(int cellnum) {
|
public HSSFCell getCell(int cellnum) {
|
||||||
return getCell(cellnum, book.getMissingCellPolicy());
|
return getCell(cellnum, book.getMissingCellPolicy());
|
||||||
}
|
}
|
||||||
|
@ -352,31 +360,27 @@ public final class HSSFRow implements Row, Comparable<HSSFRow> {
|
||||||
* @param policy Policy on blank / missing cells
|
* @param policy Policy on blank / missing cells
|
||||||
* @return representing that column or null if undefined + policy allows.
|
* @return representing that column or null if undefined + policy allows.
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public HSSFCell getCell(int cellnum, MissingCellPolicy policy) {
|
public HSSFCell getCell(int cellnum, MissingCellPolicy policy) {
|
||||||
HSSFCell cell = retrieveCell(cellnum);
|
HSSFCell cell = retrieveCell(cellnum);
|
||||||
if(policy == RETURN_NULL_AND_BLANK) {
|
switch (policy) {
|
||||||
return cell;
|
case RETURN_NULL_AND_BLANK:
|
||||||
|
return cell;
|
||||||
|
case RETURN_BLANK_AS_NULL:
|
||||||
|
boolean isBlank = (cell != null && cell.getCellType() == Cell.CELL_TYPE_BLANK);
|
||||||
|
return (isBlank) ? null : cell;
|
||||||
|
case CREATE_NULL_AS_BLANK:
|
||||||
|
return (cell == null) ? createCell(cellnum, Cell.CELL_TYPE_BLANK) : cell;
|
||||||
|
default:
|
||||||
|
throw new IllegalArgumentException("Illegal policy " + policy + " (" + policy.id + ")");
|
||||||
}
|
}
|
||||||
if(policy == RETURN_BLANK_AS_NULL) {
|
|
||||||
if(cell == null) return cell;
|
|
||||||
if(cell.getCellType() == HSSFCell.CELL_TYPE_BLANK) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
return cell;
|
|
||||||
}
|
|
||||||
if(policy == CREATE_NULL_AS_BLANK) {
|
|
||||||
if(cell == null) {
|
|
||||||
return createCell(cellnum, HSSFCell.CELL_TYPE_BLANK);
|
|
||||||
}
|
|
||||||
return cell;
|
|
||||||
}
|
|
||||||
throw new IllegalArgumentException("Illegal policy " + policy + " (" + policy.id + ")");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* get the number of the first cell contained in this row.
|
* get the number of the first cell contained in this row.
|
||||||
* @return short representing the first logical cell in the row, or -1 if the row does not contain any cells.
|
* @return short representing the first logical cell in the row, or -1 if the row does not contain any cells.
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public short getFirstCellNum() {
|
public short getFirstCellNum() {
|
||||||
if (row.isEmpty()) {
|
if (row.isEmpty()) {
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -403,6 +407,7 @@ public final class HSSFRow implements Row, Comparable<HSSFRow> {
|
||||||
* @return short representing the last logical cell in the row <b>PLUS ONE</b>, or -1 if the
|
* @return short representing the last logical cell in the row <b>PLUS ONE</b>, or -1 if the
|
||||||
* row does not contain any cells.
|
* row does not contain any cells.
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public short getLastCellNum() {
|
public short getLastCellNum() {
|
||||||
if (row.isEmpty()) {
|
if (row.isEmpty()) {
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -417,6 +422,7 @@ public final class HSSFRow implements Row, Comparable<HSSFRow> {
|
||||||
* @return int representing the number of defined cells in the row.
|
* @return int representing the number of defined cells in the row.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@Override
|
||||||
public int getPhysicalNumberOfCells()
|
public int getPhysicalNumberOfCells()
|
||||||
{
|
{
|
||||||
int count=0;
|
int count=0;
|
||||||
|
@ -433,6 +439,7 @@ public final class HSSFRow implements Row, Comparable<HSSFRow> {
|
||||||
* @param height rowheight or -1 for undefined (use sheet default)
|
* @param height rowheight or -1 for undefined (use sheet default)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@Override
|
||||||
public void setHeight(short height)
|
public void setHeight(short height)
|
||||||
{
|
{
|
||||||
if(height == -1){
|
if(height == -1){
|
||||||
|
@ -448,6 +455,7 @@ public final class HSSFRow implements Row, Comparable<HSSFRow> {
|
||||||
* set whether or not to display this row with 0 height
|
* set whether or not to display this row with 0 height
|
||||||
* @param zHeight height is zero or not.
|
* @param zHeight height is zero or not.
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public void setZeroHeight(boolean zHeight) {
|
public void setZeroHeight(boolean zHeight) {
|
||||||
row.setZeroHeight(zHeight);
|
row.setZeroHeight(zHeight);
|
||||||
}
|
}
|
||||||
|
@ -456,6 +464,7 @@ public final class HSSFRow implements Row, Comparable<HSSFRow> {
|
||||||
* get whether or not to display this row with 0 height
|
* get whether or not to display this row with 0 height
|
||||||
* @return - zHeight height is zero or not.
|
* @return - zHeight height is zero or not.
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public boolean getZeroHeight() {
|
public boolean getZeroHeight() {
|
||||||
return row.getZeroHeight();
|
return row.getZeroHeight();
|
||||||
}
|
}
|
||||||
|
@ -465,6 +474,7 @@ public final class HSSFRow implements Row, Comparable<HSSFRow> {
|
||||||
* @param height row height in points, <code>-1</code> means to use the default height
|
* @param height row height in points, <code>-1</code> means to use the default height
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@Override
|
||||||
public void setHeightInPoints(float height)
|
public void setHeightInPoints(float height)
|
||||||
{
|
{
|
||||||
if(height == -1){
|
if(height == -1){
|
||||||
|
@ -480,6 +490,7 @@ public final class HSSFRow implements Row, Comparable<HSSFRow> {
|
||||||
* @return rowheight or 0xff for undefined (use sheet default)
|
* @return rowheight or 0xff for undefined (use sheet default)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@Override
|
||||||
public short getHeight()
|
public short getHeight()
|
||||||
{
|
{
|
||||||
short height = row.getHeight();
|
short height = row.getHeight();
|
||||||
|
@ -497,6 +508,7 @@ public final class HSSFRow implements Row, Comparable<HSSFRow> {
|
||||||
* @return rowheight or 0xff for undefined (use sheet default)
|
* @return rowheight or 0xff for undefined (use sheet default)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@Override
|
||||||
public float getHeightInPoints()
|
public float getHeightInPoints()
|
||||||
{
|
{
|
||||||
return ((float)getHeight() / 20);
|
return ((float)getHeight() / 20);
|
||||||
|
@ -553,6 +565,7 @@ public final class HSSFRow implements Row, Comparable<HSSFRow> {
|
||||||
* do have whole-row styles. For those that do, you
|
* do have whole-row styles. For those that do, you
|
||||||
* can get the formatting from {@link #getRowStyle()}
|
* can get the formatting from {@link #getRowStyle()}
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public boolean isFormatted() {
|
public boolean isFormatted() {
|
||||||
return row.getFormatted();
|
return row.getFormatted();
|
||||||
}
|
}
|
||||||
|
@ -561,6 +574,7 @@ public final class HSSFRow implements Row, Comparable<HSSFRow> {
|
||||||
* have one of these, so will return null. Call
|
* have one of these, so will return null. Call
|
||||||
* {@link #isFormatted()} to check first.
|
* {@link #isFormatted()} to check first.
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public HSSFCellStyle getRowStyle() {
|
public HSSFCellStyle getRowStyle() {
|
||||||
if(!isFormatted()) { return null; }
|
if(!isFormatted()) { return null; }
|
||||||
short styleIndex = row.getXFIndex();
|
short styleIndex = row.getXFIndex();
|
||||||
|
@ -577,6 +591,7 @@ public final class HSSFRow implements Row, Comparable<HSSFRow> {
|
||||||
/**
|
/**
|
||||||
* Applies a whole-row cell styling to the row.
|
* Applies a whole-row cell styling to the row.
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public void setRowStyle(CellStyle style) {
|
public void setRowStyle(CellStyle style) {
|
||||||
setRowStyle((HSSFCellStyle)style);
|
setRowStyle((HSSFCellStyle)style);
|
||||||
}
|
}
|
||||||
|
@ -589,6 +604,7 @@ public final class HSSFRow implements Row, Comparable<HSSFRow> {
|
||||||
* As this only ever works on physically defined cells,
|
* As this only ever works on physically defined cells,
|
||||||
* the {@link org.apache.poi.ss.usermodel.Row.MissingCellPolicy} has no effect.
|
* the {@link org.apache.poi.ss.usermodel.Row.MissingCellPolicy} has no effect.
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public Iterator<Cell> cellIterator()
|
public Iterator<Cell> cellIterator()
|
||||||
{
|
{
|
||||||
return new CellIterator();
|
return new CellIterator();
|
||||||
|
@ -597,6 +613,7 @@ public final class HSSFRow implements Row, Comparable<HSSFRow> {
|
||||||
* Alias for {@link #cellIterator} to allow
|
* Alias for {@link #cellIterator} to allow
|
||||||
* foreach loops
|
* foreach loops
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public Iterator<Cell> iterator() {
|
public Iterator<Cell> iterator() {
|
||||||
return cellIterator();
|
return cellIterator();
|
||||||
}
|
}
|
||||||
|
@ -613,11 +630,13 @@ public final class HSSFRow implements Row, Comparable<HSSFRow> {
|
||||||
findNext();
|
findNext();
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasNext() {
|
@Override
|
||||||
|
public boolean hasNext() {
|
||||||
return nextId<cells.length;
|
return nextId<cells.length;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Cell next() {
|
@Override
|
||||||
|
public Cell next() {
|
||||||
if (!hasNext())
|
if (!hasNext())
|
||||||
throw new NoSuchElementException("At last element");
|
throw new NoSuchElementException("At last element");
|
||||||
HSSFCell cell=cells[nextId];
|
HSSFCell cell=cells[nextId];
|
||||||
|
@ -626,7 +645,8 @@ public final class HSSFRow implements Row, Comparable<HSSFRow> {
|
||||||
return cell;
|
return cell;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void remove() {
|
@Override
|
||||||
|
public void remove() {
|
||||||
if (thisId == -1)
|
if (thisId == -1)
|
||||||
throw new IllegalStateException("remove() called before next()");
|
throw new IllegalStateException("remove() called before next()");
|
||||||
cells[thisId]=null;
|
cells[thisId]=null;
|
||||||
|
|
|
@ -175,7 +175,7 @@ public final class HSSFWorkbook extends POIDocument implements org.apache.poi.ss
|
||||||
* blank cells when fetching from a row.
|
* blank cells when fetching from a row.
|
||||||
* See {@link MissingCellPolicy}
|
* See {@link MissingCellPolicy}
|
||||||
*/
|
*/
|
||||||
private MissingCellPolicy missingCellPolicy = HSSFRow.RETURN_NULL_AND_BLANK;
|
private MissingCellPolicy missingCellPolicy = MissingCellPolicy.RETURN_NULL_AND_BLANK;
|
||||||
|
|
||||||
private static POILogger log = POILogFactory.getLogger(HSSFWorkbook.class);
|
private static POILogger log = POILogFactory.getLogger(HSSFWorkbook.class);
|
||||||
|
|
||||||
|
@ -888,6 +888,7 @@ public final class HSSFWorkbook extends POIDocument implements org.apache.poi.ss
|
||||||
*
|
*
|
||||||
* @return an iterator of the sheets.
|
* @return an iterator of the sheets.
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public Iterator<Sheet> sheetIterator() {
|
public Iterator<Sheet> sheetIterator() {
|
||||||
Iterator<Sheet> result = new SheetIterator<Sheet>();
|
Iterator<Sheet> result = new SheetIterator<Sheet>();
|
||||||
return result;
|
return result;
|
||||||
|
@ -897,6 +898,7 @@ public final class HSSFWorkbook extends POIDocument implements org.apache.poi.ss
|
||||||
* Alias for {@link #sheetIterator()} to allow
|
* Alias for {@link #sheetIterator()} to allow
|
||||||
* foreach loops
|
* foreach loops
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public Iterator<Sheet> iterator() {
|
public Iterator<Sheet> iterator() {
|
||||||
return sheetIterator();
|
return sheetIterator();
|
||||||
}
|
}
|
||||||
|
@ -1130,6 +1132,7 @@ public final class HSSFWorkbook extends POIDocument implements org.apache.poi.ss
|
||||||
* Finds a font that matches the one with the supplied attributes
|
* Finds a font that matches the one with the supplied attributes
|
||||||
* @deprecated 3.15 beta 2. Use {@link #findFont(boolean, short, short, String, boolean, boolean, short, byte)} instead.
|
* @deprecated 3.15 beta 2. Use {@link #findFont(boolean, short, short, String, boolean, boolean, short, byte)} instead.
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
@Override
|
@Override
|
||||||
public HSSFFont findFont(short boldWeight, short color, short fontHeight,
|
public HSSFFont findFont(short boldWeight, short color, short fontHeight,
|
||||||
String name, boolean italic, boolean strikeout,
|
String name, boolean italic, boolean strikeout,
|
||||||
|
@ -1159,6 +1162,7 @@ public final class HSSFWorkbook extends POIDocument implements org.apache.poi.ss
|
||||||
/**
|
/**
|
||||||
* Finds a font that matches the one with the supplied attributes
|
* Finds a font that matches the one with the supplied attributes
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public HSSFFont findFont(boolean bold, short color, short fontHeight,
|
public HSSFFont findFont(boolean bold, short color, short fontHeight,
|
||||||
String name, boolean italic, boolean strikeout,
|
String name, boolean italic, boolean strikeout,
|
||||||
short typeOffset, byte underline)
|
short typeOffset, byte underline)
|
||||||
|
@ -1756,7 +1760,7 @@ public final class HSSFWorkbook extends POIDocument implements org.apache.poi.ss
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
blipRecord.setRecordId((short) (EscherBitmapBlip.RECORD_ID_START + format));
|
blipRecord.setRecordId((short) (EscherBlipRecord.RECORD_ID_START + format));
|
||||||
switch (format)
|
switch (format)
|
||||||
{
|
{
|
||||||
case PICTURE_TYPE_EMF:
|
case PICTURE_TYPE_EMF:
|
||||||
|
|
|
@ -32,7 +32,7 @@ public interface Row extends Iterable<Cell> {
|
||||||
*
|
*
|
||||||
* @param column - the column number this cell represents
|
* @param column - the column number this cell represents
|
||||||
* @return Cell a high level representation of the created cell.
|
* @return Cell a high level representation of the created cell.
|
||||||
* @throws IllegalArgumentException if columnIndex < 0 or greater than the maximum number of supported columns
|
* @throws IllegalArgumentException if columnIndex < 0 or greater than the maximum number of supported columns
|
||||||
* (255 for *.xls, 1048576 for *.xlsx)
|
* (255 for *.xls, 1048576 for *.xlsx)
|
||||||
*/
|
*/
|
||||||
Cell createCell(int column);
|
Cell createCell(int column);
|
||||||
|
@ -48,7 +48,7 @@ public interface Row extends Iterable<Cell> {
|
||||||
* @param column - the column number this cell represents
|
* @param column - the column number this cell represents
|
||||||
* @param type - the cell's data type
|
* @param type - the cell's data type
|
||||||
* @return Cell a high level representation of the created cell.
|
* @return Cell a high level representation of the created cell.
|
||||||
* @throws IllegalArgumentException if columnIndex < 0 or greate than a maximum number of supported columns
|
* @throws IllegalArgumentException if columnIndex < 0 or greater than a maximum number of supported columns
|
||||||
* (255 for *.xls, 1048576 for *.xlsx)
|
* (255 for *.xls, 1048576 for *.xlsx)
|
||||||
* @see Cell#CELL_TYPE_BLANK
|
* @see Cell#CELL_TYPE_BLANK
|
||||||
* @see Cell#CELL_TYPE_BOOLEAN
|
* @see Cell#CELL_TYPE_BOOLEAN
|
||||||
|
@ -70,7 +70,7 @@ public interface Row extends Iterable<Cell> {
|
||||||
* Set the row number of this row.
|
* Set the row number of this row.
|
||||||
*
|
*
|
||||||
* @param rowNum the row number (0-based)
|
* @param rowNum the row number (0-based)
|
||||||
* @throws IllegalArgumentException if rowNum < 0
|
* @throws IllegalArgumentException if rowNum < 0
|
||||||
*/
|
*/
|
||||||
void setRowNum(int rowNum);
|
void setRowNum(int rowNum);
|
||||||
|
|
||||||
|
@ -95,10 +95,7 @@ public interface Row extends Iterable<Cell> {
|
||||||
* Returns the cell at the given (0 based) index, with the specified {@link org.apache.poi.ss.usermodel.Row.MissingCellPolicy}
|
* Returns the cell at the given (0 based) index, with the specified {@link org.apache.poi.ss.usermodel.Row.MissingCellPolicy}
|
||||||
*
|
*
|
||||||
* @return the cell at the given (0 based) index
|
* @return the cell at the given (0 based) index
|
||||||
* @throws IllegalArgumentException if cellnum < 0 or the specified MissingCellPolicy is invalid
|
* @throws IllegalArgumentException if cellnum < 0 or the specified MissingCellPolicy is invalid
|
||||||
* @see Row#RETURN_NULL_AND_BLANK
|
|
||||||
* @see Row#RETURN_BLANK_AS_NULL
|
|
||||||
* @see Row#CREATE_NULL_AS_BLANK
|
|
||||||
*/
|
*/
|
||||||
Cell getCell(int cellnum, MissingCellPolicy policy);
|
Cell getCell(int cellnum, MissingCellPolicy policy);
|
||||||
|
|
||||||
|
@ -221,22 +218,41 @@ public interface Row extends Iterable<Cell> {
|
||||||
* Used to specify the different possible policies
|
* Used to specify the different possible policies
|
||||||
* if for the case of null and blank cells
|
* if for the case of null and blank cells
|
||||||
*/
|
*/
|
||||||
public static enum MissingCellPolicy {
|
public enum MissingCellPolicy {
|
||||||
RETURN_NULL_AND_BLANK(),
|
RETURN_NULL_AND_BLANK(1),
|
||||||
RETURN_BLANK_AS_NULL(),
|
RETURN_BLANK_AS_NULL(2),
|
||||||
CREATE_NULL_AS_BLANK();
|
CREATE_NULL_AS_BLANK(3);
|
||||||
|
|
||||||
private int NEXT_ID = 1;
|
/**
|
||||||
|
* @deprecated as of POI 3.15-beta2, scheduled for removal in 3.17 - the id has no function and will be removed
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
public final int id;
|
public final int id;
|
||||||
private MissingCellPolicy() {
|
private MissingCellPolicy(int id) {
|
||||||
this.id = NEXT_ID++;
|
this.id = id;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/** Missing cells are returned as null, Blank cells are returned as normal */
|
|
||||||
|
/**
|
||||||
|
* Missing cells are returned as null, Blank cells are returned as normal
|
||||||
|
*
|
||||||
|
* @deprecated as of POI 3.15-beta2, scheduled for removal in 3.17 - use the MissingCellPolicy enum
|
||||||
|
**/
|
||||||
|
@Deprecated
|
||||||
public static final MissingCellPolicy RETURN_NULL_AND_BLANK = MissingCellPolicy.RETURN_NULL_AND_BLANK;
|
public static final MissingCellPolicy RETURN_NULL_AND_BLANK = MissingCellPolicy.RETURN_NULL_AND_BLANK;
|
||||||
/** Missing cells and blank cells are returned as null */
|
/**
|
||||||
|
* Missing cells and blank cells are returned as null
|
||||||
|
*
|
||||||
|
* @deprecated as of POI 3.15-beta2, scheduled for removal in 3.17 - use the MissingCellPolicy enum
|
||||||
|
**/
|
||||||
|
@Deprecated
|
||||||
public static final MissingCellPolicy RETURN_BLANK_AS_NULL = MissingCellPolicy.RETURN_BLANK_AS_NULL;
|
public static final MissingCellPolicy RETURN_BLANK_AS_NULL = MissingCellPolicy.RETURN_BLANK_AS_NULL;
|
||||||
/** A new, blank cell is created for missing cells. Blank cells are returned as normal */
|
/**
|
||||||
|
* A new, blank cell is created for missing cells. Blank cells are returned as normal
|
||||||
|
*
|
||||||
|
* @deprecated as of POI 3.15-beta2, scheduled for removal in 3.17 - use the MissingCellPolicy enum
|
||||||
|
**/
|
||||||
|
@Deprecated
|
||||||
public static final MissingCellPolicy CREATE_NULL_AS_BLANK = MissingCellPolicy.CREATE_NULL_AS_BLANK;
|
public static final MissingCellPolicy CREATE_NULL_AS_BLANK = MissingCellPolicy.CREATE_NULL_AS_BLANK;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -135,48 +135,43 @@ public interface Sheet extends Iterable<Row> {
|
||||||
public boolean isRightToLeft();
|
public boolean isRightToLeft();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the width (in units of 1/256th of a character width)
|
* Set the width (in units of 1/256th of a character width)<p>
|
||||||
*
|
*
|
||||||
* <p>
|
|
||||||
* The maximum column width for an individual cell is 255 characters.
|
* The maximum column width for an individual cell is 255 characters.
|
||||||
* This value represents the number of characters that can be displayed
|
* This value represents the number of characters that can be displayed
|
||||||
* in a cell that is formatted with the standard font (first font in the workbook).
|
* in a cell that is formatted with the standard font (first font in the workbook).<p>
|
||||||
* </p>
|
|
||||||
*
|
*
|
||||||
* <p>
|
|
||||||
* Character width is defined as the maximum digit width
|
* Character width is defined as the maximum digit width
|
||||||
* of the numbers <code>0, 1, 2, ... 9</code> as rendered
|
* of the numbers <code>0, 1, 2, ... 9</code> as rendered
|
||||||
* using the default font (first font in the workbook).
|
* using the default font (first font in the workbook).<p>
|
||||||
* <br/>
|
*
|
||||||
* Unless you are using a very special font, the default character is '0' (zero),
|
* Unless you are using a very special font, the default character is '0' (zero),
|
||||||
* this is true for Arial (default font font in HSSF) and Calibri (default font in XSSF)
|
* this is true for Arial (default font font in HSSF) and Calibri (default font in XSSF)<p>
|
||||||
* </p>
|
|
||||||
*
|
*
|
||||||
* <p>
|
|
||||||
* Please note, that the width set by this method includes 4 pixels of margin padding (two on each side),
|
* Please note, that the width set by this method includes 4 pixels of margin padding (two on each side),
|
||||||
* plus 1 pixel padding for the gridlines (Section 3.3.1.12 of the OOXML spec).
|
* plus 1 pixel padding for the gridlines (Section 3.3.1.12 of the OOXML spec).
|
||||||
* This results is a slightly less value of visible characters than passed to this method (approx. 1/2 of a character).
|
* This results is a slightly less value of visible characters than passed to this method (approx. 1/2 of a character).<p>
|
||||||
* </p>
|
*
|
||||||
* <p>
|
|
||||||
* To compute the actual number of visible characters,
|
* To compute the actual number of visible characters,
|
||||||
* Excel uses the following formula (Section 3.3.1.12 of the OOXML spec):
|
* Excel uses the following formula (Section 3.3.1.12 of the OOXML spec):<p>
|
||||||
* </p>
|
*
|
||||||
* <code>
|
* <code>
|
||||||
* width = Truncate([{Number of Visible Characters} *
|
* width = Truncate([{Number of Visible Characters} *
|
||||||
* {Maximum Digit Width} + {5 pixel padding}]/{Maximum Digit Width}*256)/256
|
* {Maximum Digit Width} + {5 pixel padding}]/{Maximum Digit Width}*256)/256
|
||||||
* </code>
|
* </code>
|
||||||
* <p>Using the Calibri font as an example, the maximum digit width of 11 point font size is 7 pixels (at 96 dpi).
|
*
|
||||||
* If you set a column width to be eight characters wide, e.g. <code>setColumnWidth(columnIndex, 8*256)</code>,
|
* Using the Calibri font as an example, the maximum digit width of 11 point font size is 7 pixels (at 96 dpi).
|
||||||
* then the actual value of visible characters (the value shown in Excel) is derived from the following equation:
|
* If you set a column width to be eight characters wide, e.g. <code>setColumnWidth(columnIndex, 8*256)</code>,
|
||||||
|
* then the actual value of visible characters (the value shown in Excel) is derived from the following equation:
|
||||||
* <code>
|
* <code>
|
||||||
Truncate([numChars*7+5]/7*256)/256 = 8;
|
* Truncate([numChars*7+5]/7*256)/256 = 8;
|
||||||
* </code>
|
* </code>
|
||||||
*
|
*
|
||||||
* which gives <code>7.29</code>.
|
* which gives <code>7.29</code>.
|
||||||
*
|
*
|
||||||
* @param columnIndex - the column to set (0-based)
|
* @param columnIndex - the column to set (0-based)
|
||||||
* @param width - the width in units of 1/256th of a character width
|
* @param width - the width in units of 1/256th of a character width
|
||||||
* @throws IllegalArgumentException if width > 255*256 (the maximum column width in Excel is 255 characters)
|
* @throws IllegalArgumentException if width > 255*256 (the maximum column width in Excel is 255 characters)
|
||||||
*/
|
*/
|
||||||
void setColumnWidth(int columnIndex, int width);
|
void setColumnWidth(int columnIndex, int width);
|
||||||
|
|
||||||
|
@ -557,17 +552,17 @@ public interface Sheet extends Iterable<Row> {
|
||||||
PrintSetup getPrintSetup();
|
PrintSetup getPrintSetup();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the user model for the default document header.
|
* Gets the user model for the default document header.<p>
|
||||||
* <p/>
|
*
|
||||||
* Note that XSSF offers more kinds of document headers than HSSF does
|
* Note that XSSF offers more kinds of document headers than HSSF does
|
||||||
* </p>
|
*
|
||||||
* @return the document header. Never <code>null</code>
|
* @return the document header. Never <code>null</code>
|
||||||
*/
|
*/
|
||||||
Header getHeader();
|
Header getHeader();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the user model for the default document footer.
|
* Gets the user model for the default document footer.<p>
|
||||||
* <p/>
|
*
|
||||||
* Note that XSSF offers more kinds of document footers than HSSF does.
|
* Note that XSSF offers more kinds of document footers than HSSF does.
|
||||||
*
|
*
|
||||||
* @return the document footer. Never <code>null</code>
|
* @return the document footer. Never <code>null</code>
|
||||||
|
@ -575,10 +570,10 @@ public interface Sheet extends Iterable<Row> {
|
||||||
Footer getFooter();
|
Footer getFooter();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets a flag indicating whether this sheet is selected.
|
* Sets a flag indicating whether this sheet is selected.<p>
|
||||||
*<p>
|
*
|
||||||
* Note: multiple sheets can be selected, but only one sheet can be active at one time.
|
* Note: multiple sheets can be selected, but only one sheet can be active at one time.
|
||||||
*</p>
|
*
|
||||||
* @param value <code>true</code> if this sheet is selected
|
* @param value <code>true</code> if this sheet is selected
|
||||||
* @see Workbook#setActiveSheet(int)
|
* @see Workbook#setActiveSheet(int)
|
||||||
*/
|
*/
|
||||||
|
@ -603,7 +598,7 @@ public interface Sheet extends Iterable<Row> {
|
||||||
/**
|
/**
|
||||||
* Answer whether protection is enabled or disabled
|
* Answer whether protection is enabled or disabled
|
||||||
*
|
*
|
||||||
* @return true => protection enabled; false => protection disabled
|
* @return true => protection enabled; false => protection disabled
|
||||||
*/
|
*/
|
||||||
boolean getProtect();
|
boolean getProtect();
|
||||||
|
|
||||||
|
@ -616,7 +611,7 @@ public interface Sheet extends Iterable<Row> {
|
||||||
/**
|
/**
|
||||||
* Answer whether scenario protection is enabled or disabled
|
* Answer whether scenario protection is enabled or disabled
|
||||||
*
|
*
|
||||||
* @return true => protection enabled; false => protection disabled
|
* @return true => protection enabled; false => protection disabled
|
||||||
*/
|
*/
|
||||||
boolean getScenarioProtect();
|
boolean getScenarioProtect();
|
||||||
|
|
||||||
|
@ -629,11 +624,12 @@ public interface Sheet extends Iterable<Row> {
|
||||||
* @param denominator The denominator for the zoom magnification.
|
* @param denominator The denominator for the zoom magnification.
|
||||||
* @deprecated 2015-11-23 (circa POI 3.14beta1). Use {@link #setZoom(int)} instead.
|
* @deprecated 2015-11-23 (circa POI 3.14beta1). Use {@link #setZoom(int)} instead.
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
void setZoom(int numerator, int denominator);
|
void setZoom(int numerator, int denominator);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Window zoom magnification for current view representing percent values.
|
* Window zoom magnification for current view representing percent values.
|
||||||
* Valid values range from 10 to 400. Horizontal & Vertical scale together.
|
* Valid values range from 10 to 400. Horizontal & Vertical scale together.
|
||||||
*
|
*
|
||||||
* For example:
|
* For example:
|
||||||
* <pre>
|
* <pre>
|
||||||
|
@ -949,6 +945,7 @@ public interface Sheet extends Iterable<Row> {
|
||||||
* @return cell comment or <code>null</code> if not found
|
* @return cell comment or <code>null</code> if not found
|
||||||
* @deprecated as of 2015-11-23 (circa POI 3.14beta1). Use {@link #getCellComment(CellAddress)} instead.
|
* @deprecated as of 2015-11-23 (circa POI 3.14beta1). Use {@link #getCellComment(CellAddress)} instead.
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
Comment getCellComment(int row, int column);
|
Comment getCellComment(int row, int column);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1054,8 +1051,8 @@ public interface Sheet extends Iterable<Row> {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the repeating rows used when printing the sheet, as found in
|
* Gets the repeating rows used when printing the sheet, as found in
|
||||||
* File->PageSetup->Sheet.
|
* File->PageSetup->Sheet.<p>
|
||||||
* <p/>
|
*
|
||||||
* Repeating rows cover a range of contiguous rows, e.g.:
|
* Repeating rows cover a range of contiguous rows, e.g.:
|
||||||
* <pre>
|
* <pre>
|
||||||
* Sheet1!$1:$1
|
* Sheet1!$1:$1
|
||||||
|
@ -1063,8 +1060,8 @@ public interface Sheet extends Iterable<Row> {
|
||||||
* </pre>
|
* </pre>
|
||||||
* The {@link CellRangeAddress} returned contains a column part which spans
|
* The {@link CellRangeAddress} returned contains a column part which spans
|
||||||
* all columns, and a row part which specifies the contiguous range of
|
* all columns, and a row part which specifies the contiguous range of
|
||||||
* repeating rows.
|
* repeating rows.<p>
|
||||||
* <p/>
|
*
|
||||||
* If the Sheet does not have any repeating rows defined, null is returned.
|
* If the Sheet does not have any repeating rows defined, null is returned.
|
||||||
*
|
*
|
||||||
* @return an {@link CellRangeAddress} containing the repeating rows for the
|
* @return an {@link CellRangeAddress} containing the repeating rows for the
|
||||||
|
@ -1075,8 +1072,8 @@ public interface Sheet extends Iterable<Row> {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the repeating columns used when printing the sheet, as found in
|
* Gets the repeating columns used when printing the sheet, as found in
|
||||||
* File->PageSetup->Sheet.
|
* File->PageSetup->Sheet.<p>
|
||||||
* <p/>
|
*
|
||||||
* Repeating columns cover a range of contiguous columns, e.g.:
|
* Repeating columns cover a range of contiguous columns, e.g.:
|
||||||
* <pre>
|
* <pre>
|
||||||
* Sheet1!$A:$A
|
* Sheet1!$A:$A
|
||||||
|
@ -1084,8 +1081,8 @@ public interface Sheet extends Iterable<Row> {
|
||||||
* </pre>
|
* </pre>
|
||||||
* The {@link CellRangeAddress} returned contains a row part which spans all
|
* The {@link CellRangeAddress} returned contains a row part which spans all
|
||||||
* rows, and a column part which specifies the contiguous range of
|
* rows, and a column part which specifies the contiguous range of
|
||||||
* repeating columns.
|
* repeating columns.<p>
|
||||||
* <p/>
|
*
|
||||||
* If the Sheet does not have any repeating columns defined, null is
|
* If the Sheet does not have any repeating columns defined, null is
|
||||||
* returned.
|
* returned.
|
||||||
*
|
*
|
||||||
|
@ -1097,8 +1094,8 @@ public interface Sheet extends Iterable<Row> {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the repeating rows used when printing the sheet, as found in
|
* Sets the repeating rows used when printing the sheet, as found in
|
||||||
* File->PageSetup->Sheet.
|
* File->PageSetup->Sheet.<p>
|
||||||
* <p/>
|
*
|
||||||
* Repeating rows cover a range of contiguous rows, e.g.:
|
* Repeating rows cover a range of contiguous rows, e.g.:
|
||||||
* <pre>
|
* <pre>
|
||||||
* Sheet1!$1:$1
|
* Sheet1!$1:$1
|
||||||
|
@ -1121,8 +1118,8 @@ public interface Sheet extends Iterable<Row> {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the repeating columns used when printing the sheet, as found in
|
* Sets the repeating columns used when printing the sheet, as found in
|
||||||
* File->PageSetup->Sheet.
|
* File->PageSetup->Sheet.<p>
|
||||||
* <p/>
|
*
|
||||||
* Repeating columns cover a range of contiguous columns, e.g.:
|
* Repeating columns cover a range of contiguous columns, e.g.:
|
||||||
* <pre>
|
* <pre>
|
||||||
* Sheet1!$A:$A
|
* Sheet1!$A:$A
|
||||||
|
|
|
@ -32,9 +32,7 @@ import org.apache.poi.util.Internal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Streaming version of XSSFRow implementing the "BigGridDemo" strategy.
|
* Streaming version of XSSFRow implementing the "BigGridDemo" strategy.
|
||||||
*
|
*/
|
||||||
* @author Alex Geller, Four J's Development Tools
|
|
||||||
*/
|
|
||||||
public class SXSSFRow implements Row, Comparable<SXSSFRow>
|
public class SXSSFRow implements Row, Comparable<SXSSFRow>
|
||||||
{
|
{
|
||||||
private static final Boolean UNDEFINED = null;
|
private static final Boolean UNDEFINED = null;
|
||||||
|
@ -55,6 +53,7 @@ public class SXSSFRow implements Row, Comparable<SXSSFRow>
|
||||||
* @param initialSize - no longer needed
|
* @param initialSize - no longer needed
|
||||||
* @deprecated 2015-11-30 (circa POI 3.14beta1). Use {@link #SXSSFRow(SXSSFSheet)} instead.
|
* @deprecated 2015-11-30 (circa POI 3.14beta1). Use {@link #SXSSFRow(SXSSFSheet)} instead.
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public SXSSFRow(SXSSFSheet sheet, @SuppressWarnings("UnusedParameters") int initialSize)
|
public SXSSFRow(SXSSFSheet sheet, @SuppressWarnings("UnusedParameters") int initialSize)
|
||||||
{
|
{
|
||||||
this(sheet);
|
this(sheet);
|
||||||
|
@ -74,6 +73,7 @@ public class SXSSFRow implements Row, Comparable<SXSSFRow>
|
||||||
return _height!=-1;
|
return _height!=-1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public int getOutlineLevel(){
|
public int getOutlineLevel(){
|
||||||
return _outlineLevel;
|
return _outlineLevel;
|
||||||
}
|
}
|
||||||
|
@ -239,38 +239,24 @@ public class SXSSFRow implements Row, Comparable<SXSSFRow>
|
||||||
*
|
*
|
||||||
* @return the cell at the given (0 based) index
|
* @return the cell at the given (0 based) index
|
||||||
* @throws IllegalArgumentException if cellnum < 0 or the specified MissingCellPolicy is invalid
|
* @throws IllegalArgumentException if cellnum < 0 or the specified MissingCellPolicy is invalid
|
||||||
* @see Row#RETURN_NULL_AND_BLANK
|
|
||||||
* @see Row#RETURN_BLANK_AS_NULL
|
|
||||||
* @see Row#CREATE_NULL_AS_BLANK
|
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public SXSSFCell getCell(int cellnum, MissingCellPolicy policy)
|
public SXSSFCell getCell(int cellnum, MissingCellPolicy policy)
|
||||||
{
|
{
|
||||||
checkBounds(cellnum);
|
checkBounds(cellnum);
|
||||||
|
|
||||||
// FIXME: replace with switch(enum)
|
|
||||||
final SXSSFCell cell = _cells.get(cellnum);
|
final SXSSFCell cell = _cells.get(cellnum);
|
||||||
if (policy == RETURN_NULL_AND_BLANK)
|
switch (policy) {
|
||||||
{
|
case RETURN_NULL_AND_BLANK:
|
||||||
return cell;
|
return cell;
|
||||||
|
case RETURN_BLANK_AS_NULL:
|
||||||
|
boolean isBlank = (cell != null && cell.getCellType() == Cell.CELL_TYPE_BLANK);
|
||||||
|
return (isBlank) ? null : cell;
|
||||||
|
case CREATE_NULL_AS_BLANK:
|
||||||
|
return (cell == null) ? createCell(cellnum, Cell.CELL_TYPE_BLANK) : cell;
|
||||||
|
default:
|
||||||
|
throw new IllegalArgumentException("Illegal policy " + policy + " (" + policy.id + ")");
|
||||||
}
|
}
|
||||||
else if (policy == RETURN_BLANK_AS_NULL)
|
|
||||||
{
|
|
||||||
if (cell == null || cell.getCellType() == Cell.CELL_TYPE_BLANK)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
return cell;
|
|
||||||
}
|
|
||||||
else if (policy == CREATE_NULL_AS_BLANK)
|
|
||||||
{
|
|
||||||
if (cell == null)
|
|
||||||
{
|
|
||||||
return createCell(cellnum, Cell.CELL_TYPE_BLANK);
|
|
||||||
}
|
|
||||||
return cell;
|
|
||||||
}
|
|
||||||
throw new IllegalArgumentException("Illegal policy " + policy + " (" + policy.id + ")");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -38,7 +38,7 @@ import org.apache.poi.ss.usermodel.DateUtil;
|
||||||
import org.apache.poi.ss.usermodel.FormulaError;
|
import org.apache.poi.ss.usermodel.FormulaError;
|
||||||
import org.apache.poi.ss.usermodel.Hyperlink;
|
import org.apache.poi.ss.usermodel.Hyperlink;
|
||||||
import org.apache.poi.ss.usermodel.RichTextString;
|
import org.apache.poi.ss.usermodel.RichTextString;
|
||||||
import org.apache.poi.ss.usermodel.Row;
|
import org.apache.poi.ss.usermodel.Row.MissingCellPolicy;
|
||||||
import org.apache.poi.ss.util.CellAddress;
|
import org.apache.poi.ss.util.CellAddress;
|
||||||
import org.apache.poi.ss.util.CellRangeAddress;
|
import org.apache.poi.ss.util.CellRangeAddress;
|
||||||
import org.apache.poi.ss.util.CellReference;
|
import org.apache.poi.ss.util.CellReference;
|
||||||
|
@ -112,7 +112,7 @@ public final class XSSFCell implements Cell {
|
||||||
} else {
|
} else {
|
||||||
int prevNum = row.getLastCellNum();
|
int prevNum = row.getLastCellNum();
|
||||||
if(prevNum != -1){
|
if(prevNum != -1){
|
||||||
_cellNum = row.getCell(prevNum-1, Row.RETURN_NULL_AND_BLANK).getColumnIndex() + 1;
|
_cellNum = row.getCell(prevNum-1, MissingCellPolicy.RETURN_NULL_AND_BLANK).getColumnIndex() + 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_sharedStringSource = row.getSheet().getWorkbook().getSharedStringSource();
|
_sharedStringSource = row.getSheet().getWorkbook().getSharedStringSource();
|
||||||
|
@ -551,6 +551,7 @@ public final class XSSFCell implements Cell {
|
||||||
cellFormula.setRef(range.formatAsString());
|
cellFormula.setRef(range.formatAsString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("resource")
|
||||||
private void setFormula(String formula, int formulaType) {
|
private void setFormula(String formula, int formulaType) {
|
||||||
XSSFWorkbook wb = _row.getSheet().getWorkbook();
|
XSSFWorkbook wb = _row.getSheet().getWorkbook();
|
||||||
if (formula == null) {
|
if (formula == null) {
|
||||||
|
|
|
@ -94,6 +94,7 @@ public class XSSFRow implements Row, Comparable<XSSFRow> {
|
||||||
*
|
*
|
||||||
* @return the XSSFSheet that owns this row
|
* @return the XSSFSheet that owns this row
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public XSSFSheet getSheet() {
|
public XSSFSheet getSheet() {
|
||||||
return this._sheet;
|
return this._sheet;
|
||||||
}
|
}
|
||||||
|
@ -109,6 +110,7 @@ public class XSSFRow implements Row, Comparable<XSSFRow> {
|
||||||
*
|
*
|
||||||
* @return an iterator over cells in this row.
|
* @return an iterator over cells in this row.
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public Iterator<Cell> cellIterator() {
|
public Iterator<Cell> cellIterator() {
|
||||||
return (Iterator<Cell>)(Iterator<? extends Cell>)_cells.values().iterator();
|
return (Iterator<Cell>)(Iterator<? extends Cell>)_cells.values().iterator();
|
||||||
|
@ -124,6 +126,7 @@ public class XSSFRow implements Row, Comparable<XSSFRow> {
|
||||||
*
|
*
|
||||||
* @return an iterator over cells in this row.
|
* @return an iterator over cells in this row.
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public Iterator<Cell> iterator() {
|
public Iterator<Cell> iterator() {
|
||||||
return cellIterator();
|
return cellIterator();
|
||||||
}
|
}
|
||||||
|
@ -189,6 +192,7 @@ public class XSSFRow implements Row, Comparable<XSSFRow> {
|
||||||
* @throws IllegalArgumentException if columnIndex < 0 or greater than 16384,
|
* @throws IllegalArgumentException if columnIndex < 0 or greater than 16384,
|
||||||
* the maximum number of columns supported by the SpreadsheetML format (.xlsx)
|
* the maximum number of columns supported by the SpreadsheetML format (.xlsx)
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public XSSFCell createCell(int columnIndex) {
|
public XSSFCell createCell(int columnIndex) {
|
||||||
return createCell(columnIndex, Cell.CELL_TYPE_BLANK);
|
return createCell(columnIndex, Cell.CELL_TYPE_BLANK);
|
||||||
}
|
}
|
||||||
|
@ -208,6 +212,7 @@ public class XSSFRow implements Row, Comparable<XSSFRow> {
|
||||||
* @see Cell#CELL_TYPE_NUMERIC
|
* @see Cell#CELL_TYPE_NUMERIC
|
||||||
* @see Cell#CELL_TYPE_STRING
|
* @see Cell#CELL_TYPE_STRING
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public XSSFCell createCell(int columnIndex, int type) {
|
public XSSFCell createCell(int columnIndex, int type) {
|
||||||
// Performance optimization for bug 57840: explicit boxing is slightly faster than auto-unboxing, though may use more memory
|
// Performance optimization for bug 57840: explicit boxing is slightly faster than auto-unboxing, though may use more memory
|
||||||
final Integer colI = new Integer(columnIndex); // NOSONAR
|
final Integer colI = new Integer(columnIndex); // NOSONAR
|
||||||
|
@ -234,6 +239,7 @@ public class XSSFRow implements Row, Comparable<XSSFRow> {
|
||||||
*
|
*
|
||||||
* @return the cell at the given (0 based) index
|
* @return the cell at the given (0 based) index
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public XSSFCell getCell(int cellnum) {
|
public XSSFCell getCell(int cellnum) {
|
||||||
return getCell(cellnum, _sheet.getWorkbook().getMissingCellPolicy());
|
return getCell(cellnum, _sheet.getWorkbook().getMissingCellPolicy());
|
||||||
}
|
}
|
||||||
|
@ -242,34 +248,26 @@ public class XSSFRow implements Row, Comparable<XSSFRow> {
|
||||||
* Returns the cell at the given (0 based) index, with the specified {@link org.apache.poi.ss.usermodel.Row.MissingCellPolicy}
|
* Returns the cell at the given (0 based) index, with the specified {@link org.apache.poi.ss.usermodel.Row.MissingCellPolicy}
|
||||||
*
|
*
|
||||||
* @return the cell at the given (0 based) index
|
* @return the cell at the given (0 based) index
|
||||||
* @throws IllegalArgumentException if cellnum < 0 or the specified MissingCellPolicy is invalid
|
* @throws IllegalArgumentException if cellnum < 0 or the specified MissingCellPolicy is invalid
|
||||||
* @see Row#RETURN_NULL_AND_BLANK
|
|
||||||
* @see Row#RETURN_BLANK_AS_NULL
|
|
||||||
* @see Row#CREATE_NULL_AS_BLANK
|
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public XSSFCell getCell(int cellnum, MissingCellPolicy policy) {
|
public XSSFCell getCell(int cellnum, MissingCellPolicy policy) {
|
||||||
if(cellnum < 0) throw new IllegalArgumentException("Cell index must be >= 0");
|
if(cellnum < 0) throw new IllegalArgumentException("Cell index must be >= 0");
|
||||||
|
|
||||||
// Performance optimization for bug 57840: explicit boxing is slightly faster than auto-unboxing, though may use more memory
|
// Performance optimization for bug 57840: explicit boxing is slightly faster than auto-unboxing, though may use more memory
|
||||||
final Integer colI = new Integer(cellnum); // NOSONAR
|
final Integer colI = new Integer(cellnum); // NOSONAR
|
||||||
XSSFCell cell = _cells.get(colI);
|
XSSFCell cell = _cells.get(colI);
|
||||||
if(policy == RETURN_NULL_AND_BLANK) {
|
switch (policy) {
|
||||||
return cell;
|
case RETURN_NULL_AND_BLANK:
|
||||||
}
|
return cell;
|
||||||
if(policy == RETURN_BLANK_AS_NULL) {
|
case RETURN_BLANK_AS_NULL:
|
||||||
if(cell == null) return cell;
|
boolean isBlank = (cell != null && cell.getCellType() == Cell.CELL_TYPE_BLANK);
|
||||||
if(cell.getCellType() == Cell.CELL_TYPE_BLANK) {
|
return (isBlank) ? null : cell;
|
||||||
return null;
|
case CREATE_NULL_AS_BLANK:
|
||||||
}
|
return (cell == null) ? createCell(cellnum, Cell.CELL_TYPE_BLANK) : cell;
|
||||||
return cell;
|
default:
|
||||||
}
|
throw new IllegalArgumentException("Illegal policy " + policy + " (" + policy.id + ")");
|
||||||
if(policy == CREATE_NULL_AS_BLANK) {
|
}
|
||||||
if(cell == null) {
|
|
||||||
return createCell((short)cellnum, Cell.CELL_TYPE_BLANK);
|
|
||||||
}
|
|
||||||
return cell;
|
|
||||||
}
|
|
||||||
throw new IllegalArgumentException("Illegal policy " + policy + " (" + policy.id + ")");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -278,6 +276,7 @@ public class XSSFRow implements Row, Comparable<XSSFRow> {
|
||||||
* @return short representing the first logical cell in the row,
|
* @return short representing the first logical cell in the row,
|
||||||
* or -1 if the row does not contain any cells.
|
* or -1 if the row does not contain any cells.
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public short getFirstCellNum() {
|
public short getFirstCellNum() {
|
||||||
return (short)(_cells.size() == 0 ? -1 : _cells.firstKey());
|
return (short)(_cells.size() == 0 ? -1 : _cells.firstKey());
|
||||||
}
|
}
|
||||||
|
@ -301,6 +300,7 @@ public class XSSFRow implements Row, Comparable<XSSFRow> {
|
||||||
* @return short representing the last logical cell in the row <b>PLUS ONE</b>,
|
* @return short representing the last logical cell in the row <b>PLUS ONE</b>,
|
||||||
* or -1 if the row does not contain any cells.
|
* or -1 if the row does not contain any cells.
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public short getLastCellNum() {
|
public short getLastCellNum() {
|
||||||
return (short)(_cells.size() == 0 ? -1 : (_cells.lastKey() + 1));
|
return (short)(_cells.size() == 0 ? -1 : (_cells.lastKey() + 1));
|
||||||
}
|
}
|
||||||
|
@ -311,6 +311,7 @@ public class XSSFRow implements Row, Comparable<XSSFRow> {
|
||||||
*
|
*
|
||||||
* @return row height measured in twips (1/20th of a point)
|
* @return row height measured in twips (1/20th of a point)
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public short getHeight() {
|
public short getHeight() {
|
||||||
return (short)(getHeightInPoints()*20);
|
return (short)(getHeightInPoints()*20);
|
||||||
}
|
}
|
||||||
|
@ -322,6 +323,7 @@ public class XSSFRow implements Row, Comparable<XSSFRow> {
|
||||||
* @return row height measured in point size
|
* @return row height measured in point size
|
||||||
* @see org.apache.poi.xssf.usermodel.XSSFSheet#getDefaultRowHeightInPoints()
|
* @see org.apache.poi.xssf.usermodel.XSSFSheet#getDefaultRowHeightInPoints()
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public float getHeightInPoints() {
|
public float getHeightInPoints() {
|
||||||
if (this._row.isSetHt()) {
|
if (this._row.isSetHt()) {
|
||||||
return (float) this._row.getHt();
|
return (float) this._row.getHt();
|
||||||
|
@ -334,6 +336,7 @@ public class XSSFRow implements Row, Comparable<XSSFRow> {
|
||||||
*
|
*
|
||||||
* @param height the height in "twips" or 1/20th of a point. <code>-1</code> resets to the default height
|
* @param height the height in "twips" or 1/20th of a point. <code>-1</code> resets to the default height
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public void setHeight(short height) {
|
public void setHeight(short height) {
|
||||||
if (height == -1) {
|
if (height == -1) {
|
||||||
if (_row.isSetHt()) _row.unsetHt();
|
if (_row.isSetHt()) _row.unsetHt();
|
||||||
|
@ -350,6 +353,7 @@ public class XSSFRow implements Row, Comparable<XSSFRow> {
|
||||||
*
|
*
|
||||||
* @param height the height in points. <code>-1</code> resets to the default height
|
* @param height the height in points. <code>-1</code> resets to the default height
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public void setHeightInPoints(float height) {
|
public void setHeightInPoints(float height) {
|
||||||
setHeight((short)(height == -1 ? -1 : (height*20)));
|
setHeight((short)(height == -1 ? -1 : (height*20)));
|
||||||
}
|
}
|
||||||
|
@ -360,6 +364,7 @@ public class XSSFRow implements Row, Comparable<XSSFRow> {
|
||||||
*
|
*
|
||||||
* @return int representing the number of defined cells in the row.
|
* @return int representing the number of defined cells in the row.
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public int getPhysicalNumberOfCells() {
|
public int getPhysicalNumberOfCells() {
|
||||||
return _cells.size();
|
return _cells.size();
|
||||||
}
|
}
|
||||||
|
@ -369,6 +374,7 @@ public class XSSFRow implements Row, Comparable<XSSFRow> {
|
||||||
*
|
*
|
||||||
* @return the row number (0 based)
|
* @return the row number (0 based)
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public int getRowNum() {
|
public int getRowNum() {
|
||||||
return (int) (_row.getR() - 1);
|
return (int) (_row.getR() - 1);
|
||||||
}
|
}
|
||||||
|
@ -379,6 +385,7 @@ public class XSSFRow implements Row, Comparable<XSSFRow> {
|
||||||
* @param rowIndex the row number (0-based)
|
* @param rowIndex the row number (0-based)
|
||||||
* @throws IllegalArgumentException if rowNum < 0 or greater than 1048575
|
* @throws IllegalArgumentException if rowNum < 0 or greater than 1048575
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public void setRowNum(int rowIndex) {
|
public void setRowNum(int rowIndex) {
|
||||||
int maxrow = SpreadsheetVersion.EXCEL2007.getLastRowIndex();
|
int maxrow = SpreadsheetVersion.EXCEL2007.getLastRowIndex();
|
||||||
if (rowIndex < 0 || rowIndex > maxrow) {
|
if (rowIndex < 0 || rowIndex > maxrow) {
|
||||||
|
@ -393,6 +400,7 @@ public class XSSFRow implements Row, Comparable<XSSFRow> {
|
||||||
*
|
*
|
||||||
* @return - height is zero or not.
|
* @return - height is zero or not.
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public boolean getZeroHeight() {
|
public boolean getZeroHeight() {
|
||||||
return this._row.getHidden();
|
return this._row.getHidden();
|
||||||
}
|
}
|
||||||
|
@ -402,6 +410,7 @@ public class XSSFRow implements Row, Comparable<XSSFRow> {
|
||||||
*
|
*
|
||||||
* @param height height is zero or not.
|
* @param height height is zero or not.
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public void setZeroHeight(boolean height) {
|
public void setZeroHeight(boolean height) {
|
||||||
this._row.setHidden(height);
|
this._row.setHidden(height);
|
||||||
|
|
||||||
|
@ -412,6 +421,7 @@ public class XSSFRow implements Row, Comparable<XSSFRow> {
|
||||||
* do have whole-row styles. For those that do, you
|
* do have whole-row styles. For those that do, you
|
||||||
* can get the formatting from {@link #getRowStyle()}
|
* can get the formatting from {@link #getRowStyle()}
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public boolean isFormatted() {
|
public boolean isFormatted() {
|
||||||
return _row.isSetS();
|
return _row.isSetS();
|
||||||
}
|
}
|
||||||
|
@ -420,6 +430,7 @@ public class XSSFRow implements Row, Comparable<XSSFRow> {
|
||||||
* have one of these, so will return null. Call
|
* have one of these, so will return null. Call
|
||||||
* {@link #isFormatted()} to check first.
|
* {@link #isFormatted()} to check first.
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public XSSFCellStyle getRowStyle() {
|
public XSSFCellStyle getRowStyle() {
|
||||||
if(!isFormatted()) return null;
|
if(!isFormatted()) return null;
|
||||||
|
|
||||||
|
@ -436,6 +447,7 @@ public class XSSFRow implements Row, Comparable<XSSFRow> {
|
||||||
* If the value is null then the style information is removed,
|
* If the value is null then the style information is removed,
|
||||||
* causing the cell to used the default workbook style.
|
* causing the cell to used the default workbook style.
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public void setRowStyle(CellStyle style) {
|
public void setRowStyle(CellStyle style) {
|
||||||
if(style == null) {
|
if(style == null) {
|
||||||
if(_row.isSetS()) {
|
if(_row.isSetS()) {
|
||||||
|
@ -459,6 +471,7 @@ public class XSSFRow implements Row, Comparable<XSSFRow> {
|
||||||
*
|
*
|
||||||
* @param cell the cell to remove
|
* @param cell the cell to remove
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public void removeCell(Cell cell) {
|
public void removeCell(Cell cell) {
|
||||||
if (cell.getRow() != this) {
|
if (cell.getRow() != this) {
|
||||||
throw new IllegalArgumentException("Specified cell does not belong to this row");
|
throw new IllegalArgumentException("Specified cell does not belong to this row");
|
||||||
|
@ -640,6 +653,7 @@ public class XSSFRow implements Row, Comparable<XSSFRow> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public int getOutlineLevel() {
|
public int getOutlineLevel() {
|
||||||
return _row.getOutlineLevel();
|
return _row.getOutlineLevel();
|
||||||
}
|
}
|
||||||
|
|
|
@ -190,7 +190,7 @@ public class XSSFWorkbook extends POIXMLDocument implements Workbook {
|
||||||
* blank cells when fetching from a row.
|
* blank cells when fetching from a row.
|
||||||
* See {@link org.apache.poi.ss.usermodel.Row.MissingCellPolicy}
|
* See {@link org.apache.poi.ss.usermodel.Row.MissingCellPolicy}
|
||||||
*/
|
*/
|
||||||
private MissingCellPolicy _missingCellPolicy = Row.RETURN_NULL_AND_BLANK;
|
private MissingCellPolicy _missingCellPolicy = MissingCellPolicy.RETURN_NULL_AND_BLANK;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* array of pictures for this workbook
|
* array of pictures for this workbook
|
||||||
|
@ -872,6 +872,7 @@ public class XSSFWorkbook extends POIXMLDocument implements Workbook {
|
||||||
* Finds a font that matches the one with the supplied attributes
|
* Finds a font that matches the one with the supplied attributes
|
||||||
* @deprecated POI 3.15. Use {@link #findFont(boolean, short, short, String, boolean, boolean, short, byte)} instead.
|
* @deprecated POI 3.15. Use {@link #findFont(boolean, short, short, String, boolean, boolean, short, byte)} instead.
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
@Override
|
@Override
|
||||||
public XSSFFont findFont(short boldWeight, short color, short fontHeight, String name, boolean italic, boolean strikeout, short typeOffset, byte underline) {
|
public XSSFFont findFont(short boldWeight, short color, short fontHeight, String name, boolean italic, boolean strikeout, short typeOffset, byte underline) {
|
||||||
return stylesSource.findFont(boldWeight, color, fontHeight, name, italic, strikeout, typeOffset, underline);
|
return stylesSource.findFont(boldWeight, color, fontHeight, name, italic, strikeout, typeOffset, underline);
|
||||||
|
@ -921,6 +922,7 @@ public class XSSFWorkbook extends POIXMLDocument implements Workbook {
|
||||||
* @param idx index within the set of styles
|
* @param idx index within the set of styles
|
||||||
* @return XSSFCellStyle object at the index
|
* @return XSSFCellStyle object at the index
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public XSSFCellStyle getCellStyleAt(int idx) {
|
public XSSFCellStyle getCellStyleAt(int idx) {
|
||||||
return stylesSource.getStyleAt(idx);
|
return stylesSource.getStyleAt(idx);
|
||||||
}
|
}
|
||||||
|
@ -995,6 +997,7 @@ public class XSSFWorkbook extends POIXMLDocument implements Workbook {
|
||||||
*
|
*
|
||||||
* @return count of cell styles
|
* @return count of cell styles
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public int getNumCellStyles() {
|
public int getNumCellStyles() {
|
||||||
return stylesSource.getNumCellStyles();
|
return stylesSource.getNumCellStyles();
|
||||||
}
|
}
|
||||||
|
@ -1127,6 +1130,7 @@ public class XSSFWorkbook extends POIXMLDocument implements Workbook {
|
||||||
*
|
*
|
||||||
* @return an iterator of the sheets.
|
* @return an iterator of the sheets.
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public Iterator<Sheet> sheetIterator() {
|
public Iterator<Sheet> sheetIterator() {
|
||||||
return new SheetIterator<Sheet>();
|
return new SheetIterator<Sheet>();
|
||||||
}
|
}
|
||||||
|
@ -1950,6 +1954,7 @@ public class XSSFWorkbook extends POIXMLDocument implements Workbook {
|
||||||
* @param name The name the workbook will be referenced as in formulas
|
* @param name The name the workbook will be referenced as in formulas
|
||||||
* @param workbook The open workbook to fetch the link required information from
|
* @param workbook The open workbook to fetch the link required information from
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
@NotImplemented
|
@NotImplemented
|
||||||
public int linkExternalWorkbook(String name, Workbook workbook) {
|
public int linkExternalWorkbook(String name, Workbook workbook) {
|
||||||
throw new RuntimeException("Not Implemented - see bug #57184");
|
throw new RuntimeException("Not Implemented - see bug #57184");
|
||||||
|
|
|
@ -30,6 +30,7 @@ import java.util.List;
|
||||||
import org.apache.poi.hssf.HSSFITestDataProvider;
|
import org.apache.poi.hssf.HSSFITestDataProvider;
|
||||||
import org.apache.poi.ss.SpreadsheetVersion;
|
import org.apache.poi.ss.SpreadsheetVersion;
|
||||||
import org.apache.poi.ss.usermodel.BaseTestXCell;
|
import org.apache.poi.ss.usermodel.BaseTestXCell;
|
||||||
|
import org.apache.poi.ss.usermodel.BorderStyle;
|
||||||
import org.apache.poi.ss.usermodel.Cell;
|
import org.apache.poi.ss.usermodel.Cell;
|
||||||
import org.apache.poi.ss.usermodel.CellCopyPolicy;
|
import org.apache.poi.ss.usermodel.CellCopyPolicy;
|
||||||
import org.apache.poi.ss.usermodel.CellStyle;
|
import org.apache.poi.ss.usermodel.CellStyle;
|
||||||
|
@ -40,6 +41,7 @@ import org.apache.poi.ss.usermodel.Hyperlink;
|
||||||
import org.apache.poi.ss.usermodel.IndexedColors;
|
import org.apache.poi.ss.usermodel.IndexedColors;
|
||||||
import org.apache.poi.ss.usermodel.RichTextString;
|
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.Row.MissingCellPolicy;
|
||||||
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;
|
||||||
import org.apache.poi.ss.util.CellRangeAddress;
|
import org.apache.poi.ss.util.CellRangeAddress;
|
||||||
|
@ -52,9 +54,6 @@ import org.junit.Test;
|
||||||
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCell;
|
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCell;
|
||||||
import org.openxmlformats.schemas.spreadsheetml.x2006.main.STCellType;
|
import org.openxmlformats.schemas.spreadsheetml.x2006.main.STCellType;
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Yegor Kozlov
|
|
||||||
*/
|
|
||||||
public final class TestXSSFCell extends BaseTestXCell {
|
public final class TestXSSFCell extends BaseTestXCell {
|
||||||
|
|
||||||
public TestXSSFCell() {
|
public TestXSSFCell() {
|
||||||
|
@ -152,7 +151,7 @@ public final class TestXSSFCell extends BaseTestXCell {
|
||||||
CTCell ctCell = cell.getCTCell(); //low-level bean holding cell's xml
|
CTCell ctCell = cell.getCTCell(); //low-level bean holding cell's xml
|
||||||
|
|
||||||
cell.setCellFormula("A2");
|
cell.setCellFormula("A2");
|
||||||
assertEquals(XSSFCell.CELL_TYPE_FORMULA, cell.getCellType());
|
assertEquals(Cell.CELL_TYPE_FORMULA, cell.getCellType());
|
||||||
assertEquals("A2", cell.getCellFormula());
|
assertEquals("A2", cell.getCellFormula());
|
||||||
//the value is not set and cell's type='N' which means blank
|
//the value is not set and cell's type='N' which means blank
|
||||||
assertEquals(STCellType.N, ctCell.getT());
|
assertEquals(STCellType.N, ctCell.getT());
|
||||||
|
@ -160,7 +159,7 @@ public final class TestXSSFCell extends BaseTestXCell {
|
||||||
//set cached formula value
|
//set cached formula value
|
||||||
cell.setCellValue("t='str'");
|
cell.setCellValue("t='str'");
|
||||||
//we are still of 'formula' type
|
//we are still of 'formula' type
|
||||||
assertEquals(XSSFCell.CELL_TYPE_FORMULA, cell.getCellType());
|
assertEquals(Cell.CELL_TYPE_FORMULA, cell.getCellType());
|
||||||
assertEquals("A2", cell.getCellFormula());
|
assertEquals("A2", cell.getCellFormula());
|
||||||
//cached formula value is set and cell's type='STR'
|
//cached formula value is set and cell's type='STR'
|
||||||
assertEquals(STCellType.STR, ctCell.getT());
|
assertEquals(STCellType.STR, ctCell.getT());
|
||||||
|
@ -168,14 +167,14 @@ public final class TestXSSFCell extends BaseTestXCell {
|
||||||
|
|
||||||
//now remove the formula, the cached formula result remains
|
//now remove the formula, the cached formula result remains
|
||||||
cell.setCellFormula(null);
|
cell.setCellFormula(null);
|
||||||
assertEquals(XSSFCell.CELL_TYPE_STRING, cell.getCellType());
|
assertEquals(Cell.CELL_TYPE_STRING, cell.getCellType());
|
||||||
assertEquals(STCellType.STR, ctCell.getT());
|
assertEquals(STCellType.STR, ctCell.getT());
|
||||||
//the line below failed prior to fix of Bug #47889
|
//the line below failed prior to fix of Bug #47889
|
||||||
assertEquals("t='str'", cell.getStringCellValue());
|
assertEquals("t='str'", cell.getStringCellValue());
|
||||||
|
|
||||||
//revert to a blank cell
|
//revert to a blank cell
|
||||||
cell.setCellValue((String)null);
|
cell.setCellValue((String)null);
|
||||||
assertEquals(XSSFCell.CELL_TYPE_BLANK, cell.getCellType());
|
assertEquals(Cell.CELL_TYPE_BLANK, cell.getCellType());
|
||||||
assertEquals(STCellType.N, ctCell.getT());
|
assertEquals(STCellType.N, ctCell.getT());
|
||||||
assertEquals("", cell.getStringCellValue());
|
assertEquals("", cell.getStringCellValue());
|
||||||
} finally {
|
} finally {
|
||||||
|
@ -195,7 +194,7 @@ public final class TestXSSFCell extends BaseTestXCell {
|
||||||
|
|
||||||
//try a string cell
|
//try a string cell
|
||||||
cell = sh.getRow(0).getCell(0);
|
cell = sh.getRow(0).getCell(0);
|
||||||
assertEquals(XSSFCell.CELL_TYPE_STRING, cell.getCellType());
|
assertEquals(Cell.CELL_TYPE_STRING, cell.getCellType());
|
||||||
assertEquals("a", cell.getStringCellValue());
|
assertEquals("a", cell.getStringCellValue());
|
||||||
assertEquals("a", cell.toString());
|
assertEquals("a", cell.toString());
|
||||||
//Gnumeric produces spreadsheets without styles
|
//Gnumeric produces spreadsheets without styles
|
||||||
|
@ -204,7 +203,7 @@ public final class TestXSSFCell extends BaseTestXCell {
|
||||||
|
|
||||||
//try a numeric cell
|
//try a numeric cell
|
||||||
cell = sh.getRow(1).getCell(0);
|
cell = sh.getRow(1).getCell(0);
|
||||||
assertEquals(XSSFCell.CELL_TYPE_NUMERIC, cell.getCellType());
|
assertEquals(Cell.CELL_TYPE_NUMERIC, cell.getCellType());
|
||||||
assertEquals(1.0, cell.getNumericCellValue(), 0);
|
assertEquals(1.0, cell.getNumericCellValue(), 0);
|
||||||
assertEquals("1.0", cell.toString());
|
assertEquals("1.0", cell.toString());
|
||||||
//Gnumeric produces spreadsheets without styles
|
//Gnumeric produces spreadsheets without styles
|
||||||
|
@ -417,7 +416,7 @@ public final class TestXSSFCell extends BaseTestXCell {
|
||||||
public void testBug56644ReturnNull() throws IOException {
|
public void testBug56644ReturnNull() throws IOException {
|
||||||
Workbook wb = XSSFTestDataSamples.openSampleWorkbook("56644.xlsx");
|
Workbook wb = XSSFTestDataSamples.openSampleWorkbook("56644.xlsx");
|
||||||
try {
|
try {
|
||||||
wb.setMissingCellPolicy(Row.RETURN_BLANK_AS_NULL);
|
wb.setMissingCellPolicy(MissingCellPolicy.RETURN_BLANK_AS_NULL);
|
||||||
Sheet sheet = wb.getSheet("samplelist");
|
Sheet sheet = wb.getSheet("samplelist");
|
||||||
Row row = sheet.getRow(20);
|
Row row = sheet.getRow(20);
|
||||||
row.createCell(2);
|
row.createCell(2);
|
||||||
|
@ -430,7 +429,7 @@ public final class TestXSSFCell extends BaseTestXCell {
|
||||||
public void testBug56644ReturnBlank() throws IOException {
|
public void testBug56644ReturnBlank() throws IOException {
|
||||||
Workbook wb = XSSFTestDataSamples.openSampleWorkbook("56644.xlsx");
|
Workbook wb = XSSFTestDataSamples.openSampleWorkbook("56644.xlsx");
|
||||||
try {
|
try {
|
||||||
wb.setMissingCellPolicy(Row.RETURN_NULL_AND_BLANK);
|
wb.setMissingCellPolicy(MissingCellPolicy.RETURN_NULL_AND_BLANK);
|
||||||
Sheet sheet = wb.getSheet("samplelist");
|
Sheet sheet = wb.getSheet("samplelist");
|
||||||
Row row = sheet.getRow(20);
|
Row row = sheet.getRow(20);
|
||||||
row.createCell(2);
|
row.createCell(2);
|
||||||
|
@ -443,7 +442,7 @@ public final class TestXSSFCell extends BaseTestXCell {
|
||||||
public void testBug56644CreateBlank() throws IOException {
|
public void testBug56644CreateBlank() throws IOException {
|
||||||
Workbook wb = XSSFTestDataSamples.openSampleWorkbook("56644.xlsx");
|
Workbook wb = XSSFTestDataSamples.openSampleWorkbook("56644.xlsx");
|
||||||
try {
|
try {
|
||||||
wb.setMissingCellPolicy(Row.CREATE_NULL_AS_BLANK);
|
wb.setMissingCellPolicy(MissingCellPolicy.CREATE_NULL_AS_BLANK);
|
||||||
Sheet sheet = wb.getSheet("samplelist");
|
Sheet sheet = wb.getSheet("samplelist");
|
||||||
Row row = sheet.getRow(20);
|
Row row = sheet.getRow(20);
|
||||||
row.createCell(2);
|
row.createCell(2);
|
||||||
|
@ -565,7 +564,7 @@ public final class TestXSSFCell extends BaseTestXCell {
|
||||||
final CreationHelper createHelper = wb.getCreationHelper();
|
final CreationHelper createHelper = wb.getCreationHelper();
|
||||||
|
|
||||||
srcCell.setCellValue("URL LINK");
|
srcCell.setCellValue("URL LINK");
|
||||||
Hyperlink link = createHelper.createHyperlink(Hyperlink.LINK_URL);
|
Hyperlink link = createHelper.createHyperlink(org.apache.poi.common.usermodel.Hyperlink.LINK_URL);
|
||||||
link.setAddress("http://poi.apache.org/");
|
link.setAddress("http://poi.apache.org/");
|
||||||
srcCell.setHyperlink(link);
|
srcCell.setHyperlink(link);
|
||||||
|
|
||||||
|
@ -602,7 +601,7 @@ public final class TestXSSFCell extends BaseTestXCell {
|
||||||
final CreationHelper createHelper = wb.getCreationHelper();
|
final CreationHelper createHelper = wb.getCreationHelper();
|
||||||
|
|
||||||
srcCell.setCellValue("URL LINK");
|
srcCell.setCellValue("URL LINK");
|
||||||
Hyperlink link = createHelper.createHyperlink(Hyperlink.LINK_URL);
|
Hyperlink link = createHelper.createHyperlink(org.apache.poi.common.usermodel.Hyperlink.LINK_URL);
|
||||||
link.setAddress("http://poi.apache.org/");
|
link.setAddress("http://poi.apache.org/");
|
||||||
destCell.setHyperlink(link);
|
destCell.setHyperlink(link);
|
||||||
|
|
||||||
|
@ -657,7 +656,7 @@ public final class TestXSSFCell extends BaseTestXCell {
|
||||||
srcCell.setCellFormula("2+3");
|
srcCell.setCellFormula("2+3");
|
||||||
|
|
||||||
final CellStyle style = wb.createCellStyle();
|
final CellStyle style = wb.createCellStyle();
|
||||||
style.setBorderTop(CellStyle.BORDER_THICK);
|
style.setBorderTop(BorderStyle.THICK);
|
||||||
style.setFillBackgroundColor((short) 5);
|
style.setFillBackgroundColor((short) 5);
|
||||||
srcCell.setCellStyle(style);
|
srcCell.setCellStyle(style);
|
||||||
|
|
||||||
|
|
|
@ -59,6 +59,7 @@ import org.apache.poi.ss.usermodel.CellStyle;
|
||||||
import org.apache.poi.ss.usermodel.Font;
|
import org.apache.poi.ss.usermodel.Font;
|
||||||
import org.apache.poi.ss.usermodel.RichTextString;
|
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.Row.MissingCellPolicy;
|
||||||
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;
|
||||||
import org.apache.poi.ss.usermodel.WorkbookFactory;
|
import org.apache.poi.ss.usermodel.WorkbookFactory;
|
||||||
|
@ -1036,26 +1037,26 @@ public final class TestXSSFWorkbook extends BaseTestXWorkbook {
|
||||||
|
|
||||||
// read-only mode works!
|
// read-only mode works!
|
||||||
Workbook workbook = WorkbookFactory.create(OPCPackage.open(file, PackageAccess.READ));
|
Workbook workbook = WorkbookFactory.create(OPCPackage.open(file, PackageAccess.READ));
|
||||||
Date dateAct = workbook.getSheetAt(0).getRow(0).getCell(0, Row.CREATE_NULL_AS_BLANK).getDateCellValue();
|
Date dateAct = workbook.getSheetAt(0).getRow(0).getCell(0, MissingCellPolicy.CREATE_NULL_AS_BLANK).getDateCellValue();
|
||||||
assertEquals(dateExp, dateAct);
|
assertEquals(dateExp, dateAct);
|
||||||
workbook.close();
|
workbook.close();
|
||||||
workbook = null;
|
workbook = null;
|
||||||
|
|
||||||
workbook = WorkbookFactory.create(OPCPackage.open(file, PackageAccess.READ));
|
workbook = WorkbookFactory.create(OPCPackage.open(file, PackageAccess.READ));
|
||||||
dateAct = workbook.getSheetAt(0).getRow(0).getCell(0, Row.CREATE_NULL_AS_BLANK).getDateCellValue();
|
dateAct = workbook.getSheetAt(0).getRow(0).getCell(0, MissingCellPolicy.CREATE_NULL_AS_BLANK).getDateCellValue();
|
||||||
assertEquals(dateExp, dateAct);
|
assertEquals(dateExp, dateAct);
|
||||||
workbook.close();
|
workbook.close();
|
||||||
workbook = null;
|
workbook = null;
|
||||||
|
|
||||||
// now check read/write mode
|
// now check read/write mode
|
||||||
workbook = WorkbookFactory.create(OPCPackage.open(file, PackageAccess.READ_WRITE));
|
workbook = WorkbookFactory.create(OPCPackage.open(file, PackageAccess.READ_WRITE));
|
||||||
dateAct = workbook.getSheetAt(0).getRow(0).getCell(0, Row.CREATE_NULL_AS_BLANK).getDateCellValue();
|
dateAct = workbook.getSheetAt(0).getRow(0).getCell(0, MissingCellPolicy.CREATE_NULL_AS_BLANK).getDateCellValue();
|
||||||
assertEquals(dateExp, dateAct);
|
assertEquals(dateExp, dateAct);
|
||||||
workbook.close();
|
workbook.close();
|
||||||
workbook = null;
|
workbook = null;
|
||||||
|
|
||||||
workbook = WorkbookFactory.create(OPCPackage.open(file, PackageAccess.READ_WRITE));
|
workbook = WorkbookFactory.create(OPCPackage.open(file, PackageAccess.READ_WRITE));
|
||||||
dateAct = workbook.getSheetAt(0).getRow(0).getCell(0, Row.CREATE_NULL_AS_BLANK).getDateCellValue();
|
dateAct = workbook.getSheetAt(0).getRow(0).getCell(0, MissingCellPolicy.CREATE_NULL_AS_BLANK).getDateCellValue();
|
||||||
assertEquals(dateExp, dateAct);
|
assertEquals(dateExp, dateAct);
|
||||||
workbook.close();
|
workbook.close();
|
||||||
workbook = null;
|
workbook = null;
|
||||||
|
|
|
@ -41,6 +41,7 @@ import javax.swing.JLabel;
|
||||||
import org.apache.poi.ss.ITestDataProvider;
|
import org.apache.poi.ss.ITestDataProvider;
|
||||||
import org.apache.poi.ss.usermodel.Cell;
|
import org.apache.poi.ss.usermodel.Cell;
|
||||||
import org.apache.poi.ss.usermodel.Row;
|
import org.apache.poi.ss.usermodel.Row;
|
||||||
|
import org.apache.poi.ss.usermodel.Row.MissingCellPolicy;
|
||||||
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;
|
||||||
import org.apache.poi.util.LocaleUtil;
|
import org.apache.poi.util.LocaleUtil;
|
||||||
|
@ -141,7 +142,7 @@ public class CellFormatTestBase {
|
||||||
protected void openWorkbook(String workbookName)
|
protected void openWorkbook(String workbookName)
|
||||||
throws IOException {
|
throws IOException {
|
||||||
workbook = _testDataProvider.openSampleWorkbook(workbookName);
|
workbook = _testDataProvider.openSampleWorkbook(workbookName);
|
||||||
workbook.setMissingCellPolicy(Row.CREATE_NULL_AS_BLANK);
|
workbook.setMissingCellPolicy(MissingCellPolicy.CREATE_NULL_AS_BLANK);
|
||||||
testFile = workbookName;
|
testFile = workbookName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,6 +28,7 @@ import java.io.IOException;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
|
||||||
import org.apache.poi.ss.ITestDataProvider;
|
import org.apache.poi.ss.ITestDataProvider;
|
||||||
|
import org.apache.poi.ss.usermodel.Row.MissingCellPolicy;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -263,41 +264,41 @@ public abstract class BaseTestRow {
|
||||||
assertEquals(Cell.CELL_TYPE_NUMERIC, row.getCell(5).getCellType());
|
assertEquals(Cell.CELL_TYPE_NUMERIC, row.getCell(5).getCellType());
|
||||||
|
|
||||||
// RETURN_NULL_AND_BLANK - same as default
|
// RETURN_NULL_AND_BLANK - same as default
|
||||||
assertEquals(Cell.CELL_TYPE_STRING, row.getCell(0, Row.RETURN_NULL_AND_BLANK).getCellType());
|
assertEquals(Cell.CELL_TYPE_STRING, row.getCell(0, MissingCellPolicy.RETURN_NULL_AND_BLANK).getCellType());
|
||||||
assertEquals(Cell.CELL_TYPE_NUMERIC, row.getCell(1, Row.RETURN_NULL_AND_BLANK).getCellType());
|
assertEquals(Cell.CELL_TYPE_NUMERIC, row.getCell(1, MissingCellPolicy.RETURN_NULL_AND_BLANK).getCellType());
|
||||||
assertEquals(null, row.getCell(2, Row.RETURN_NULL_AND_BLANK));
|
assertEquals(null, row.getCell(2, MissingCellPolicy.RETURN_NULL_AND_BLANK));
|
||||||
assertEquals(null, row.getCell(3, Row.RETURN_NULL_AND_BLANK));
|
assertEquals(null, row.getCell(3, MissingCellPolicy.RETURN_NULL_AND_BLANK));
|
||||||
assertEquals(Cell.CELL_TYPE_BLANK, row.getCell(4, Row.RETURN_NULL_AND_BLANK).getCellType());
|
assertEquals(Cell.CELL_TYPE_BLANK, row.getCell(4, MissingCellPolicy.RETURN_NULL_AND_BLANK).getCellType());
|
||||||
assertEquals(Cell.CELL_TYPE_NUMERIC, row.getCell(5, Row.RETURN_NULL_AND_BLANK).getCellType());
|
assertEquals(Cell.CELL_TYPE_NUMERIC, row.getCell(5, MissingCellPolicy.RETURN_NULL_AND_BLANK).getCellType());
|
||||||
|
|
||||||
// RETURN_BLANK_AS_NULL - nearly the same
|
// RETURN_BLANK_AS_NULL - nearly the same
|
||||||
assertEquals(Cell.CELL_TYPE_STRING, row.getCell(0, Row.RETURN_BLANK_AS_NULL).getCellType());
|
assertEquals(Cell.CELL_TYPE_STRING, row.getCell(0, MissingCellPolicy.RETURN_BLANK_AS_NULL).getCellType());
|
||||||
assertEquals(Cell.CELL_TYPE_NUMERIC, row.getCell(1, Row.RETURN_BLANK_AS_NULL).getCellType());
|
assertEquals(Cell.CELL_TYPE_NUMERIC, row.getCell(1, MissingCellPolicy.RETURN_BLANK_AS_NULL).getCellType());
|
||||||
assertEquals(null, row.getCell(2, Row.RETURN_BLANK_AS_NULL));
|
assertEquals(null, row.getCell(2, MissingCellPolicy.RETURN_BLANK_AS_NULL));
|
||||||
assertEquals(null, row.getCell(3, Row.RETURN_BLANK_AS_NULL));
|
assertEquals(null, row.getCell(3, MissingCellPolicy.RETURN_BLANK_AS_NULL));
|
||||||
assertEquals(null, row.getCell(4, Row.RETURN_BLANK_AS_NULL));
|
assertEquals(null, row.getCell(4, MissingCellPolicy.RETURN_BLANK_AS_NULL));
|
||||||
assertEquals(Cell.CELL_TYPE_NUMERIC, row.getCell(5, Row.RETURN_BLANK_AS_NULL).getCellType());
|
assertEquals(Cell.CELL_TYPE_NUMERIC, row.getCell(5, MissingCellPolicy.RETURN_BLANK_AS_NULL).getCellType());
|
||||||
|
|
||||||
// CREATE_NULL_AS_BLANK - creates as needed
|
// CREATE_NULL_AS_BLANK - creates as needed
|
||||||
assertEquals(Cell.CELL_TYPE_STRING, row.getCell(0, Row.CREATE_NULL_AS_BLANK).getCellType());
|
assertEquals(Cell.CELL_TYPE_STRING, row.getCell(0, MissingCellPolicy.CREATE_NULL_AS_BLANK).getCellType());
|
||||||
assertEquals(Cell.CELL_TYPE_NUMERIC, row.getCell(1, Row.CREATE_NULL_AS_BLANK).getCellType());
|
assertEquals(Cell.CELL_TYPE_NUMERIC, row.getCell(1, MissingCellPolicy.CREATE_NULL_AS_BLANK).getCellType());
|
||||||
assertEquals(Cell.CELL_TYPE_BLANK, row.getCell(2, Row.CREATE_NULL_AS_BLANK).getCellType());
|
assertEquals(Cell.CELL_TYPE_BLANK, row.getCell(2, MissingCellPolicy.CREATE_NULL_AS_BLANK).getCellType());
|
||||||
assertEquals(Cell.CELL_TYPE_BLANK, row.getCell(3, Row.CREATE_NULL_AS_BLANK).getCellType());
|
assertEquals(Cell.CELL_TYPE_BLANK, row.getCell(3, MissingCellPolicy.CREATE_NULL_AS_BLANK).getCellType());
|
||||||
assertEquals(Cell.CELL_TYPE_BLANK, row.getCell(4, Row.CREATE_NULL_AS_BLANK).getCellType());
|
assertEquals(Cell.CELL_TYPE_BLANK, row.getCell(4, MissingCellPolicy.CREATE_NULL_AS_BLANK).getCellType());
|
||||||
assertEquals(Cell.CELL_TYPE_NUMERIC, row.getCell(5, Row.CREATE_NULL_AS_BLANK).getCellType());
|
assertEquals(Cell.CELL_TYPE_NUMERIC, row.getCell(5, MissingCellPolicy.CREATE_NULL_AS_BLANK).getCellType());
|
||||||
|
|
||||||
// Check created ones get the right column
|
// Check created ones get the right column
|
||||||
assertEquals(0, row.getCell(0, Row.CREATE_NULL_AS_BLANK).getColumnIndex());
|
assertEquals(0, row.getCell(0, MissingCellPolicy.CREATE_NULL_AS_BLANK).getColumnIndex());
|
||||||
assertEquals(1, row.getCell(1, Row.CREATE_NULL_AS_BLANK).getColumnIndex());
|
assertEquals(1, row.getCell(1, MissingCellPolicy.CREATE_NULL_AS_BLANK).getColumnIndex());
|
||||||
assertEquals(2, row.getCell(2, Row.CREATE_NULL_AS_BLANK).getColumnIndex());
|
assertEquals(2, row.getCell(2, MissingCellPolicy.CREATE_NULL_AS_BLANK).getColumnIndex());
|
||||||
assertEquals(3, row.getCell(3, Row.CREATE_NULL_AS_BLANK).getColumnIndex());
|
assertEquals(3, row.getCell(3, MissingCellPolicy.CREATE_NULL_AS_BLANK).getColumnIndex());
|
||||||
assertEquals(4, row.getCell(4, Row.CREATE_NULL_AS_BLANK).getColumnIndex());
|
assertEquals(4, row.getCell(4, MissingCellPolicy.CREATE_NULL_AS_BLANK).getColumnIndex());
|
||||||
assertEquals(5, row.getCell(5, Row.CREATE_NULL_AS_BLANK).getColumnIndex());
|
assertEquals(5, row.getCell(5, MissingCellPolicy.CREATE_NULL_AS_BLANK).getColumnIndex());
|
||||||
|
|
||||||
|
|
||||||
// Now change the cell policy on the workbook, check
|
// Now change the cell policy on the workbook, check
|
||||||
// that that is now used if no policy given
|
// that that is now used if no policy given
|
||||||
workbook.setMissingCellPolicy(Row.RETURN_BLANK_AS_NULL);
|
workbook.setMissingCellPolicy(MissingCellPolicy.RETURN_BLANK_AS_NULL);
|
||||||
|
|
||||||
assertEquals(Cell.CELL_TYPE_STRING, row.getCell(0).getCellType());
|
assertEquals(Cell.CELL_TYPE_STRING, row.getCell(0).getCellType());
|
||||||
assertEquals(Cell.CELL_TYPE_NUMERIC, row.getCell(1).getCellType());
|
assertEquals(Cell.CELL_TYPE_NUMERIC, row.getCell(1).getCellType());
|
||||||
|
|
|
@ -25,6 +25,7 @@ import java.io.FileInputStream;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
|
|
||||||
import org.apache.poi.hssf.HSSFTestDataSamples;
|
import org.apache.poi.hssf.HSSFTestDataSamples;
|
||||||
|
import org.apache.poi.ss.usermodel.Row.MissingCellPolicy;
|
||||||
import org.apache.poi.util.LocaleUtil;
|
import org.apache.poi.util.LocaleUtil;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
@ -60,7 +61,7 @@ public final class TestFractionFormat {
|
||||||
String[] truths = truthLine.split("\t");
|
String[] truths = truthLine.split("\t");
|
||||||
// Intentionally ignore the last column (tika-1132), for now
|
// Intentionally ignore the last column (tika-1132), for now
|
||||||
for (short j = 3; j < 12; j++){
|
for (short j = 3; j < 12; j++){
|
||||||
Cell cell = r.getCell(j, Row.CREATE_NULL_AS_BLANK);
|
Cell cell = r.getCell(j, MissingCellPolicy.CREATE_NULL_AS_BLANK);
|
||||||
String formatted = clean(formatter.formatCellValue(cell, evaluator));
|
String formatted = clean(formatter.formatCellValue(cell, evaluator));
|
||||||
if (truths.length <= j){
|
if (truths.length <= j){
|
||||||
continue;
|
continue;
|
||||||
|
|
Loading…
Reference in New Issue