Package adams.data.io.input
Class ODFSpreadSheetReader
-
- All Implemented Interfaces:
AdditionalInformationHandler,Destroyable,ErrorProvider,GlobalInfoSupporter,EncodingSupporter,FileFormatHandler,LoggingLevelHandler,LoggingSupporter,OptionHandler,SizeOfHandler,Stoppable,StoppableWithFeedback,MissingValueSpreadSheetReader,MultiSheetSpreadSheetReader<SheetRange>,NoHeaderSpreadSheetReader,SpreadSheetReader,WindowedSpreadSheetReader,DataRowTypeHandler,SpreadSheetTypeHandler,Serializable
public class ODFSpreadSheetReader extends AbstractMultiSheetSpreadSheetReaderWithMissingValueSupport<SheetRange> implements NoHeaderSpreadSheetReader, WindowedSpreadSheetReader
Reads ODF (Open Document Format) spreadsheet files.
If a row contains only empty cells, this is interpreted as the end of the sheet.
-logging-level <OFF|SEVERE|WARNING|INFO|CONFIG|FINE|FINER|FINEST> (property: loggingLevel) The logging level for outputting errors and debugging output. default: WARNING
-data-row-type <adams.data.spreadsheet.DataRow> (property: dataRowType) The type of row to use for the data. default: adams.data.spreadsheet.DenseDataRow
-spreadsheet-type <adams.data.spreadsheet.SpreadSheet> (property: spreadSheetType) The type of spreadsheet to use for the data. default: adams.data.spreadsheet.DefaultSpreadSheet
-sheets <adams.core.Range> (property: sheetRange) The range of sheets to load. default: first example: A range is a comma-separated list of single 1-based indices or sub-ranges of indices ('start-end'); 'inv(...)' inverts the range '...'; the following placeholders can be used as well: first, second, third, last_2, last_1, last-missing <java.lang.String> (property: missingValue) The placeholder for missing values. default:
-text-columns <java.lang.String> (property: textColumns) The range of columns to treat as text. default:
-no-header <boolean> (property: noHeader) If enabled, all rows get added as data rows and a dummy header will get inserted. default: false
-custom-column-headers <java.lang.String> (property: customColumnHeaders) The custom headers to use for the columns instead (comma-separated list); ignored if empty. default:
-first-row <int> (property: firstRow) The index of the first row to retrieve (1-based). default: 1 minimum: 1
-num-rows <int> (property: numRows) The number of data rows to retrieve; use -1 for unlimited. default: -1 minimum: -1
- Author:
- fracpete (fracpete at waikato dot ac dot nz)
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class adams.data.io.input.AbstractSpreadSheetReader
AbstractSpreadSheetReader.InputType
-
-
Field Summary
Fields Modifier and Type Field Description protected Stringm_CustomColumnHeadersthe comma-separated list of column header names.protected intm_FirstRowthe first row to retrieve (1-based).protected booleanm_NoHeaderwhether the file has a header or not.protected intm_NumRowsthe number of rows to retrieve (less than 1 = unlimited).protected Rangem_TextColumnsthe range of columns to force to be text.-
Fields inherited from class adams.data.io.input.AbstractMultiSheetSpreadSheetReaderWithMissingValueSupport
m_MissingValue
-
Fields inherited from class adams.data.io.input.AbstractMultiSheetSpreadSheetReader
m_SheetRange
-
Fields inherited from class adams.data.io.input.AbstractSpreadSheetReader
m_DataRowType, m_Encoding, m_LastError, m_SpreadSheetType, m_Stopped, OPTION_INPUT, OPTION_OUTPUT
-
Fields inherited from class adams.core.option.AbstractOptionHandler
m_OptionManager
-
Fields inherited from class adams.core.logging.LoggingObject
m_Logger, m_LoggingIsEnabled, m_LoggingLevel
-
-
Constructor Summary
Constructors Constructor Description ODFSpreadSheetReader()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description StringcustomColumnHeadersTipText()Returns the tip text for this property.voiddefineOptions()Adds options to the internal list of options.protected List<SpreadSheet>doReadRange(InputStream in)Reads the spreadsheet content from the specified file.StringfirstRowTipText()Returns the tip text for this property.SpreadSheetWritergetCorrespondingWriter()Returns, if available, the corresponding writer.StringgetCustomColumnHeaders()Returns whether the file contains a header row or not.protected SheetRangegetDefaultSheetRange()Returns the default sheet range.intgetFirstRow()Returns the first row to return.StringgetFormatDescription()Returns a string describing the format (used in the file chooser).String[]getFormatExtensions()Returns the extension(s) of the format.protected AbstractSpreadSheetReader.InputTypegetInputType()Returns how to read the data, from a file, stream or reader.booleangetNoHeader()Returns whether the file contains a header row or not.intgetNumRows()Returns the number of data rows to return.StringgetTextColumns()Returns the range of columns to treat as text.StringglobalInfo()Returns a string describing the object.protected voidinitialize()Initializes the members.static voidmain(String[] args)Runs the reader from the command-line.StringnoHeaderTipText()Returns the tip text for this property.protected StringnumericToString(String s)Turns a numeric cell into a string.StringnumRowsTipText()Returns the tip text for this property.voidsetCustomColumnHeaders(String value)Sets the custom headers to use.voidsetFirstRow(int value)Sets the first row to return.voidsetNoHeader(boolean value)Sets whether the file contains a header row or not.voidsetNumRows(int value)Sets the number of data rows to return.voidsetTextColumns(String value)Sets the range of columns to treat as text.StringtextColumnsTipText()Returns the tip text for this property.-
Methods inherited from class adams.data.io.input.AbstractMultiSheetSpreadSheetReaderWithMissingValueSupport
getDefaultMissingValue, getMissingValue, missingValueTipText, setMissingValue
-
Methods inherited from class adams.data.io.input.AbstractMultiSheetSpreadSheetReader
doRead, doRead, doRead, doReadRange, doReadRange, getSheetRange, readRange, readRange, readRange, readRange, setSheetRange, sheetRangeTipText
-
Methods inherited from class adams.data.io.input.AbstractSpreadSheetReader
canDecompress, check, dataRowTypeTipText, encodingTipText, getAdditionalInformation, getDataRowType, getDefaultDataRowType, getDefaultFormatExtension, getDefaultSpreadSheet, getEncoding, getLastError, getReaders, getSpreadSheetType, hasLastError, isStopped, read, read, read, read, runReader, setDataRowType, setEncoding, setLastError, setSpreadSheetType, spreadSheetTypeTipText, stopExecution, supportsCompressedInput
-
Methods inherited from class adams.core.option.AbstractOptionHandler
cleanUpOptions, destroy, finishInit, getDefaultLoggingLevel, getOptionManager, loggingLevelTipText, newOptionManager, reset, setLoggingLevel, toCommandLine, toString
-
Methods inherited from class adams.core.logging.LoggingObject
configureLogger, getLogger, getLoggingLevel, initializeLogging, isLoggingEnabled, sizeOf
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface adams.core.Destroyable
destroy
-
Methods inherited from interface adams.core.logging.LoggingLevelHandler
getLoggingLevel
-
Methods inherited from interface adams.core.option.OptionHandler
cleanUpOptions, getOptionManager, toCommandLine
-
Methods inherited from interface adams.data.io.input.SpreadSheetReader
dataRowTypeTipText, getDataRowType, getDefaultFormatExtension, getLastError, getSpreadSheetType, hasLastError, isStopped, read, read, read, read, setDataRowType, setSpreadSheetType, spreadSheetTypeTipText, stopExecution
-
-
-
-
Field Detail
-
m_TextColumns
protected Range m_TextColumns
the range of columns to force to be text.
-
m_NoHeader
protected boolean m_NoHeader
whether the file has a header or not.
-
m_CustomColumnHeaders
protected String m_CustomColumnHeaders
the comma-separated list of column header names.
-
m_FirstRow
protected int m_FirstRow
the first row to retrieve (1-based).
-
m_NumRows
protected int m_NumRows
the number of rows to retrieve (less than 1 = unlimited).
-
-
Method Detail
-
globalInfo
public String globalInfo()
Returns a string describing the object.- Specified by:
globalInfoin interfaceGlobalInfoSupporter- Specified by:
globalInfoin classAbstractOptionHandler- Returns:
- a description suitable for displaying in the gui
-
defineOptions
public void defineOptions()
Adds options to the internal list of options.- Specified by:
defineOptionsin interfaceOptionHandler- Overrides:
defineOptionsin classAbstractMultiSheetSpreadSheetReaderWithMissingValueSupport<SheetRange>
-
getDefaultSheetRange
protected SheetRange getDefaultSheetRange()
Returns the default sheet range.- Specified by:
getDefaultSheetRangein classAbstractMultiSheetSpreadSheetReader<SheetRange>- Returns:
- the default
-
getFormatDescription
public String getFormatDescription()
Returns a string describing the format (used in the file chooser).- Specified by:
getFormatDescriptionin interfaceFileFormatHandler- Specified by:
getFormatDescriptionin interfaceSpreadSheetReader- Specified by:
getFormatDescriptionin classAbstractSpreadSheetReader- Returns:
- a description suitable for displaying in the file chooser
-
getFormatExtensions
public String[] getFormatExtensions()
Returns the extension(s) of the format.- Specified by:
getFormatExtensionsin interfaceFileFormatHandler- Specified by:
getFormatExtensionsin interfaceSpreadSheetReader- Specified by:
getFormatExtensionsin classAbstractSpreadSheetReader- Returns:
- the extension (without the dot!)
-
getCorrespondingWriter
public SpreadSheetWriter getCorrespondingWriter()
Returns, if available, the corresponding writer.- Specified by:
getCorrespondingWriterin interfaceSpreadSheetReader- Returns:
- the writer, null if none available
-
initialize
protected void initialize()
Initializes the members.- Overrides:
initializein classAbstractSpreadSheetReader
-
setTextColumns
public void setTextColumns(String value)
Sets the range of columns to treat as text.- Parameters:
value- the range of columns
-
getTextColumns
public String getTextColumns()
Returns the range of columns to treat as text.- Returns:
- the range of columns
-
textColumnsTipText
public String textColumnsTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
setNoHeader
public void setNoHeader(boolean value)
Sets whether the file contains a header row or not.- Specified by:
setNoHeaderin interfaceNoHeaderSpreadSheetReader- Parameters:
value- true if no header row available
-
getNoHeader
public boolean getNoHeader()
Returns whether the file contains a header row or not.- Specified by:
getNoHeaderin interfaceNoHeaderSpreadSheetReader- Returns:
- true if no header row available
-
noHeaderTipText
public String noHeaderTipText()
Returns the tip text for this property.- Specified by:
noHeaderTipTextin interfaceNoHeaderSpreadSheetReader- Returns:
- tip text for this property suitable for displaying in the gui
-
setCustomColumnHeaders
public void setCustomColumnHeaders(String value)
Sets the custom headers to use.- Specified by:
setCustomColumnHeadersin interfaceNoHeaderSpreadSheetReader- Parameters:
value- the comma-separated list
-
getCustomColumnHeaders
public String getCustomColumnHeaders()
Returns whether the file contains a header row or not.- Specified by:
getCustomColumnHeadersin interfaceNoHeaderSpreadSheetReader- Returns:
- the comma-separated list
-
customColumnHeadersTipText
public String customColumnHeadersTipText()
Returns the tip text for this property.- Specified by:
customColumnHeadersTipTextin interfaceNoHeaderSpreadSheetReader- Returns:
- tip text for this property suitable for displaying in the gui
-
setFirstRow
public void setFirstRow(int value)
Sets the first row to return.- Specified by:
setFirstRowin interfaceWindowedSpreadSheetReader- Parameters:
value- the first row (1-based), greater than 0
-
getFirstRow
public int getFirstRow()
Returns the first row to return.- Specified by:
getFirstRowin interfaceWindowedSpreadSheetReader- Returns:
- the first row (1-based), greater than 0
-
firstRowTipText
public String firstRowTipText()
Returns the tip text for this property.- Specified by:
firstRowTipTextin interfaceWindowedSpreadSheetReader- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setNumRows
public void setNumRows(int value)
Sets the number of data rows to return.- Specified by:
setNumRowsin interfaceWindowedSpreadSheetReader- Parameters:
value- the number of rows, -1 for unlimited
-
getNumRows
public int getNumRows()
Returns the number of data rows to return.- Specified by:
getNumRowsin interfaceWindowedSpreadSheetReader- Returns:
- the number of rows, -1 for unlimited
-
numRowsTipText
public String numRowsTipText()
Returns the tip text for this property.- Specified by:
numRowsTipTextin interfaceWindowedSpreadSheetReader- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
getInputType
protected AbstractSpreadSheetReader.InputType getInputType()
Returns how to read the data, from a file, stream or reader.- Specified by:
getInputTypein classAbstractSpreadSheetReader- Returns:
- how to read the data
-
numericToString
protected String numericToString(String s)
Turns a numeric cell into a string. Tries to use "long" representation if possible.- Parameters:
s- the string to process- Returns:
- the string representation
-
doReadRange
protected List<SpreadSheet> doReadRange(InputStream in)
Reads the spreadsheet content from the specified file.- Overrides:
doReadRangein classAbstractMultiSheetSpreadSheetReader<SheetRange>- Parameters:
in- the input stream to read from- Returns:
- the spreadsheets or null in case of an error
- See Also:
AbstractSpreadSheetReader.getInputType()
-
main
public static void main(String[] args)
Runs the reader from the command-line. Use the optionAbstractSpreadSheetReader.OPTION_INPUTto specify the input file. If the optionAbstractSpreadSheetReader.OPTION_OUTPUTis specified then the read sheet gets output as .csv files in that directory.- Parameters:
args- the command-line options to use
-
-