net.sf.jasperreports.engine.export.ooxml
Class JRXlsxExporter

java.lang.Object
  extended by net.sf.jasperreports.engine.JRAbstractExporter
      extended by net.sf.jasperreports.engine.export.JRXlsAbstractExporter
          extended by net.sf.jasperreports.engine.export.ooxml.JRXlsxExporter
All Implemented Interfaces:
JRExporter

public class JRXlsxExporter
extends JRXlsAbstractExporter

Exports a JasperReports document to XLSX format. It has character output type and exports the document to a grid-based layout.

Version:
$Id: JRXlsxExporter.java 5359 2012-05-09 16:07:51Z shertage $
Author:
Teodor Danciu (teodord@users.sourceforge.net)

Nested Class Summary
protected  class JRXlsxExporter.ExporterContext
           
 
Nested classes/interfaces inherited from class net.sf.jasperreports.engine.export.JRXlsAbstractExporter
JRXlsAbstractExporter.TextAlignHolder
 
Nested classes/interfaces inherited from class net.sf.jasperreports.engine.JRAbstractExporter
JRAbstractExporter.BaseExporterContext, JRAbstractExporter.ParameterOverriddenResolver, JRAbstractExporter.ParameterOverrideResolver, JRAbstractExporter.ParameterResolver
 
Field Summary
protected  java.awt.Color backcolor
           
protected  java.util.LinkedList<java.awt.Color> backcolorStack
           
protected  XlsxCellHelper cellHelper
           
protected  XlsxContentTypesHelper ctHelper
           
protected  java.lang.Integer currentSheetFirstPageNumber
           
protected  JasperPrint currentSheetJasperPrint
           
protected  java.lang.Integer currentSheetPageScale
           
protected  XlsxDrawingHelper drawingHelper
           
protected  XlsxDrawingRelsHelper drawingRelsHelper
           
protected  JRXlsxExporterContext exporterContext
           
static java.lang.String IMAGE_NAME_PREFIX
           
protected static int IMAGE_NAME_PREFIX_LEGTH
           
protected  java.util.List<JRPrintElementIndex> imagesToProcess
           
protected static java.lang.String JR_PAGE_ANCHOR_PREFIX
           
protected  java.lang.String macroTemplate
           
protected  ExporterNature nature
           
static java.lang.String PROPERTY_MACRO_TEMPLATE
          Property used to store the location of an existing workbook template containing a macro object.
protected  XlsxRelsHelper relsHelper
           
protected  java.util.Map<java.lang.String,java.lang.String> rendererToImagePathMap
           
protected  java.lang.String sheetAutoFilter
           
protected  XlsxSheetHelper sheetHelper
           
protected  XlsxSheetRelsHelper sheetRelsHelper
           
protected  boolean startPage
           
protected  XlsxStyleHelper styleHelper
           
protected  int tableIndex
           
protected  XlsxWorkbookHelper wbHelper
           
static java.lang.String XLSX_EXPORTER_KEY
          The exporter key, as used in GenericElementHandlerEnviroment.getHandler(net.sf.jasperreports.engine.JRGenericElementType, String).
protected static java.lang.String XLSX_EXPORTER_PROPERTIES_PREFIX
           
