Author: centic Date: Mon Aug 26 20:09:19 2013 New Revision: 1517676 URL: http://svn.apache.org/r1517676 Log: Bug 54524: Fix border case in FormulaShifter
Added: poi/trunk/test-data/spreadsheet/54524.xlsx Modified: poi/trunk/src/java/org/apache/poi/ss/formula/FormulaShifter.java poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheetShiftRows.java poi/trunk/src/testcases/org/apache/poi/ss/formula/TestFormulaShifter.java Modified: poi/trunk/src/java/org/apache/poi/ss/formula/FormulaShifter.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/FormulaShifter.java?rev=1517676&r1=1517675&r2=1517676&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/ss/formula/FormulaShifter.java (original) +++ poi/trunk/src/java/org/apache/poi/ss/formula/FormulaShifter.java Mon Aug 26 20:09:19 2013 @@ -85,6 +85,7 @@ public final class FormulaShifter { return new FormulaShifter(srcSheetIndex, dstSheetIndex); } + @Override public String toString() { StringBuffer sb = new StringBuffer(); @@ -322,7 +323,7 @@ public final class FormulaShifter { aptg.setFirstRow(destLastRowIndex+1); return aptg; } - if (destFirstRowIndex < aLastRow && aLastRow <= destLastRowIndex) { + if (destFirstRowIndex <= aLastRow && aLastRow < destLastRowIndex) { // dest rows overlap bottom of area // - truncate the bottom aptg.setLastRow(destFirstRowIndex-1); Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheetShiftRows.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheetShiftRows.java?rev=1517676&r1=1517675&r2=1517676&view=diff ============================================================================== --- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheetShiftRows.java (original) +++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheetShiftRows.java Mon Aug 26 20:09:19 2013 @@ -17,8 +17,13 @@ package org.apache.poi.xssf.usermodel; +import java.io.IOException; + import org.apache.poi.ss.usermodel.BaseTestSheetShiftRows; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.util.CellUtil; import org.apache.poi.xssf.XSSFITestDataProvider; +import org.apache.poi.xssf.XSSFTestDataSamples; /** * @author Yegor Kozlov @@ -36,4 +41,17 @@ public final class TestXSSFSheetShiftRow public void testShiftWithComments() { // disabled test from superclass // TODO - support shifting of comments. } + + public void testBug54524() throws IOException { + XSSFWorkbook workbook = XSSFTestDataSamples.openSampleWorkbook("54524.xlsx"); + XSSFSheet sheet = workbook.getSheetAt(0); + sheet.shiftRows(3, 5, -1); + + Cell cell = CellUtil.getCell(sheet.getRow(1), 0); + assertEquals(1.0, cell.getNumericCellValue()); + cell = CellUtil.getCell(sheet.getRow(2), 0); + assertEquals("SUM(A2:A2)", cell.getCellFormula()); + cell = CellUtil.getCell(sheet.getRow(3), 0); + assertEquals("X", cell.getStringCellValue()); + } } Modified: poi/trunk/src/testcases/org/apache/poi/ss/formula/TestFormulaShifter.java URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/ss/formula/TestFormulaShifter.java?rev=1517676&r1=1517675&r2=1517676&view=diff ============================================================================== --- poi/trunk/src/testcases/org/apache/poi/ss/formula/TestFormulaShifter.java (original) +++ poi/trunk/src/testcases/org/apache/poi/ss/formula/TestFormulaShifter.java Mon Aug 26 20:09:19 2013 @@ -18,6 +18,7 @@ package org.apache.poi.ss.formula; import junit.framework.TestCase; + import org.apache.poi.ss.formula.ptg.AreaErrPtg; import org.apache.poi.ss.formula.ptg.AreaPtg; import org.apache.poi.ss.formula.ptg.Ptg; Added: poi/trunk/test-data/spreadsheet/54524.xlsx URL: http://svn.apache.org/viewvc/poi/trunk/test-data/spreadsheet/54524.xlsx?rev=1517676&view=auto ============================================================================== Files poi/trunk/test-data/spreadsheet/54524.xlsx (added) and poi/trunk/test-data/spreadsheet/54524.xlsx Mon Aug 26 20:09:19 2013 differ --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@poi.apache.org For additional commands, e-mail: commits-h...@poi.apache.org