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
,FastExcelDataSource
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>
columnIndexMap
protected Map<String,Integer>
columnNames
protected DateFormat
dateFormat
static String
EXCEPTION_MESSAGE_KEY_XLS_COLUMN_NAMES_MISMATCH_COLUMN_INDEXES
static String
EXCEPTION_MESSAGE_KEY_XLS_FIELD_VALUE_NOT_RETRIEVED
static String
EXCEPTION_MESSAGE_KEY_XLS_SHEET_INDEX_OUT_OF_RANGE
static String
EXCEPTION_MESSAGE_KEY_XLS_SHEET_NOT_FOUND
static String
INDEXED_COLUMN_PREFIX
protected NumberFormat
numberFormat
static String
PROPERTY_FIELD_COLUMN_INDEX
Property specifying the XLS column index for the dataset field.static String
PROPERTY_FIELD_COLUMN_NAME
Property specifying the XLS column name for the dataset field.protected String
sheetSelection
protected boolean
useFirstRowAsHeader
-
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 void
checkReadStarted()
abstract void
close()
Closes the reader.protected Integer
getColumnIndex(JRField field)
Map<String,Integer>
getColumnNames()
DateFormat
getDateFormat()
Gets the date format that will be used to parse date fields.NumberFormat
getNumberFormat()
Gets the number format that will be used to parse numeric fields.String
getSheetSelection()
void
setColumnIndexes(Integer[] columnIndexes)
Specifies an array of integers representing the column indexes in the sheet.void
setColumnNames(String[] columnNames)
Specifies an array of strings representing column names matching field names in the report template.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.void
setDateFormat(DateFormat dateFormat)
Sets the desired date format to be used for parsing date fields.void
setNumberFormat(NumberFormat numberFormat)
Sets the desired number format to be used for parsing numeric fields.void
setSheetSelection(String sheetSelection)
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.-
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
-
-