You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ni...@apache.org on 2016/06/23 18:59:49 UTC

svn commit: r1749971 - in /poi/trunk/src/ooxml: java/org/apache/poi/xssf/usermodel/XSSFRow.java testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java

Author: nick
Date: Thu Jun 23 18:59:48 2016
New Revision: 1749971

URL: http://svn.apache.org/viewvc?rev=1749971&view=rev
Log:
#59746 XSSF support for files from certain alternate tools where the row XML is missing the row number

Modified:
    poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFRow.java
    poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java

Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFRow.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFRow.java?rev=1749971&r1=1749970&r2=1749971&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFRow.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFRow.java Thu Jun 23 18:59:48 2016
@@ -77,6 +77,16 @@ public class XSSFRow implements Row, Com
             _cells.put(colI, cell);
             sheet.onReadCell(cell);
         }
+        
+        if (! row.isSetR()) {
+            // Certain file format writers skip the row number
+            // Assume no gaps, and give this the next row number
+            int nextRowNum = sheet.getLastRowNum()+2;
+            if (nextRowNum == 2 && sheet.getPhysicalNumberOfRows() == 0) {
+                nextRowNum = 1;
+            }
+            row.setR(nextRowNum);
+        }
     }
 
     /**

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java?rev=1749971&r1=1749970&r2=1749971&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java Thu Jun 23 18:59:48 2016
@@ -3088,7 +3088,6 @@ public final class TestXSSFBugs extends
      *  to include the row number on the row tags
      */
     @Test
-    @Ignore("Not yet supported")
     public void noRowNumbers59746() {
         Workbook wb = XSSFTestDataSamples.openSampleWorkbook("59746_NoRowNums.xlsx");
         Sheet sheet = wb.getSheetAt(0);
@@ -3096,5 +3095,8 @@ public final class TestXSSFBugs extends
         assertEquals("Checked", sheet.getRow(0).getCell(0).getStringCellValue());
         assertEquals("Checked", sheet.getRow(9).getCell(2).getStringCellValue());
         assertEquals(false, sheet.getRow(70).getCell(8).getBooleanCellValue());
+        assertEquals(71, sheet.getPhysicalNumberOfRows());
+        assertEquals(70, sheet.getLastRowNum());
+        assertEquals(70, sheet.getRow(sheet.getLastRowNum()).getRowNum());
     }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org