Package net.sf.jasperreports.engine.data
Class AbstractXlsDataSource
- java.lang.Object
-
- net.sf.jasperreports.engine.data.JRAbstractTextDataSource
-
- net.sf.jasperreports.engine.data.AbstractXlsDataSource
-
- All Implemented Interfaces:
JRDataSource,JRRewindableDataSource
- Direct Known Subclasses:
AbstractPoiXlsDataSource
public abstract class AbstractXlsDataSource extends JRAbstractTextDataSource implements JRRewindableDataSource
This data source implementation reads an XLSX or XLS stream.The default naming convention is to name report fields COLUMN_x and map each column with the field found at index x in each row (these indices start with 0). To avoid this situation, users can either specify a collection of column names or set a flag to read the column names from the first row of the XLSX or XLS file.
- Author:
- Sanda Zaharia (shertage@users.sourceforge.net)
-
-
Field Summary
Fields Modifier and Type Field Description protected Map<String,Integer>columnIndexMapprotected Map<String,Integer>columnNamesprotected DateFormatdateFormatstatic StringEXCEPTION_MESSAGE_KEY_XLS_COLUMN_NAMES_MISMATCH_COLUMN_INDEXESstatic StringEXCEPTION_MESSAGE_KEY_XLS_FIELD_VALUE_NOT_RETRIEVEDstatic StringEXCEPTION_MESSAGE_KEY_XLS_SHEET_INDEX_OUT_OF_RANGEstatic StringEXCEPTION_MESSAGE_KEY_XLS_SHEET_NOT_FOUNDstatic StringINDEXED_COLUMN_PREFIXprotected NumberFormatnumberFormatstatic StringPROPERTY_FIELD_COLUMN_INDEXProperty specifying the XLS column index for the dataset field.static StringPROPERTY_FIELD_COLUMN_NAMEProperty specifying the XLS column name for the dataset field.protected StringsheetSelectionprotected booleanuseFirstRowAsHeader-
Fields inherited from class net.sf.jasperreports.engine.data.JRAbstractTextDataSource
EXCEPTION_MESSAGE_KEY_CANNOT_CONVERT_FIELD_TYPE, EXCEPTION_MESSAGE_KEY_CANNOT_MODIFY_PROPERTIES_AFTER_START, EXCEPTION_MESSAGE_KEY_NODE_NOT_AVAILABLE, EXCEPTION_MESSAGE_KEY_NULL_DOCUMENT, EXCEPTION_MESSAGE_KEY_NULL_SELECT_EXPRESSION, EXCEPTION_MESSAGE_KEY_UNKNOWN_COLUMN_NAME, EXCEPTION_MESSAGE_KEY_UNKNOWN_NUMBER_TYPE
-
-
Constructor Summary
Constructors Constructor Description AbstractXlsDataSource()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract voidcheckReadStarted()abstract voidclose()Closes the reader.protected IntegergetColumnIndex(JRField field)Map<String,Integer>getColumnNames()DateFormatgetDateFormat()Gets the date format that will be used to parse date fields.NumberFormatgetNumberFormat()Gets the number format that will be used to parse numeric fields.StringgetSheetSelection()voidsetColumnIndexes(Integer[] columnIndexes)Specifies an array of integers representing the column indexes in the sheet.voidsetColumnNames(String[] columnNames)Specifies an array of strings representing column names matching field names in the report template.voidsetColumnNames(String[] columnNames, int[] columnIndexes)Specifies an array of strings representing column names matching field names in the report template and an array of integers representing the column indexes in the sheet.voidsetDateFormat(DateFormat dateFormat)Sets the desired date format to be used for parsing date fields.voidsetNumberFormat(NumberFormat numberFormat)Sets the desired number format to be used for parsing numeric fields.voidsetSheetSelection(String sheetSelection)voidsetUseFirstRowAsHeader(boolean useFirstRowAsHeader)Specifies whether the first row of the XLS file should be considered a table header, containing column names matching field names in the report template.-
Methods inherited from class net.sf.jasperreports.engine.data.JRAbstractTextDataSource
convertNumber, convertStringValue, getConvertBean, getDatePattern, getLocale, getNumberPattern, getTextAttributes, getTimeZone, setDatePattern, setLocale, setLocale, setNumberPattern, setTextAttributes, setTextAttributes, setTimeZone, setTimeZone
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface net.sf.jasperreports.engine.JRDataSource
getFieldValue, next
-
Methods inherited from interface net.sf.jasperreports.engine.JRRewindableDataSource
moveFirst
-
-
-
-
Field Detail
-
EXCEPTION_MESSAGE_KEY_XLS_COLUMN_NAMES_MISMATCH_COLUMN_INDEXES
public static final String EXCEPTION_MESSAGE_KEY_XLS_COLUMN_NAMES_MISMATCH_COLUMN_INDEXES
- See Also:
- Constant Field Values
-
EXCEPTION_MESSAGE_KEY_XLS_FIELD_VALUE_NOT_RETRIEVED
public static final String EXCEPTION_MESSAGE_KEY_XLS_FIELD_VALUE_NOT_RETRIEVED
- See Also:
- Constant Field Values
-
EXCEPTION_MESSAGE_KEY_XLS_SHEET_INDEX_OUT_OF_RANGE
public static final String EXCEPTION_MESSAGE_KEY_XLS_SHEET_INDEX_OUT_OF_RANGE
- See Also:
- Constant Field Values
-
EXCEPTION_MESSAGE_KEY_XLS_SHEET_NOT_FOUND
public static final String EXCEPTION_MESSAGE_KEY_XLS_SHEET_NOT_FOUND
- See Also:
- Constant Field Values
-
PROPERTY_FIELD_COLUMN_NAME
public static final String PROPERTY_FIELD_COLUMN_NAME
Property specifying the XLS column name for the dataset field.- See Also:
- Constant Field Values
-
PROPERTY_FIELD_COLUMN_INDEX
public static final String PROPERTY_FIELD_COLUMN_INDEX
Property specifying the XLS column index for the dataset field.- See Also:
- Constant Field Values
-
INDEXED_COLUMN_PREFIX
public static final String INDEXED_COLUMN_PREFIX
- See Also:
- Constant Field Values
-
sheetSelection
protected String sheetSelection
-
dateFormat
protected DateFormat dateFormat
-
numberFormat
protected NumberFormat numberFormat
-
useFirstRowAsHeader
protected boolean useFirstRowAsHeader
-
-
Method Detail
-
getDateFormat
public DateFormat getDateFormat()
Gets the date format that will be used to parse date fields.
-
setDateFormat
public void setDateFormat(DateFormat dateFormat)
Sets the desired date format to be used for parsing date fields.
-
getNumberFormat
public NumberFormat getNumberFormat()
Gets the number format that will be used to parse numeric fields.
-
setNumberFormat
public void setNumberFormat(NumberFormat numberFormat)
Sets the desired number format to be used for parsing numeric fields.
-
setColumnNames
public void setColumnNames(String[] columnNames)
Specifies an array of strings representing column names matching field names in the report template.
-
setColumnNames
public void setColumnNames(String[] columnNames, int[] columnIndexes)
Specifies an array of strings representing column names matching field names in the report template and an array of integers representing the column indexes in the sheet. Both array parameters must be not-null and have the same number of values.
-
setColumnIndexes
public void setColumnIndexes(Integer[] columnIndexes)
Specifies an array of integers representing the column indexes in the sheet.
-
setUseFirstRowAsHeader
public void setUseFirstRowAsHeader(boolean useFirstRowAsHeader)
Specifies whether the first row of the XLS file should be considered a table header, containing column names matching field names in the report template.
-
close
public abstract void close()
Closes the reader. Users of this data source should close it after usage.
-
checkReadStarted
protected abstract void checkReadStarted()
-
getSheetSelection
public String getSheetSelection()
-
setSheetSelection
public void setSheetSelection(String sheetSelection)
-
getColumnIndex
protected Integer getColumnIndex(JRField field) throws JRException
- Throws:
JRException
-
-