<changes>
<release version="3.8-beta6" date="2012-??-??">
+ <action dev="poi-developers" type="add">51673 - support grouping rows in SXSSF</action>
<action dev="poi-developers" type="add">51780 - support replacement of content types in OPC packages </action>
<action dev="poi-developers" type="fix">52784 - replace ISO control characters with question marks in SXSSF to be consistent with XSSF </action>
<action dev="poi-developers" type="add">52057 - updated formula test framework to be aware of recently added Functions </action>
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
-import org.apache.poi.xssf.usermodel.XSSFCellStyle;
/**
* Streaming version of XSSFRow implementing the "BigGridDemo" strategy.
short _style=-1;
short _height=-1;
boolean _zHeight = false;
+ int _outlineLevel = 0; // Outlining level of the row, when outlining is on
public SXSSFRow(SXSSFSheet sheet, int initialSize)
{
{
return _height!=-1;
}
+
+ int getOutlineLevel(){
+ return _outlineLevel;
+ }
+ void setOutlineLevel(int level){
+ _outlineLevel = level;
+ }
+
//begin of interface implementation
public Iterator<Cell> iterator()
{
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.SheetUtil;
-import org.apache.poi.util.Internal;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.hssf.util.PaneInformation;
import org.apache.poi.ss.util.CellRangeAddress;
+import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTSheetFormatPr;
+import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorksheet;
/**
* Streaming version of XSSFSheet implementing the "BigGridDemo" strategy.
TreeMap<Integer,SXSSFRow> _rows=new TreeMap<Integer,SXSSFRow>();
SheetDataWriter _writer;
int _randomAccessWindowSize = SXSSFWorkbook.DEFAULT_WINDOW_SIZE;
+ int outlineLevelRow = 0;
public SXSSFSheet(SXSSFWorkbook workbook, XSSFSheet xSheet) throws IOException
{
*/
public void groupRow(int fromRow, int toRow)
{
- _sh.groupRow(fromRow, toRow);
+ for(SXSSFRow row : _rows.subMap(fromRow, toRow + 1).values()){
+ int level = row.getOutlineLevel() + 1;
+ row.setOutlineLevel(level);
+
+ if(level > outlineLevelRow) outlineLevelRow = level;
+ }
+
+ CTWorksheet ct = _sh.getCTWorksheet();
+ CTSheetFormatPr pr = ct.isSetSheetFormatPr() ?
+ ct.getSheetFormatPr() :
+ ct.addNewSheetFormatPr();
+ pr.setOutlineLevelRow((short)outlineLevelRow);
}
/**
*/
public void setRowGroupCollapsed(int row, boolean collapse)
{
- _sh.setRowGroupCollapsed(row, collapse);
+ //_sh.setRowGroupCollapsed(row, collapse);
+ throw new RuntimeException("Not Implemented");
}
/**