protected  XlsxZip xlsxZip
           
 
Fields inherited from class net.sf.jasperreports.engine.export.JRXlsAbstractExporter
autoFilterEnd, autoFilterStart, cellHidden, cellLocked, columnWidthRatio, createCustomPalette, defaultFont, documentFirstPageNumber, documentPageScale, firstPageNotSet, formatPatternsMap, gridColumnFreezeIndex, gridRowFreezeIndex, ignoreAnchors, isCollapseRowSpan, isDetectCellType, isFontSizeFixEnabled, isFreezeColumnEdge, isFreezeRowEdge, isIgnoreCellBackground, isIgnoreCellBorder, isIgnoreGraphics, isIgnorePageMargins, isImageBorderFixEnabled, isOnePagePerSheet, isRemoveEmptySpaceBetweenColumns, isRemoveEmptySpaceBetweenRows, isWhitePageBackground, keepTemplateSheets, loadedFonts, maxColumnFreezeIndex, maxRowFreezeIndex, maxRowsPerSheet, pageIndex, progressMonitor, PROPERTY_AUTO_FILTER, PROPERTY_AUTO_FIT_COLUMN, PROPERTY_AUTO_FIT_ROW, PROPERTY_CELL_FORMULA, PROPERTY_CELL_HIDDEN, PROPERTY_CELL_LOCKED, PROPERTY_CELL_PATTERN, PROPERTY_COLUMN_WIDTH, PROPERTY_COLUMN_WIDTH_RATIO, PROPERTY_FIRST_PAGE_NUMBER, PROPERTY_FIT_HEIGHT, PROPERTY_FIT_WIDTH, PROPERTY_FREEZE_COLUMN, PROPERTY_FREEZE_COLUMN_EDGE, PROPERTY_FREEZE_ROW, PROPERTY_FREEZE_ROW_EDGE, PROPERTY_IGNORE_ANCHORS, PROPERTY_PAGE_SCALE, PROPERTY_ROW_OUTLINE_LEVEL_PREFIX, PROPERTY_SHEET_DIRECTION, PROPERTY_SHEET_FOOTER_CENTER, PROPERTY_SHEET_FOOTER_LEFT, PROPERTY_SHEET_FOOTER_RIGHT, PROPERTY_SHEET_HEADER_CENTER, PROPERTY_SHEET_HEADER_LEFT, PROPERTY_SHEET_HEADER_RIGHT, PROPERTY_USE_TIMEZONE, PROPERTY_WORKBOOK_TEMPLATE, PROPERTY_WORKBOOK_TEMPLATE_KEEP_SHEETS, PROPERTY_WRAP_TEXT, reportIndex, sheetDirection, sheetFirstPageNumber, sheetFooterCenter, sheetFooterLeft, sheetFooterRight, sheetHeaderCenter, sheetHeaderLeft, sheetHeaderRight, sheetIndex, sheetNames, sheetNamesIndex, sheetNamesMap, sheetPageScale, workbookTemplate, wrapText, XLS_EXPORTER_PROPERTIES_PREFIX
 
Fields inherited from class net.sf.jasperreports.engine.JRAbstractExporter
dateFormatCache, endPageIndex, filter, fontMap, globalOffsetX, globalOffsetY, hyperlinkProducerFactory, isModeBatch, jasperPrint, jasperPrintList, jasperReportsContext, numberFormatCache, parameters, PROPERTY_DEFAULT_FILTER_FACTORY, PROPERTY_SUFFIX_DEFAULT_FILTER_FACTORY, startPageIndex
 
Constructor Summary
JRXlsxExporter()
           
JRXlsxExporter(JasperReportsContext jasperReportsContext)
           
 
Method Summary
protected  void addBlankCell(JRExporterGridCell gridCell, int colIndex, int rowIndex)
           
protected  void addOccupiedCell(OccupiedGridCell occupiedGridCell, int colIndex, int rowIndex)
           
protected  void closeSheet()
           
protected  void closeWorkbook(java.io.OutputStream os)
           
protected  void createSheet(java.lang.String name)
           
protected  void exportFrame(JRPrintFrame frame, JRExporterGridCell gridCell, int colIndex, int rowIndex)
           
protected  void exportGenericElement(JRGenericPrintElement element, JRExporterGridCell gridCell, int colIndex, int rowIndex, int emptyCols, int yCutsRow, JRGridLayout layout)
           
 void exportImage(JRPrintImage image, JRExporterGridCell gridCell, int colIndex, int rowIndex, int emptyCols, int yCutsRow, JRGridLayout layout)
           
protected  void exportLine(JRPrintLine line, JRExporterGridCell gridCell, int colIndex, int rowIndex)
           
