]> source.dussan.org Git - poi.git/commitdiff
follow on to r1295058
authorYegor Kozlov <yegor@apache.org>
Wed, 29 Feb 2012 10:54:50 +0000 (10:54 +0000)
committerYegor Kozlov <yegor@apache.org>
Wed, 29 Feb 2012 10:54:50 +0000 (10:54 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1295063 13f79535-47bb-0310-9956-ffa450edef68

src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFSheet.java

index 0311ec55fb5083124e2c6f4dc77414eebda28b0b..afe8612002db59e0b35c11d217048f6918a1b2da 100644 (file)
@@ -1033,6 +1033,37 @@ public class SXSSFSheet implements Sheet, Cloneable
     /**
      * Tie a range of rows together so that they can be collapsed or expanded
      *
+     * <p>
+     *     Please note the rows being grouped <em>must</em> be in the current window,
+     *     if the rows are already flushed then groupRow has no effect.
+     * </p>
+     * <p>
+     *      Correct code:
+     *      <pre><code>
+     *       Workbook wb = new SXSSFWorkbook(100);  // keep 100 rows in memory
+     *       Sheet sh = wb.createSheet();
+     *       for (int rownum = 0; rownum &lt; 1000; rownum++) {
+     *           Row row = sh.createRow(rownum);
+     *           if(rownum == 200)  {
+     *               sh.groupRow(100, 200);
+     *           }
+     *       }
+     *
+     *      </code></pre>
+     * </p>
+     * <p>
+     *      Incorrect code:
+     *      <pre><code>
+     *       Workbook wb = new SXSSFWorkbook(100);  // keep 100 rows in memory
+     *       Sheet sh = wb.createSheet();
+     *       for (int rownum = 0; rownum &lt; 1000; rownum++) {
+     *           Row row = sh.createRow(rownum);
+     *       }
+     *       sh.groupRow(100, 200); // the rows in the range [100, 200] are already flushed and groupRows has no effect
+     *
+     *      </code></pre>
+     * </p>
+     *
      * @param fromRow   start row (0-based)
      * @param toRow     end row (0-based)
      */
@@ -1049,7 +1080,7 @@ public class SXSSFSheet implements Sheet, Cloneable
         CTSheetFormatPr pr = ct.isSetSheetFormatPr() ?
                 ct.getSheetFormatPr() :
                 ct.addNewSheetFormatPr();
-        pr.setOutlineLevelRow((short)outlineLevelRow);
+        if(outlineLevelRow > 0) pr.setOutlineLevelRow((short)outlineLevelRow);
     }
 
     /**