Interface SpreadSheet

    • Method Detail

      • assign

        void assign​(SpreadSheet sheet)
        Clears this spreadsheet and copies all the data from the given one.
        Parameters:
        sheet - the data to copy
      • setDataRowClass

        void setDataRowClass​(Class cls)
        Sets the default data row class to use. Must implement DataRow.
        Parameters:
        cls - the class, null resets it to the default one
        Throws:
        IllegalArgumentException - if class does not implement DataRow
      • getDataRowClass

        Class getDataRowClass()
        Returns the class used for rows.
        Returns:
        the class
      • newInstance

        SpreadSheet newInstance()
        Returns a new instance.
        Returns:
        the new instance, null if failed to create new instance
      • getHeader

        SpreadSheet getHeader()
        Returns the a spreadsheet with the same header and comments.
        Returns:
        the spreadsheet
      • getNumberFormat

        NumberFormat getNumberFormat()
        Returns the number formatter.
        Returns:
        the formatter
      • setName

        void setName​(String value)
        Sets the name of the spreadsheet.
        Parameters:
        value - the name
      • getName

        String getName()
        Returns the name of the spreadsheet.
        Returns:
        the name, can be null
      • hasName

        boolean hasName()
        Returns whether the spreadsheet has a name.
        Returns:
        true if the spreadsheet is named
      • addComment

        void addComment​(String comment)
        Adds the comment to the internal list of comments. If the comment contains newlines, then it gets automatically split into multiple lines and added one by one.
        Parameters:
        comment - the comment to add
      • addComment

        void addComment​(List<String> comment)
        Adds the comments to the internal list of comments.
        Parameters:
        comment - the comment to add
      • getComments

        List<String> getComments()
        Returns the comments.
        Returns:
        the comments
      • clear

        void clear()
        Removes all cells, but leaves comments.
      • getHeaderRow

        HeaderRow getHeaderRow()
        Returns the header row.
        Returns:
        the row
      • getColumnName

        String getColumnName​(int colIndex)
        Returns the name of the specified column.
        Parameters:
        colIndex - the index of the column
        Returns:
        the name of the column
      • getColumnNames

        List<String> getColumnNames()
        Returns a list of the names of all columns (i.e., the content the header row cells).
        Returns:
        the names of the columns
      • hasRow

        boolean hasRow​(int rowIndex)
        Returns whether the spreadsheet already contains the row with the given index.
        Parameters:
        rowIndex - the index to look for
        Returns:
        true if the row already exists
      • hasRow

        boolean hasRow​(String rowKey)
        Returns whether the spreadsheet already contains the row with the given key.
        Parameters:
        rowKey - the key to look for
        Returns:
        true if the row already exists
      • newCell

        Cell newCell()
        Creates a new cell.
        Returns:
        the new instance, null in case of an instantiation error
      • addRow

        DataRow addRow()
        Appends a row to the spreadsheet.
        Returns:
        the created row
      • addRow

        DataRow addRow​(String rowKey)
        Adds a row with the given key to the list and returns the created object. If the row already exists, then this row is returned instead and no new object created.
        Parameters:
        rowKey - the key for the row to create
        Returns:
        the created row or the already existing row
      • insertRow

        DataRow insertRow​(int index)
        Inserts a row at the specified location.
        Parameters:
        index - the index where to insert the row
        Returns:
        the created row
      • removeRow

        Row removeRow​(int rowIndex)
        Removes the specified row.
        Parameters:
        rowIndex - the row to remove
        Returns:
        the row that was removed, null if none removed
      • removeRow

        Row removeRow​(String rowKey)
        Removes the specified row.
        Parameters:
        rowKey - the row to remove
        Returns:
        the row that was removed, null if none removed
      • insertColumn

        void insertColumn​(int columnIndex,
                          String header)
        Inserts a column at the specified location.
        Parameters:
        columnIndex - the position of the column
        header - the name of the column
      • insertColumn

        void insertColumn​(int columnIndex,
                          String header,
                          String initial)
        Inserts a column at the specified location.
        Parameters:
        columnIndex - the position of the column
        header - the name of the column
        initial - the initial value for the cells, "null" for missing values (in that case no cells are added)
      • insertColumn

        void insertColumn​(int columnIndex,
                          String header,
                          String initial,
                          boolean forceString)
        Inserts a column at the specified location.
        Parameters:
        columnIndex - the position of the column
        header - the name of the column
        initial - the initial value for the cells, "null" for missing values (in that case no cells are added)
        forceString - whether to enforce the value to be set as string
      • removeColumn

        boolean removeColumn​(int columnIndex)
        Removes the specified column.
        Parameters:
        columnIndex - the column to remove
        Returns:
        true if removed
      • removeColumn

        boolean removeColumn​(String columnKey)
        Removes the specified column.
        Parameters:
        columnKey - the column to remove
        Returns:
        true if removed
      • getRow

        DataRow getRow​(String rowKey)
        Returns the row associated with the given row key, null if not found.
        Parameters:
        rowKey - the key of the row to retrieve
        Returns:
        the row or null if not found
      • getRow

        DataRow getRow​(int rowIndex)
        Returns the row at the specified index.
        Parameters:
        rowIndex - the 0-based index of the row to retrieve
        Returns:
        the row
      • getRowKey

        String getRowKey​(int rowIndex)
        Returns the row key at the specified index.
        Parameters:
        rowIndex - the 0-based index of the row key to retrieve
        Returns:
        the row key
      • getRowIndex

        int getRowIndex​(String rowKey)
        Returns the row index of the specified row.
        Parameters:
        rowKey - the row identifier
        Returns:
        the 0-based row index, -1 if not found
      • getCellIndex

        int getCellIndex​(String cellKey)
        Returns the cell index of the specified cell (in the header row).
        Parameters:
        cellKey - the cell identifier
        Returns:
        the 0-based column index, -1 if not found
      • hasCell

        boolean hasCell​(int rowIndex,
                        int columnIndex)
        Checks whether the cell with the given indices already exists.
        Parameters:
        rowIndex - the index of the row to look for
        columnIndex - the index of the cell in the row to look for
        Returns:
        true if the cell exists
      • getCell

        Cell getCell​(int rowIndex,
                     int columnIndex)
        Returns the corresponding cell or null if not found.
        Parameters:
        rowIndex - the index of the row the cell is in
        columnIndex - the column of the cell to retrieve
        Returns:
        the cell or null if not found
      • getCellPosition

        String getCellPosition​(String rowKey,
                               String cellKey)
        Returns the position of the cell or null if not found. A position is a combination of a number of letters (for the column) and number (for the row).
        Parameters:
        rowKey - the key of the row the cell is in
        cellKey - the key of the cell to retrieve
        Returns:
        the position string or null if not found
      • rowKeys

        Collection<String> rowKeys()
        Returns a collection of all row keys.
        Returns:
        the row keys
      • sortRowKeys

        void sortRowKeys()
        Sorts the rows according to the row keys.
        See Also:
        rowKeys()
      • sortRowKeys

        void sortRowKeys​(Comparator<String> comp)
        Sorts the rows according to the row keys.
        Parameters:
        comp - the comparator to use
        See Also:
        rowKeys()
      • sort

        void sort​(int index,
                  boolean asc)
        Sorts the rows based on the values in the specified column.

        NB: the row keys will change!
        Parameters:
        index - the index (0-based) of the column to sort on
        asc - wether sorting is ascending or descending
        See Also:
        sort(RowComparator)
      • sort

        void sort​(RowComparator comp)
        Sorts the rows using the given comparator.

        NB: the row keys will change!
        Parameters:
        comp - the row comparator to use
      • sort

        void sort​(RowComparator comp,
                  boolean unique)
        Sorts the rows using the given comparator.

        NB: the row keys will change!
        Parameters:
        comp - the row comparator to use
        unique - whether to drop any duplicate rows (based on row comparator)
      • getColumnCount

        int getColumnCount()
        Returns the number of columns.
        Returns:
        the number of columns
      • getRowCount

        int getRowCount()
        Returns the number of rows currently stored.
        Returns:
        the number of rows
      • isNumeric

        boolean isNumeric​(int columnIndex)
        Checks whether the given column is numeric or not. Does not accept missing values.
        Parameters:
        columnIndex - the index of the column to check
        Returns:
        true if purely numeric
        See Also:
        getContentTypes(int)
      • isNumeric

        boolean isNumeric​(int columnIndex,
                          boolean allowMissing)
        Checks whether the given column is numeric or not. Can accept missing values.
        Parameters:
        columnIndex - the index of the column to check
        Returns:
        true if purely numeric
        See Also:
        getContentTypes(int)
      • isContentType

        boolean isContentType​(int columnIndex,
                              Cell.ContentType type)
        Checks whether the given column is of the specific content type or not.
        Parameters:
        columnIndex - the index of the column to check
        type - the content type to check
        Returns:
        true if column purely consists of this content type
        See Also:
        getContentType(int)
      • getContentType

        Cell.ContentType getContentType​(int columnIndex)
        Returns the pure content type of the given column, if available.
        Parameters:
        columnIndex - the index of the column to check
        Returns:
        the content type that this column consists of solely, null if mixed
      • getContentTypes

        Collection<Cell.ContentType> getContentTypes​(int columnIndex)
        Returns the all content types of the given column, if available.
        Parameters:
        columnIndex - the index of the column to check
        Returns:
        the content types that this column consists of
      • getCellValues

        List<String> getCellValues​(String colKey)
        Returns the unique string values of the specified column. The returned list is sorted.
        Parameters:
        colKey - the column to retrieve the values for
        Returns:
        the sorted, list of unique values
      • getCellValues

        List<String> getCellValues​(int colIndex)
        Returns the unique string values of the specified column. The returned list is sorted.
        Parameters:
        colIndex - the column to retrieve the values for
        Returns:
        the sorted, list of unique values
      • equalsHeader

        String equalsHeader​(SpreadSheet other)
        Compares the header of this spreadsheet with the other one.
        Parameters:
        other - the other spreadsheet to compare with
        Returns:
        null if equal, otherwise details what differs
      • toString

        String toString()
        Returns the spreadsheet as string, i.e., CSV formatted.
        Overrides:
        toString in class Object
        Returns:
        the string representation
      • toMatrix

        Object[][] toMatrix()
        Returns the spreadsheet as matrix, with the header as the first row. Missing values are represented as null values.
        Returns:
        the row-wise matrix
      • removeMissing

        boolean removeMissing()
        Removes all cells marked "missing".
        Returns:
        true if any cell was removed
      • getSharedStringsTable

        SharedStringsTable getSharedStringsTable()
        Returns the table for shared strings.
        Returns:
        the table
      • setDateLenient

        void setDateLenient​(boolean value)
        Sets whether parsing of dates is to be lenient or not.
        Parameters:
        value - if true lenient parsing is used, otherwise not
        See Also:
        DateFormat.setLenient(boolean)
      • isDateLenient

        boolean isDateLenient()
        Returns whether the parsing of dates is lenient or not.
        Returns:
        true if parsing is lenient
        See Also:
        DateFormat.isLenient()
      • setDateTimeLenient

        void setDateTimeLenient​(boolean value)
        Sets whether parsing of date/times is to be lenient or not.
        Parameters:
        value - if true lenient parsing is used, otherwise not
        See Also:
        DateFormat.setLenient(boolean)
      • isDateTimeLenient

        boolean isDateTimeLenient()
        Returns whether the parsing of date/times is lenient or not.
        Returns:
        true if parsing is lenient
        See Also:
        DateFormat.isLenient()
      • setDateTimeMsecLenient

        void setDateTimeMsecLenient​(boolean value)
        Sets whether parsing of date/time mses is to be lenient or not.
        Parameters:
        value - if true lenient parsing is used, otherwise not
        See Also:
        DateFormat.setLenient(boolean)
      • isDateTimeMsecLenient

        boolean isDateTimeMsecLenient()
        Returns whether the parsing of date/time msecs is lenient or not.
        Returns:
        true if parsing is lenient
        See Also:
        DateFormat.isLenient()
      • setTimeLenient

        void setTimeLenient​(boolean value)
        Sets whether parsing of times is to be lenient or not.
        Parameters:
        value - if true lenient parsing is used, otherwise not
      • isTimeLenient

        boolean isTimeLenient()
        Returns whether the parsing of times is lenient or not.
        Returns:
        true if parsing is lenient
      • setTimeMsecLenient

        void setTimeMsecLenient​(boolean value)
        Sets whether parsing of times/msec is to be lenient or not.
        Parameters:
        value - if true lenient parsing is used, otherwise not
      • isTimeMsecLenient

        boolean isTimeMsecLenient()
        Returns whether the parsing of times/msec is lenient or not.
        Returns:
        true if parsing is lenient
      • setLocale

        void setLocale​(Locale value)
        Sets the locale. Used in formatting/parsing numbers.
        Specified by:
        setLocale in interface LocaleSupporter
        Parameters:
        value - the locale to use
      • calculate

        void calculate()
        Triggers all formula cells to recalculate their values.
      • mergeWith

        void mergeWith​(SpreadSheet other)
        Puts the content of the provided spreadsheet on the right.
        Specified by:
        mergeWith in interface Mergeable<SpreadSheet>
        Parameters:
        other - the spreadsheet to merge with
      • toView

        SpreadSheet toView​(int[] rows,
                           int[] columns)
        Creates a view of the spreadsheet with the specified rows/columns.
        Parameters:
        columns - the columns to use, null for all
        rows - the rows to use, null for all