org.apache.poi.xssf.streaming
Class SheetDataWriter

java.lang.Object
  extended by org.apache.poi.xssf.streaming.SheetDataWriter
All Implemented Interfaces:
java.io.Closeable
Direct Known Subclasses:
GZIPSheetDataWriter, SheetDataWriterWithDecorator

public class SheetDataWriter
extends java.lang.Object
implements java.io.Closeable

Initially copied from BigGridDemo "SpreadsheetWriter". Unlike the original code which wrote the entire document, this class only writes the "sheetData" document fragment so that it was renamed to "SheetDataWriter"


Constructor Summary
SheetDataWriter()
           
SheetDataWriter(SharedStringsTable sharedStringsTable)
           
 
Method Summary
 void close()
          flush and close the temp data writer.
 java.io.File createTempFile()
          Create a temp file to write sheet data.
 java.io.Writer createWriter(java.io.File fd)
          Create a writer for the sheet data.
protected  java.io.InputStream decorateInputStream(java.io.FileInputStream fis)
          Override this to translate (such as decrypt or expand) the file input stream as it is being read from disk.
protected  java.io.OutputStream decorateOutputStream(java.io.FileOutputStream fos)
          Override this to translate (such as encrypt or compress) the file output stream as it is being written to disk.
protected  void finalize()
           
 int getLastFlushedRow()
           
 int getLowestIndexOfFlushedRows()
           
 int getNumberOfCellsOfLastFlushedRow()
           
 int getNumberOfFlushedRows()
           
protected  java.io.File getTempFile()
           
 java.io.InputStream getWorksheetXMLInputStream()
           
protected  void outputQuotedString(java.lang.String s)
           
 void writeCell(int columnIndex, Cell cell)
           
 void writeRow(int rownum, SXSSFRow row)
          Write a row to the file
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SheetDataWriter

public SheetDataWriter()
                throws java.io.IOException
Throws:
java.io.IOException

SheetDataWriter

public SheetDataWriter(SharedStringsTable sharedStringsTable)
                throws java.io.IOException
Throws:
java.io.IOException
Method Detail

createTempFile

public java.io.File createTempFile()
                            throws java.io.IOException
Create a temp file to write sheet data. By default, temp files are created in the default temporary-file directory with a prefix "poi-sxssf-sheet" and suffix ".xml". Subclasses can override it and specify a different temp directory or filename or suffix, e.g. .gz

Returns:
temp file to write sheet data
Throws:
java.io.IOException

createWriter

public java.io.Writer createWriter(java.io.File fd)
                            throws java.io.IOException
Create a writer for the sheet data.

Parameters:
fd - the file to write to
Throws:
java.io.IOException

decorateOutputStream

protected java.io.OutputStream decorateOutputStream(java.io.FileOutputStream fos)
                                             throws java.io.IOException
Override this to translate (such as encrypt or compress) the file output stream as it is being written to disk. The default behavior is to to pass the stream through unmodified.

Parameters:
fos - the stream to decorate
Returns:
a decorated stream
Throws:
java.io.IOException
See Also:
decorateInputStream(FileInputStream)

close

public void close()
           throws java.io.IOException
flush and close the temp data writer. This method must be invoked before calling getWorksheetXMLInputStream()

Specified by:
close in interface java.io.Closeable
Throws:
java.io.IOException

getTempFile

protected java.io.File getTempFile()

getWorksheetXMLInputStream

public java.io.InputStream getWorksheetXMLInputStream()
                                               throws java.io.IOException
Returns:
a stream to read temp file with the sheet data
Throws:
java.io.IOException

decorateInputStream

protected java.io.InputStream decorateInputStream(java.io.FileInputStream fis)
                                           throws java.io.IOException
Override this to translate (such as decrypt or expand) the file input stream as it is being read from disk. The default behavior is to to pass the stream through unmodified.

Parameters:
fis - the stream to decorate
Returns:
a decorated stream
Throws:
java.io.IOException
See Also:
decorateOutputStream(FileOutputStream)

getNumberOfFlushedRows

public int getNumberOfFlushedRows()

getNumberOfCellsOfLastFlushedRow

public int getNumberOfCellsOfLastFlushedRow()

getLowestIndexOfFlushedRows

public int getLowestIndexOfFlushedRows()

getLastFlushedRow

public int getLastFlushedRow()

finalize

protected void finalize()
                 throws java.lang.Throwable
Overrides:
finalize in class java.lang.Object
Throws:
java.lang.Throwable

writeRow

public void writeRow(int rownum,
                     SXSSFRow row)
              throws java.io.IOException
Write a row to the file

Parameters:
rownum - 0-based row number
row - a row
Throws:
java.io.IOException

writeCell

public void writeCell(int columnIndex,
                      Cell cell)
               throws java.io.IOException
Throws:
java.io.IOException

outputQuotedString

protected void outputQuotedString(java.lang.String s)
                           throws java.io.IOException
Throws:
java.io.IOException