Bug 56644: Fix adding cells if MissingCellPolicy is set to NULL_FOR_BLANK and the last column in a row is empty

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1647291 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Dominik Stadler 2014-12-22 11:11:34 +00:00
parent bb4de21931
commit cf1558116f
3 changed files with 38 additions and 1 deletions

View File

@ -37,6 +37,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.util.CellRangeAddress; import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.ss.util.CellReference; import org.apache.poi.ss.util.CellReference;
import org.apache.poi.util.Internal; import org.apache.poi.util.Internal;
@ -107,7 +108,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).getColumnIndex() + 1; _cellNum = row.getCell(prevNum-1, Row.RETURN_NULL_AND_BLANK).getColumnIndex() + 1;
} }
} }
_sharedStringSource = row.getSheet().getWorkbook().getSharedStringSource(); _sharedStringSource = row.getSheet().getWorkbook().getSharedStringSource();

View File

@ -407,4 +407,40 @@ public final class TestXSSFCell extends BaseTestCell {
XSSFTestDataSamples.writeOutAndReadBack(wb); XSSFTestDataSamples.writeOutAndReadBack(wb);
} }
public void testBug56644ReturnNull() throws IOException {
Workbook wb = XSSFTestDataSamples.openSampleWorkbook("56644.xlsx");
try {
wb.setMissingCellPolicy(Row.RETURN_BLANK_AS_NULL);
Sheet sheet = wb.getSheet("samplelist");
Row row = sheet.getRow(20);
row.createCell(2);
} finally {
wb.close();
}
}
public void testBug56644ReturnBlank() throws IOException {
Workbook wb = XSSFTestDataSamples.openSampleWorkbook("56644.xlsx");
try {
wb.setMissingCellPolicy(Row.RETURN_NULL_AND_BLANK);
Sheet sheet = wb.getSheet("samplelist");
Row row = sheet.getRow(20);
row.createCell(2);
} finally {
wb.close();
}
}
public void testBug56644CreateBlank() throws IOException {
Workbook wb = XSSFTestDataSamples.openSampleWorkbook("56644.xlsx");
try {
wb.setMissingCellPolicy(Row.CREATE_NULL_AS_BLANK);
Sheet sheet = wb.getSheet("samplelist");
Row row = sheet.getRow(20);
row.createCell(2);
} finally {
wb.close();
}
}
} }

Binary file not shown.