protected  void exportRectangle(JRPrintGraphicElement rectangle, JRExporterGridCell gridCell, int colIndex, int rowIndex)
           
protected  void exportStyledText(JRStyle style, JRStyledText styledText, java.util.Locale locale)
           
 void exportText(JRPrintText text, JRExporterGridCell gridCell, int colIndex, int rowIndex)
           
protected  JRPrintElementIndex getElementIndex(JRExporterGridCell gridCell)
           
protected  java.lang.String getExporterKey()
           
protected  java.lang.String getExporterPropertiesPrefix()
           
protected  java.lang.String getHyperlinkTarget(JRPrintHyperlink link)
           
protected  java.lang.String getHyperlinkURL(JRPrintHyperlink link)
           
 JRPrintImage getImage(java.util.List<JasperPrint> jasperPrintList, JRPrintElementIndex imageIndex)
           
 JRPrintImage getImage(java.util.List<JasperPrint> jasperPrintList, java.lang.String imageName)
           
protected  java.lang.String getImagePath(Renderable renderer, boolean isLazy, JRExporterGridCell gridCell)
           
 java.lang.String getMacroTemplatePath()
           
protected  ExporterNature getNature()
           
static JRPrintElementIndex getPrintElementIndex(java.lang.String imageName)
          protected void writeImageMap(String imageMapName, JRPrintHyperlink mainHyperlink, List imageMapAreas) throws IOException { writer.write("\n"); for (Iterator it = imageMapAreas.iterator(); it.hasNext();) { JRPrintImageAreaHyperlink areaHyperlink = (JRPrintImageAreaHyperlink) it.next(); JRPrintImageArea area = areaHyperlink.getArea(); writer.write(" \n"); } if (mainHyperlink.getHyperlinkTypeValue() !
protected  void openWorkbook(java.io.OutputStream os)
           
protected  void removeColumn(int col)
           
protected  void resetAutoFilters()
           
protected  void restoreBackcolor()
           
protected  void setAutoFilter(java.lang.String autoFilterRange)
           
protected  void setBackcolor(java.awt.Color color)
           
protected  void setBackground()
           
protected  void setCell(JRExporterGridCell gridCell, int colIndex, int rowIndex)
           
protected  void setColumnWidth(int col, int width, boolean autoFit)
           
protected  void setFreezePane(int rowIndex, int colIndex, boolean isRowEdge, boolean isColumnEdge)
           
 void setMacroTemplate(java.lang.String macroTemplate)
           
protected  void setParameters()
           
protected  void setRowHeight(int rowIndex, int rowHeight, Cut yCut, XlsRowLevelInfo levelInfo)
           
protected  void setRowLevels(XlsRowLevelInfo levelInfo, java.lang.String level)
           
protected  void setScale(java.lang.Integer scale)
           
protected  void setSheetName(java.lang.String sheetName)
           
protected  void updateColumn(int col, boolean autoFit)
           
 
Methods inherited from class net.sf.jasperreports.engine.export.JRXlsAbstractExporter
calculateHeightForDinAN, calculateHeightForDinBN, calculateHeightForDinCN, calculateWidthForDinAN, calculateWidthForDinBN, calculateWidthForDinCN, exportPage, exportReport, exportReportToStream, getColumnIndex, getColumnName, getConvertedPattern, getDefaultFont, getFormula, getImageBorderCorrection, getStyledText, getTextAlignHolder, getWorkbookTemplate, isCellHidden, isCellLocked, isIgnoreAnchors, isValidScale, isWorkbookTemplateKeepSheets, isWrapText, mergeAndSetRowLevels, setColumnWidths, setExporterHints, setFreezePane, setIgnoreAnchors, setScale, setSheetNames, setWorkbookTemplate, setWorkbookTemplateKeepSheets, translateDateValue, updateColumns
 
Methods inherited from class net.sf.jasperreports.engine.JRAbstractExporter
createFilter, defaultParseNumber, getBooleanCellValue, getBooleanParameter, getCharacterParameter, getCustomHandler, getDateCellValue, getDateFormat, getFloatParameter, getHyperlinkProducer, getIntegerParameter, getJasperReportsContext, getLocale, getNumberCellValue, getNumberFormat, getOffsetX, getOffsetY, getParameter, getParameterResolver, getParameters, getPropertiesUtil, getReportContext, getStringArrayParameter, getStringParameter, getStringParameterOrDefault, getStyledText, getTextFormatFactoryClass, getTextLocale, getTextTimeZone, getTextValue, getTextValueString, reset, resetClassLoader, resetExportContext, restoreElementOffsets, setClassLoader, setExportContext, setFontMap, setFrameElementsOffset, setHyperlinkProducerFactory, setInput, setJasperPrint, setOffset, setOffset, setOutput, setPageRange, setParameter, setParameters, setReportContext
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

XLSX_EXPORTER_KEY

public static final java.lang.String XLSX_EXPORTER_KEY
The exporter key, as used in GenericElementHandlerEnviroment.getHandler(net.sf.jasperreports.engine.JRGenericElementType, String).

See Also:
Constant Field Values

XLSX_EXPORTER_PROPERTIES_PREFIX

protected static final java.lang.String XLSX_EXPORTER_PROPERTIES_PREFIX
See Also:
Constant Field Values

PROPERTY_MACRO_TEMPLATE

public static final java.lang.String PROPERTY_MACRO_TEMPLATE
Property used to store the location of an existing workbook template containing a macro object. The macro object will be copied into the generated document if the template location is valid. Macros can be loaded from Excel macro-enabled template files (*.xltm) as well as from valid Excel macro-enabled documents (*.xlsm).

Since:
4.5.1
See Also:
JRPropertiesUtil, Constant Field Values

JR_PAGE_ANCHOR_PREFIX

protected static final java.lang.String JR_PAGE_ANCHOR_PREFIX
See Also:
Constant Field Values

IMAGE_NAME_PREFIX

public static final java.lang.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

sheetHelper

protected XlsxSheetHelper sheetHelper

sheetRelsHelper

protected XlsxSheetRelsHelper sheetRelsHelper

drawingHelper

protected XlsxDrawingHelper drawingHelper

drawingRelsHelper

protected XlsxDrawingRelsHelper drawingRelsHelper

styleHelper

protected XlsxStyleHelper styleHelper

cellHelper

protected XlsxCellHelper cellHelper

rendererToImagePathMap

protected java.util.Map<java.lang.String,java.lang.String> rendererToImagePathMap

imagesToProcess

protected java.util.List<JRPrintElementIndex> imagesToProcess

tableIndex

protected int tableIndex

startPage

protected boolean startPage

backcolorStack

protected java.util.LinkedList<java.awt.Color> backcolorStack

backcolor

protected java.awt.Color backcolor

nature

protected ExporterNature nature

sheetAutoFilter

protected java.lang.String sheetAutoFilter

macroTemplate

protected java.lang.String macroTemplate

currentSheetJasperPrint

protected JasperPrint currentSheetJasperPrint

currentSheetPageScale

protected java.lang.Integer currentSheetPageScale

currentSheetFirstPageNumber

protected java.lang.Integer currentSheetFirstPageNumber

exporterContext

protected JRXlsxExporterContext exporterContext
Constructor Detail

JRXlsxExporter

public JRXlsxExporter()
See Also:
JRXlsxExporter(JasperReportsContext)

JRXlsxExporter

public JRXlsxExporter(JasperReportsContext jasperReportsContext)
Method Detail

setParameters

protected void setParameters()
Overrides:
setParameters in class JRXlsAbstractExporter

getImage

public JRPrintImage getImage(java.util.List<JasperPrint> jasperPrintList,
                             java.lang.String imageName)
                      throws JRException
Throws:
JRException

getImage

public JRPrintImage getImage(java.util.List<JasperPrint> jasperPrintList,
                             JRPrintElementIndex imageIndex)
                      throws JRException
Throws:
JRException

exportStyledText

protected void exportStyledText(JRStyle style,
                                JRStyledText styledText,
                                java.util.Locale locale)

getImagePath

protected java.lang.String getImagePath(Renderable renderer,
                                        boolean isLazy,
                                        JRExporterGridCell gridCell)

getElementIndex

protected JRPrintElementIndex getElementIndex(JRExporterGridCell gridCell)

getPrintElementIndex

public static JRPrintElementIndex getPrintElementIndex(java.lang.String imageName)
protected void writeImageMap(String imageMapName, JRPrintHyperlink mainHyperlink, List imageMapAreas) throws IOException { writer.write("\n"); for (Iterator it = imageMapAreas.iterator(); it.hasNext();) { JRPrintImageAreaHyperlink areaHyperlink = (JRPrintImageAreaHyperlink) it.next(); JRPrintImageArea area = areaHyperlink.getArea(); writer.write(" \n"); } if (mainHyperlink.getHyperlinkTypeValue() != NONE) { writer.write(" \n"); } writer.write("\n"); } protected void writeImageAreaCoordinates(JRPrintImageArea area) throws IOException { int[] coords = area.getCoordinates(); if (coords != null && coords.length > 0) { StringBuffer coordsEnum = new StringBuffer(coords.length * 4); coordsEnum.append(coords[0]); for (int i = 1; i < coords.length; i++) { coordsEnum.append(','); coordsEnum.append(coords[i]); } writer.write(" coords=\"" + coordsEnum + "\""); } } protected void writeImageAreaHyperlink(JRPrintHyperlink hyperlink) throws IOException { String href = getHyperlinkURL(hyperlink); if (href == null) { writer.write(" nohref=\"nohref\""); } else { writer.write(" href=\"" + href + "\""); String target = getHyperlinkTarget(hyperlink); if (target != null) { writer.write(" target=\""); writer.write(target); writer.write("\""); } } if (hyperlink.getHyperlinkTooltip() != null) { writer.write(" title=\""); writer.write(JRStringUtil.xmlEncode(hyperlink.getHyperlinkTooltip())); writer.write("\""); } } /**


setBackcolor

protected void setBackcolor(java.awt.Color color)

restoreBackcolor

protected void restoreBackcolor()

getHyperlinkTarget

protected java.lang.String getHyperlinkTarget(JRPrintHyperlink link)

getHyperlinkURL

protected java.lang.String getHyperlinkURL(JRPrintHyperlink link)

getExporterPropertiesPrefix

protected java.lang.String getExporterPropertiesPrefix()

addBlankCell

protected void addBlankCell(JRExporterGridCell gridCell,
                            int colIndex,
                            int rowIndex)
                     throws JRException
Specified by:
addBlankCell in class JRXlsAbstractExporter
Throws:
JRException

closeWorkbook

protected void closeWorkbook(java.io.OutputStream os)
                      throws JRException
Specified by:
closeWorkbook in class JRXlsAbstractExporter
Throws:
JRException

createSheet

protected void createSheet(java.lang.String name)
Specified by:
createSheet in class JRXlsAbstractExporter

closeSheet

protected void closeSheet()

exportFrame

protected void exportFrame(JRPrintFrame frame,
                           JRExporterGridCell gridCell,
                           int colIndex,
                           int rowIndex)
                    throws JRException
Specified by:
exportFrame in class JRXlsAbstractExporter
Throws:
JRException

exportImage

public void exportImage(JRPrintImage image,
                        JRExporterGridCell gridCell,
                        int colIndex,
                        int rowIndex,
                        int emptyCols,
                        int yCutsRow,
                        JRGridLayout layout)
                 throws JRException
Specified by:
exportImage in class JRXlsAbstractExporter
Throws:
JRException

exportLine

protected void exportLine(JRPrintLine line,
                          JRExporterGridCell gridCell,
                          int colIndex,
                          int rowIndex)
                   throws JRException
Specified by:
exportLine in class JRXlsAbstractExporter
Throws:
JRException

exportRectangle

protected void exportRectangle(JRPrintGraphicElement rectangle,
                               JRExporterGridCell gridCell,
                               int colIndex,
                               int rowIndex)
                        throws JRException
Specified by:
exportRectangle in class JRXlsAbstractExporter
Throws:
JRException

exportText

public void exportText(JRPrintText text,
                       JRExporterGridCell gridCell,
                       int colIndex,
                       int rowIndex)
                throws JRException
Specified by:
exportText in class JRXlsAbstractExporter
Throws:
JRException

exportGenericElement

protected void exportGenericElement(JRGenericPrintElement element,
                                    JRExporterGridCell gridCell,
                                    int colIndex,
                                    int rowIndex,
                                    int emptyCols,
                                    int yCutsRow,
                                    JRGridLayout layout)
                             throws JRException
Specified by:
exportGenericElement in class JRXlsAbstractExporter
Throws:
JRException

getNature

protected ExporterNature getNature()
Specified by:
getNature in class JRXlsAbstractExporter

openWorkbook

protected void openWorkbook(java.io.OutputStream os)
                     throws JRException
Specified by:
openWorkbook in class JRXlsAbstractExporter
Throws:
JRException

removeColumn

protected void removeColumn(int col)
Specified by:
removeColumn in class JRXlsAbstractExporter

setBackground

protected void setBackground()
Specified by:
setBackground in class JRXlsAbstractExporter

setCell

protected void setCell(JRExporterGridCell gridCell,
                       int colIndex,
                       int rowIndex)
Specified by:
setCell in class JRXlsAbstractExporter

addOccupiedCell

protected void addOccupiedCell(OccupiedGridCell occupiedGridCell,
                               int colIndex,
                               int rowIndex)
Specified by:
addOccupiedCell in class JRXlsAbstractExporter

setColumnWidth

protected void setColumnWidth(int col,
                              int width,
                              boolean autoFit)
Specified by:
setColumnWidth in class JRXlsAbstractExporter

updateColumn

protected void updateColumn(int col,
                            boolean autoFit)
Specified by:
updateColumn in class JRXlsAbstractExporter

setRowHeight

protected void setRowHeight(int rowIndex,
                            int rowHeight,
                            Cut yCut,
                            XlsRowLevelInfo levelInfo)
                     throws JRException
Specified by:
setRowHeight in class JRXlsAbstractExporter
Throws:
JRException

getExporterKey

protected java.lang.String getExporterKey()
Specified by:
getExporterKey in class JRAbstractExporter

setFreezePane

protected void setFreezePane(int rowIndex,
                             int colIndex,
                             boolean isRowEdge,
                             boolean isColumnEdge)
Specified by:
setFreezePane in class JRXlsAbstractExporter

setSheetName

protected void setSheetName(java.lang.String sheetName)
Specified by:
setSheetName in class JRXlsAbstractExporter

setAutoFilter

protected void setAutoFilter(java.lang.String autoFilterRange)
Specified by:
setAutoFilter in class JRXlsAbstractExporter

resetAutoFilters

protected void resetAutoFilters()
Overrides:
resetAutoFilters in class JRXlsAbstractExporter

setRowLevels

protected void setRowLevels(XlsRowLevelInfo levelInfo,
                            java.lang.String level)
Specified by:
setRowLevels in class JRXlsAbstractExporter

getMacroTemplatePath

public java.lang.String getMacroTemplatePath()

setMacroTemplate

public void setMacroTemplate(java.lang.String macroTemplate)

setScale

protected void setScale(java.lang.Integer scale)
Specified by:
setScale in class JRXlsAbstractExporter


© 2001-2010 Jaspersoft Corporation www.jaspersoft.com