org.apache.poi.xssf.streaming

## Class SheetDataWriter

- java.lang.Object
- - org.apache.poi.xssf.streaming.SheetDataWriter

- All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable
  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

    Constructors
    Constructor and Description
    `SheetDataWriter()`
    `SheetDataWriter(SharedStringsTable sharedStringsTable)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `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` - if decorating the stream fails
      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`
      Specified by:
        `close` in interface `java.lang.AutoCloseable`
      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` - if decorating the stream fails
      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` - If an I/O error occurs

    - #### 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`

Copyright 2020 The Apache Software Foundation or its licensors, as applicable.