Class XlsxMetadataExporter
- java.lang.Object
-
- net.sf.jasperreports.engine.JRAbstractExporter<RC,C,OutputStreamExporterOutput,E>
-
- net.sf.jasperreports.engine.export.ExcelAbstractExporter<XlsxMetadataReportConfiguration,XlsxMetadataExporterConfiguration,JRXlsxExporterContext>
-
- net.sf.jasperreports.engine.export.ooxml.XlsxMetadataExporter
-
- All Implemented Interfaces:
Exporter<ExporterInput,XlsxMetadataReportConfiguration,XlsxMetadataExporterConfiguration,OutputStreamExporterOutput>
public class XlsxMetadataExporter extends ExcelAbstractExporter<XlsxMetadataReportConfiguration,XlsxMetadataExporterConfiguration,JRXlsxExporterContext>
Exports a JasperReports document to XLSX format based on the metadata provided. The exporter allows users to specify which columns should be included in the XLSX export, what other value than the default should they contain and whether the values for some columns should be auto filled when they are empty or missing (e.g. value for group columns)- Author:
- Sanda Zaharia (shertage@users.sourceforge.net)
- See Also:
ExcelAbstractExporter
,XlsExporterConfiguration
,XlsReportConfiguration
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
XlsxMetadataExporter.ExporterContext
-
Nested classes/interfaces inherited from class net.sf.jasperreports.engine.export.ExcelAbstractExporter
ExcelAbstractExporter.NameScope, ExcelAbstractExporter.TextAlignHolder
-
Nested classes/interfaces inherited from class net.sf.jasperreports.engine.JRAbstractExporter
JRAbstractExporter.BaseExporterContext, JRAbstractExporter.PageRange
-
-
Field Summary
-
Fields inherited from class net.sf.jasperreports.engine.export.ExcelAbstractExporter
autoFilterEnd, autoFilterStart, collapseRowSpan, CURRENT_ROW_AUTOFIT, CURRENT_ROW_HEIGHT, DEFAULT_DEFINED_NAME_SCOPE, DEFAULT_DEFINED_NAME_SCOPE_SEPARATOR, DEFAULT_SHEET_NAME_PREFIX, defaultCellHidden, defaultCellLocked, defaultFont, defaultIgnoreHyperlink, defaultIgnoreTextFormatting, defaultImageAnchorType, defaultShrinkToFit, defaultUseTimeZone, defaultWrapText, definedNamesMap, detectCellType, EXCEPTION_MESSAGE_KEY_CANNOT_ADD_CELL, EXCEPTION_MESSAGE_KEY_CANNOT_MERGE_CELLS, EXCEPTION_MESSAGE_KEY_CELL_FORMAT_TEMPLATE_ERROR, EXCEPTION_MESSAGE_KEY_COLUMN_INDEX_BEYOND_LIMIT, EXCEPTION_MESSAGE_KEY_LOADED_FONTS_ERROR, EXCEPTION_MESSAGE_KEY_NEGATIVE_COLUMN_INDEX, EXCEPTION_MESSAGE_KEY_REPORT_GENERATION_ERROR, EXCEPTION_MESSAGE_KEY_TEMPLATE_NOT_FOUND, firstPageNotSet, formatPatternsMap, ignoreAnchors, imageBorderFixEnabled, invalidCharReplacement, keepTemplateSheets, loadedFonts, maxColumnIndex, nature, onePagePerSheet, onePagePerSheetMap, pageFormat, pageIndex, PROPERTY_AUTO_FILTER, PROPERTY_AUTO_FIT_COLUMN, PROPERTY_AUTO_FIT_ROW, PROPERTY_AVERAGE_CHAR_WIDTH_FACTOR, PROPERTY_BREAK_AFTER_ROW, PROPERTY_BREAK_BEFORE_ROW, PROPERTY_CELL_FORMULA, PROPERTY_CELL_PATTERN, PROPERTY_COLUMN_NAME, PROPERTY_COLUMN_WIDTH, PROPERTY_COLUMN_WIDTH_METADATA, PROPERTY_DATA, PROPERTY_FREEZE_COLUMN_EDGE, PROPERTY_FREEZE_ROW_EDGE, PROPERTY_IGNORE_ROW_HEIGHT, PROPERTY_REPEAT_VALUE, PROPERTY_ROW_OUTLINE_LEVEL_PREFIX, PROPERTY_SHEET_NAME, renderersCache, reportIndex, sheetIndex, sheetInfo, sheetNames, sheetNamesIndex, sheetNamesMap, sheetsBeforeCurrentReport, sheetsBeforeCurrentReportMap, workbookTemplate, XLS_EXPORTER_PROPERTIES_PREFIX
-
Fields inherited from class net.sf.jasperreports.engine.JRAbstractExporter
allSelector, crtCompositeConfiguration, crtCompositeItemConfiguration, crtItem, dateFormatCache, EXCEPTION_MESSAGE_KEY_EMPTY_INPUT_SOURCE_IN_BATCH_MODE, EXCEPTION_MESSAGE_KEY_END_PAGE_INDEX_OUT_OF_RANGE, EXCEPTION_MESSAGE_KEY_INVALID_IMAGE_NAME, EXCEPTION_MESSAGE_KEY_INVALID_ZOOM_RATIO, EXCEPTION_MESSAGE_KEY_NO_INPUT_SOURCE, EXCEPTION_MESSAGE_KEY_NO_OUTPUT_SPECIFIED, EXCEPTION_MESSAGE_KEY_OUTPUT_WRITER_ERROR, EXCEPTION_MESSAGE_KEY_PAGE_INDEX_OUT_OF_RANGE, EXCEPTION_MESSAGE_KEY_START_PAGE_INDEX_OUT_OF_RANGE, exporterConfiguration, exporterContext, exporterInput, exporterOutput, filter, fontUtil, hyperlinkProducerFactory, itemConfiguration, jasperPrint, jasperReportsContext, noBackcolorSelector, noneSelector, numberFormatCache, propertiesUtil, PROPERTY_DEFAULT_FILTER_FACTORY, PROPERTY_SUFFIX_DEFAULT_FILTER_FACTORY, rendererUtil, styledTextUtil, textValueClasses
-
-
Constructor Summary
Constructors Constructor Description XlsxMetadataExporter()
XlsxMetadataExporter(JasperReportsContext jasperReportsContext)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
addElement(Map<String,Object> currentMap, JRPrintElement element, String currentColumnName, JRStyle parentStyle, String currentData)
protected void
addElement(JRPrintElement element, boolean repeatValue, String currentColumnName, JRStyle parentStyle, String currentData)
protected void
addRowBreak(int rowIndex)
protected void
adjustRowHeight(int rowHeight, Boolean isAutofit)
protected void
closeSheet()
protected void
closeWorkbook(OutputStream os)
protected void
createSheet(JRXlsAbstractExporter.SheetInfo sheetInfo)
protected void
exportElement(JRPrintElement element, JRStyle parentStyle)
protected void
exportElements(List<JRPrintElement> elements, JRStyle style)
protected void
exportEmptyReport()
protected void
exportFrame(JRPrintFrame frame, int colIndex, JRStyle parentStyle)
protected void
exportGenericElement(JRGenericPrintElement element, int colIndex, JRStyle parentStyle)
void
exportImage(JRPrintImage image, int colIndex, JRStyle parentStyle)
protected void
exportLine(JRPrintLine line, int colIndex, JRStyle parentStyle)
protected int
exportPage(JRPrintPage page)
protected void
exportRectangle(JRPrintGraphicElement rectangle, int colIndex, JRStyle parentStyle)
protected void
exportReportToStream(OutputStream os)
protected void
exportStyledText(JRStyle style, JRStyledText styledText, Locale locale, boolean isStyledText, String currentData)
void
exportText(JRPrintText text, int colIndex, int rowIndex, JRStyle parentStyle, String currentData)
void
exportText(JRPrintText text, int colIndex, JRStyle parentStyle, String currentData)
protected String
getAnchorType(ImageAnchorTypeEnum anchorType)
protected Class<XlsxMetadataExporterConfiguration>
getConfigurationInterface()
protected String
getDefinedName(String name)
protected JRPrintElementIndex
getElementIndex(int colIndex)
String
getExporterKey()
String
getExporterPropertiesPrefix()
Returns the properties prefix for the current exporter.protected String
getHyperlinkTarget(JRPrintHyperlink link)
protected String
getHyperlinkURL(JRPrintHyperlink link)
JRPrintImage
getImage(ExporterInput exporterInput, JRPrintElementIndex imageIndex)
protected Class<XlsxMetadataReportConfiguration>
getItemConfigurationInterface()
static JRPrintElementIndex
getPrintElementIndex(String imageName)
protected TextValue
getTextValue(JRPrintText text, String textStr, boolean useCurrentData)
protected TextValueHandler
getTextValueHandler(JRPrintText text, String convertedPattern, String currentData)
protected void
initExport()
protected void
initReport()
protected void
insertPageAnchor()
protected boolean
isColumnReadOnTime(Map<String,Object> currentRow, String currentColumnName)
Compares the highest index of the currentRow's columns with the index of the column to be inserted to determine if the current column is read in the proper orderprotected void
openWorkbook(OutputStream os)
protected void
resetAutoFilters()
protected void
restoreBackcolor()
protected void
setAutoFilter(String autoFilterRange)
protected void
setBackcolor(Color color)
protected void
setBackground()
protected void
setColumnName(String currentColumnName)
protected void
setColumnNames()
protected void
setColumnWidth(int col, int width, boolean autoFit)
protected void
setFreezePane(int rowIndex, int colIndex)
protected void
setRowLevels(XlsRowLevelInfo levelInfo, String level)
protected void
setScale(Integer scale)
protected void
setSheetName(String sheetName)
protected void
writeCurrentRow(Map<String,Object> currentRow, Map<String,Object> repeatedValues)
-
Methods inherited from class net.sf.jasperreports.engine.export.ExcelAbstractExporter
calculateHeightForDinAN, calculateHeightForDinBN, calculateHeightForDinCN, calculateWidthForDinAN, calculateWidthForDinBN, calculateWidthForDinCN, configureDefinedNames, configureDefinedNames, configureDefinedNames, ensureInput, exportReport, getColumIndexName, getColumnIndex, getColumnName, getConvertedPattern, getDefaultFont, getFormula, getImageBorderCorrection, getMaxRowsPerSheet, getNature, getSheetName, getSheetName, getStyledText, getTextAlignHolder, hasGlobalSheetNames, isCellHidden, isCellLocked, isIgnoreTextFormatting, isShrinkToFit, isUseTimeZone, isValidScale, isWrapText, mergeAndSetRowLevels, setSheetNames, toExcelName, translateDateValue, updateHeaderFooter, updatePrintSettings
-
Methods inherited from class net.sf.jasperreports.engine.JRAbstractExporter
checkInterrupted, createFilter, defaultParseNumber, ensureJasperReportsContext, ensureOutput, getBooleanCellValue, getCurrentConfiguration, getCurrentItemConfiguration, getCurrentJasperPrint, getDateCellValue, getDateFormat, getExporterConfiguration, getExporterContext, getExporterInput, getExporterOutput, getHyperlinkProducer, getJasperReportsContext, getLocale, getNumberCellValue, getNumberFormat, getOffsetX, getOffsetY, getPageRange, getPropertiesUtil, getRendererUtil, getReportContext, getReportExportConfiguration, getRepository, getStyledText, getTextFormatFactoryClass, getTextLocale, getTextTimeZone, getTextValue, getTextValueString, insideFrame, reset, resetExportContext, restoreElementOffsets, setConfiguration, setConfiguration, setCurrentExporterInputItem, setExporterInput, setExporterOutput, setFrameElementsOffset, setJasperReportsContext, setOffset, setOffset, setReportContext
-
-
-
-
Field Detail
-
XLSX_EXPORTER_KEY
public static final String XLSX_EXPORTER_KEY
The exporter key, as used inGenericElementHandlerEnviroment.getElementHandler(JRGenericElementType, String)
.- See Also:
- Constant Field Values
-
XLSX_METADATA_EXPORTER_KEY
public static final String XLSX_METADATA_EXPORTER_KEY
- See Also:
- Constant Field Values
-
XLSX_EXPORTER_PROPERTIES_PREFIX
protected static final String XLSX_EXPORTER_PROPERTIES_PREFIX
- See Also:
- Constant Field Values
-
ONE_CELL
protected static final String ONE_CELL
- See Also:
- Constant Field Values
-
TWO_CELL
protected static final String TWO_CELL
- See Also:
- Constant Field Values
-
ABSOLUTE
protected static final String ABSOLUTE
- See Also:
- Constant Field Values
-
PARENT_STYLE
protected static final String PARENT_STYLE
- See Also:
- Constant Field Values
-
CURRENT_DATA
protected static final String CURRENT_DATA
- See Also:
- Constant Field Values
-
JR_PAGE_ANCHOR_PREFIX
protected static final String JR_PAGE_ANCHOR_PREFIX
- See Also:
- Constant Field Values
-
IMAGE_NAME_PREFIX
public static final String IMAGE_NAME_PREFIX
- See Also:
- Constant Field Values
-
IMAGE_NAME_PREFIX_LEGTH
protected static final int IMAGE_NAME_PREFIX_LEGTH
-
xlsxZip
protected XlsxZip xlsxZip
-
wbHelper
protected XlsxWorkbookHelper wbHelper
-
relsHelper
protected XlsxRelsHelper relsHelper
-
ctHelper
protected XlsxContentTypesHelper ctHelper
-
appHelper
protected PropsAppHelper appHelper
-
coreHelper
protected PropsCoreHelper coreHelper
-
sheetHelper
protected XlsxSheetHelper sheetHelper
-
sheetRelsHelper
protected XlsxSheetRelsHelper sheetRelsHelper
-
drawingHelper
protected XlsxDrawingHelper drawingHelper
-
drawingRelsHelper
protected XlsxDrawingRelsHelper drawingRelsHelper
-
styleHelper
protected XlsxStyleHelper styleHelper
-
sharedStringsHelper
protected XlsxSharedStringsHelper sharedStringsHelper
-
cellHelper
protected XlsxCellHelper cellHelper
-
definedNames
protected StringBuilder definedNames
-
firstSheetName
protected String firstSheetName
-
currentSheetName
protected String currentSheetName
-
tableIndex
protected int tableIndex
-
startPage
protected boolean startPage
-
backcolorStack
protected LinkedList<Color> backcolorStack
-
backcolor
protected Color backcolor
-
sheetAutoFilter
protected String sheetAutoFilter
-
macroTemplate
protected String macroTemplate
-
oldPageFormat
protected PrintPageFormat oldPageFormat
-
currentSheetPageScale
protected Integer currentSheetPageScale
-
currentSheetFirstPageNumber
protected Integer currentSheetFirstPageNumber
-
rowIndex
protected int rowIndex
-
-
Constructor Detail
-
XlsxMetadataExporter
public XlsxMetadataExporter()
-
XlsxMetadataExporter
public XlsxMetadataExporter(JasperReportsContext jasperReportsContext)
-
-
Method Detail
-
getConfigurationInterface
protected Class<XlsxMetadataExporterConfiguration> getConfigurationInterface()
-
getItemConfigurationInterface
protected Class<XlsxMetadataReportConfiguration> getItemConfigurationInterface()
-
initExport
protected void initExport()
-
initReport
protected void initReport()
-
exportReportToStream
protected void exportReportToStream(OutputStream os) throws JRException, IOException
- Specified by:
exportReportToStream
in classExcelAbstractExporter<XlsxMetadataReportConfiguration,XlsxMetadataExporterConfiguration,JRXlsxExporterContext>
- Throws:
JRException
IOException
-
exportEmptyReport
protected void exportEmptyReport() throws JRException, IOException
- Specified by:
exportEmptyReport
in classExcelAbstractExporter<XlsxMetadataReportConfiguration,XlsxMetadataExporterConfiguration,JRXlsxExporterContext>
- Throws:
JRException
IOException
-
exportPage
protected int exportPage(JRPrintPage page) throws JRException
- Throws:
JRException
-
exportElements
protected void exportElements(List<JRPrintElement> elements, JRStyle style) throws JRException
- Throws:
JRException
-
getImage
public JRPrintImage getImage(ExporterInput exporterInput, JRPrintElementIndex imageIndex) throws JRException
- Throws:
JRException
-
exportStyledText
protected void exportStyledText(JRStyle style, JRStyledText styledText, Locale locale, boolean isStyledText, String currentData)
-
getElementIndex
protected JRPrintElementIndex getElementIndex(int colIndex)
-
getPrintElementIndex
public static JRPrintElementIndex getPrintElementIndex(String imageName)
-
setBackcolor
protected void setBackcolor(Color color)
-
restoreBackcolor
protected void restoreBackcolor()
-
getHyperlinkTarget
protected String getHyperlinkTarget(JRPrintHyperlink link)
-
getHyperlinkURL
protected String getHyperlinkURL(JRPrintHyperlink link)
-
insertPageAnchor
protected void insertPageAnchor()
-
closeWorkbook
protected void closeWorkbook(OutputStream os) throws JRException
- Specified by:
closeWorkbook
in classExcelAbstractExporter<XlsxMetadataReportConfiguration,XlsxMetadataExporterConfiguration,JRXlsxExporterContext>
- Throws:
JRException
-
createSheet
protected void createSheet(JRXlsAbstractExporter.SheetInfo sheetInfo)
-
closeSheet
protected void closeSheet()
- Specified by:
closeSheet
in classExcelAbstractExporter<XlsxMetadataReportConfiguration,XlsxMetadataExporterConfiguration,JRXlsxExporterContext>
-
exportImage
public void exportImage(JRPrintImage image, int colIndex, JRStyle parentStyle) throws JRException
- Throws:
JRException
-
exportLine
protected void exportLine(JRPrintLine line, int colIndex, JRStyle parentStyle)
-
exportRectangle
protected void exportRectangle(JRPrintGraphicElement rectangle, int colIndex, JRStyle parentStyle)
-
exportText
public void exportText(JRPrintText text, int colIndex, JRStyle parentStyle, String currentData) throws JRException
- Throws:
JRException
-
exportText
public void exportText(JRPrintText text, int colIndex, int rowIndex, JRStyle parentStyle, String currentData) throws JRException
- Throws:
JRException
-
getTextValueHandler
protected TextValueHandler getTextValueHandler(JRPrintText text, String convertedPattern, String currentData)
-
getTextValue
protected TextValue getTextValue(JRPrintText text, String textStr, boolean useCurrentData)
-
exportElement
protected void exportElement(JRPrintElement element, JRStyle parentStyle) throws JRException
- Throws:
JRException
-
adjustRowHeight
protected void adjustRowHeight(int rowHeight, Boolean isAutofit)
-
addElement
protected void addElement(JRPrintElement element, boolean repeatValue, String currentColumnName, JRStyle parentStyle, String currentData) throws JRException
- Throws:
JRException
-
addElement
protected void addElement(Map<String,Object> currentMap, JRPrintElement element, String currentColumnName, JRStyle parentStyle, String currentData)
-
isColumnReadOnTime
protected boolean isColumnReadOnTime(Map<String,Object> currentRow, String currentColumnName)
Compares the highest index of the currentRow's columns with the index of the column to be inserted to determine if the current column is read in the proper order- Parameters:
currentRow
-currentColumnName
-
-
writeCurrentRow
protected void writeCurrentRow(Map<String,Object> currentRow, Map<String,Object> repeatedValues) throws JRException
- Throws:
JRException
-
exportGenericElement
protected void exportGenericElement(JRGenericPrintElement element, int colIndex, JRStyle parentStyle) throws JRException
- Throws:
JRException
-
exportFrame
protected void exportFrame(JRPrintFrame frame, int colIndex, JRStyle parentStyle)
-
openWorkbook
protected void openWorkbook(OutputStream os) throws JRException
- Specified by:
openWorkbook
in classExcelAbstractExporter<XlsxMetadataReportConfiguration,XlsxMetadataExporterConfiguration,JRXlsxExporterContext>
- Throws:
JRException
-
setBackground
protected void setBackground()
-
setColumnWidth
protected void setColumnWidth(int col, int width, boolean autoFit)
- Specified by:
setColumnWidth
in classExcelAbstractExporter<XlsxMetadataReportConfiguration,XlsxMetadataExporterConfiguration,JRXlsxExporterContext>
-
addRowBreak
protected void addRowBreak(int rowIndex)
- Specified by:
addRowBreak
in classExcelAbstractExporter<XlsxMetadataReportConfiguration,XlsxMetadataExporterConfiguration,JRXlsxExporterContext>
-
getExporterKey
public String getExporterKey()
-
getExporterPropertiesPrefix
public String getExporterPropertiesPrefix()
Description copied from class:JRAbstractExporter
Returns the properties prefix for the current exporter.- Specified by:
getExporterPropertiesPrefix
in classJRAbstractExporter<XlsxMetadataReportConfiguration,XlsxMetadataExporterConfiguration,OutputStreamExporterOutput,JRXlsxExporterContext>
- Returns:
- the properties prefix for the current exporter
-
setFreezePane
protected void setFreezePane(int rowIndex, int colIndex)
- Specified by:
setFreezePane
in classExcelAbstractExporter<XlsxMetadataReportConfiguration,XlsxMetadataExporterConfiguration,JRXlsxExporterContext>
-
setSheetName
protected void setSheetName(String sheetName)
- Specified by:
setSheetName
in classExcelAbstractExporter<XlsxMetadataReportConfiguration,XlsxMetadataExporterConfiguration,JRXlsxExporterContext>
-
setAutoFilter
protected void setAutoFilter(String autoFilterRange)
- Specified by:
setAutoFilter
in classExcelAbstractExporter<XlsxMetadataReportConfiguration,XlsxMetadataExporterConfiguration,JRXlsxExporterContext>
-
resetAutoFilters
protected void resetAutoFilters()
-
setRowLevels
protected void setRowLevels(XlsRowLevelInfo levelInfo, String level)
- Specified by:
setRowLevels
in classExcelAbstractExporter<XlsxMetadataReportConfiguration,XlsxMetadataExporterConfiguration,JRXlsxExporterContext>
-
setScale
protected void setScale(Integer scale)
-
getAnchorType
protected String getAnchorType(ImageAnchorTypeEnum anchorType)
-
setColumnNames
protected void setColumnNames()
-
setColumnName
protected void setColumnName(String currentColumnName)
-
-