diff --git a/ZA2X/CLAS/ZCL_EXCEL_STYLE_FILL.slnk b/ZA2X/CLAS/ZCL_EXCEL_STYLE_FILL.slnk index 656a7f4..1128a99 100644 --- a/ZA2X/CLAS/ZCL_EXCEL_STYLE_FILL.slnk +++ b/ZA2X/CLAS/ZCL_EXCEL_STYLE_FILL.slnk @@ -1,65 +1,50 @@ - - *----------------------------------------------------------------------* -* CLASS ZCL_EXCEL_STYLE_FILL DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -class zcl_excel_style_fill definition + + class ZCL_EXCEL_STYLE_FILL definition public final create public . - public section. +public section. +*"* public components of class ZCL_EXCEL_STYLE_FILL +*"* do not include other source files here!!! - constants c_fill_none type zexcel_fill_type value 'none'. "#EC NOTEXT - constants c_fill_solid type zexcel_fill_type value 'solid'. "#EC NOTEXT - constants c_fill_gradient_linear type zexcel_fill_type value 'linear'. "#EC NOTEXT - constants c_fill_gradient_path type zexcel_fill_type value 'path'. "#EC NOTEXT - constants c_fill_pattern_darkdown type zexcel_fill_type value 'darkDown'. "#EC NOTEXT - constants c_fill_pattern_darkgray type zexcel_fill_type value 'darkGray'. "#EC NOTEXT - constants c_fill_pattern_darkgrid type zexcel_fill_type value 'darkGrid'. "#EC NOTEXT - constants c_fill_pattern_darkhorizontal type zexcel_fill_type value 'darkHorizontal'. "#EC NOTEXT - constants c_fill_pattern_darktrellis type zexcel_fill_type value 'darkTrellis'. "#EC NOTEXT - constants c_fill_pattern_darkup type zexcel_fill_type value 'darkUp'. "#EC NOTEXT - constants c_fill_pattern_darkvertical type zexcel_fill_type value 'darkVertical'. "#EC NOTEXT - constants c_fill_pattern_gray0625 type zexcel_fill_type value 'gray0625'. "#EC NOTEXT - constants c_fill_pattern_gray125 type zexcel_fill_type value 'gray125'. "#EC NOTEXT - constants c_fill_pattern_lightdown type zexcel_fill_type value 'lightDown'. "#EC NOTEXT - constants c_fill_pattern_lightgray type zexcel_fill_type value 'lightGray'. "#EC NOTEXT - constants c_fill_pattern_lightgrid type zexcel_fill_type value 'lightGrid'. "#EC NOTEXT - constants c_fill_pattern_lighthorizontal type zexcel_fill_type value 'lightHorizontal'. "#EC NOTEXT - constants c_fill_pattern_lighttrellis type zexcel_fill_type value 'lightTrellis'. "#EC NOTEXT - constants c_fill_pattern_lightup type zexcel_fill_type value 'lightUp'. "#EC NOTEXT - constants c_fill_pattern_lightvertical type zexcel_fill_type value 'lightVertical'. "#EC NOTEXT - constants c_fill_pattern_mediumgray type zexcel_fill_type value 'mediumGray'. "#EC NOTEXT - constants c_fill_gradient_horizontal90 type zexcel_fill_type value 'horizontal90'. "#EC NOTEXT - constants c_fill_gradient_horizontal270 type zexcel_fill_type value 'horizontal270'. "#EC NOTEXT - constants c_fill_gradient_horizontalb type zexcel_fill_type value 'horizontalb'. "#EC NOTEXT - constants c_fill_gradient_vertical type zexcel_fill_type value 'vertical'. "#EC NOTEXT - constants c_fill_gradient_fromcenter type zexcel_fill_type value 'fromCenter'. "#EC NOTEXT - constants c_fill_gradient_diagonal45 type zexcel_fill_type value 'diagonal45'. "#EC NOTEXT - constants c_fill_gradient_diagonal45b type zexcel_fill_type value 'diagonal45b'. "#EC NOTEXT - constants c_fill_gradient_diagonal135 type zexcel_fill_type value 'diagonal135'. "#EC NOTEXT - constants c_fill_gradient_diagonal135b type zexcel_fill_type value 'diagonal135b'. "#EC NOTEXT - constants c_fill_gradient_cornerlt type zexcel_fill_type value 'cornerLT'. "#EC NOTEXT - constants c_fill_gradient_cornerlb type zexcel_fill_type value 'cornerLB'. "#EC NOTEXT - constants c_fill_gradient_cornerrt type zexcel_fill_type value 'cornerRT'. "#EC NOTEXT - constants c_fill_gradient_cornerrb type zexcel_fill_type value 'cornerRB'. "#EC NOTEXT - data gradtype type zexcel_s_gradient_type. - data filltype type zexcel_fill_type . - data rotation type zexcel_rotation . - data fgcolor type zexcel_s_style_color . - data bgcolor type zexcel_s_style_color . + constants C_FILL_NONE type ZEXCEL_FILL_TYPE value 'none'. "#EC NOTEXT + constants C_FILL_SOLID type ZEXCEL_FILL_TYPE value 'solid'. "#EC NOTEXT + constants C_FILL_GRADIENT_LINEAR type ZEXCEL_FILL_TYPE value 'linear'. "#EC NOTEXT + constants C_FILL_GRADIENT_PATH type ZEXCEL_FILL_TYPE value 'path'. "#EC NOTEXT + constants C_FILL_PATTERN_DARKDOWN type ZEXCEL_FILL_TYPE value 'darkDown'. "#EC NOTEXT + constants C_FILL_PATTERN_DARKGRAY type ZEXCEL_FILL_TYPE value 'darkGray'. "#EC NOTEXT + constants C_FILL_PATTERN_DARKGRID type ZEXCEL_FILL_TYPE value 'darkGrid'. "#EC NOTEXT + constants C_FILL_PATTERN_DARKHORIZONTAL type ZEXCEL_FILL_TYPE value 'darkHorizontal'. "#EC NOTEXT + constants C_FILL_PATTERN_DARKTRELLIS type ZEXCEL_FILL_TYPE value 'darkTrellis'. "#EC NOTEXT + constants C_FILL_PATTERN_DARKUP type ZEXCEL_FILL_TYPE value 'darkUp'. "#EC NOTEXT + constants C_FILL_PATTERN_DARKVERTICAL type ZEXCEL_FILL_TYPE value 'darkVertical'. "#EC NOTEXT + constants C_FILL_PATTERN_GRAY0625 type ZEXCEL_FILL_TYPE value 'gray0625'. "#EC NOTEXT + constants C_FILL_PATTERN_GRAY125 type ZEXCEL_FILL_TYPE value 'gray125'. "#EC NOTEXT + constants C_FILL_PATTERN_LIGHTDOWN type ZEXCEL_FILL_TYPE value 'lightDown'. "#EC NOTEXT + constants C_FILL_PATTERN_LIGHTGRAY type ZEXCEL_FILL_TYPE value 'lightGray'. "#EC NOTEXT + constants C_FILL_PATTERN_LIGHTGRID type ZEXCEL_FILL_TYPE value 'lightGrid'. "#EC NOTEXT + constants C_FILL_PATTERN_LIGHTHORIZONTAL type ZEXCEL_FILL_TYPE value 'lightHorizontal'. "#EC NOTEXT + constants C_FILL_PATTERN_LIGHTTRELLIS type ZEXCEL_FILL_TYPE value 'lightTrellis'. "#EC NOTEXT + constants C_FILL_PATTERN_LIGHTUP type ZEXCEL_FILL_TYPE value 'lightUp'. "#EC NOTEXT + constants C_FILL_PATTERN_LIGHTVERTICAL type ZEXCEL_FILL_TYPE value 'lightVertical'. "#EC NOTEXT + constants C_FILL_PATTERN_MEDIUMGRAY type ZEXCEL_FILL_TYPE value 'mediumGray'. "#EC NOTEXT + data FILLTYPE type ZEXCEL_FILL_TYPE . + data ROTATION type ZEXCEL_ROTATION . + data FGCOLOR type ZEXCEL_S_STYLE_COLOR . + data BGCOLOR type ZEXCEL_S_STYLE_COLOR . - methods constructor . - methods get_structure - returning - value(es_fill) type zexcel_s_style_fill . - protected section. - private section. - methods build_gradient. - methods check_filltype_is_gradient returning value(rv_is_gradient) type abap_bool. + methods CONSTRUCTOR . + methods GET_STRUCTURE + returning + value(ES_FILL) type ZEXCEL_S_STYLE_FILL . + *"* protected components of class ZABAP_EXCEL_STYLE_FONT +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_STYLE_FILL +*"* do not include other source files here!!! +private section. *"* local class implementation for public class *"* use this source file for the implementation part of *"* local helper classes @@ -68,160 +53,48 @@ class zcl_excel_style_fill definition *"* implementation or private method's signature *"* use this source file for any macro definitions you need *"* in the implementation part of the class - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - method build_gradient. - check check_filltype_is_gradient( ) eq abap_true. - case filltype. - when c_fill_gradient_horizontal90. - gradtype-degree = '90'. - gradtype-position1 = '0'. - gradtype-position2 = '1'. - when c_fill_gradient_horizontal270. - gradtype-degree = '270'. - gradtype-position1 = '0'. - gradtype-position2 = '1'. - when c_fill_gradient_horizontalb. - gradtype-degree = '90'. - gradtype-position1 = '0'. - gradtype-position2 = '0.5'. - gradtype-position3 = '1'. - when c_fill_gradient_vertical. - gradtype-position1 = '0'. - gradtype-position2 = '1'. - when c_fill_gradient_fromcenter. - gradtype-type = c_fill_gradient_path. - gradtype-position1 = '0'. - gradtype-position2 = '1'. - gradtype-bottom = '0.5'. - gradtype-top = '0.5'. - gradtype-left = '0.5'. - gradtype-right = '0.5'. - when c_fill_gradient_diagonal45. - gradtype-degree = '45'. - gradtype-position1 = '0'. - gradtype-position2 = '1'. - when c_fill_gradient_diagonal45b. - gradtype-degree = '45'. - gradtype-position1 = '0'. - gradtype-position2 = '0.5'. - gradtype-position3 = '1'. - when c_fill_gradient_diagonal135. - gradtype-degree = '135'. - gradtype-position1 = '0'. - gradtype-position2 = '1'. - when c_fill_gradient_diagonal135b. - gradtype-degree = '135'. - gradtype-position1 = '0'. - gradtype-position2 = '0.5'. - gradtype-position3 = '1'. - when c_fill_gradient_cornerlt. - gradtype-type = c_fill_gradient_path. - gradtype-position1 = '0'. - gradtype-position2 = '1'. - when c_fill_gradient_cornerlb. - gradtype-type = c_fill_gradient_path. - gradtype-position1 = '0'. - gradtype-position2 = '1'. - gradtype-bottom = '1'. - gradtype-top = '1'. - when c_fill_gradient_cornerrt. - gradtype-type = c_fill_gradient_path. - gradtype-position1 = '0'. - gradtype-position2 = '1'. - gradtype-left = '1'. - gradtype-right = '1'. - when c_fill_gradient_cornerrb. - gradtype-type = c_fill_gradient_path. - gradtype-position1 = '0'. - gradtype-position2 = '1'. - gradtype-bottom = '0.5'. - gradtype-top = '0.5'. - gradtype-left = '0.5'. - gradtype-right = '0.5'. - endcase. - - endmethod. "build_gradient + + + + + + + + + + + + + + + + + + + + + + + + + + + method CONSTRUCTOR. + filltype = zcl_excel_style_fill=>c_fill_none. + fgcolor-theme = zcl_excel_style_color=>c_theme_not_set. + fgcolor-indexed = zcl_excel_style_color=>c_indexed_not_set. + bgcolor-theme = zcl_excel_style_color=>c_theme_not_set. + bgcolor-indexed = zcl_excel_style_color=>c_indexed_sys_foreground. + rotation = 0. +endmethod. - - - method check_filltype_is_gradient. - case filltype. - when c_fill_gradient_horizontal90 or - c_fill_gradient_horizontal270 or - c_fill_gradient_horizontalb or - c_fill_gradient_vertical or - c_fill_gradient_fromcenter or - c_fill_gradient_diagonal45 or - c_fill_gradient_diagonal45b or - c_fill_gradient_diagonal135 or - c_fill_gradient_diagonal135b or - c_fill_gradient_cornerlt or - c_fill_gradient_cornerlb or - c_fill_gradient_cornerrt or - c_fill_gradient_cornerrb. - rv_is_gradient = abap_true. - endcase. - endmethod. "check_filltype_is_gradient - - - method constructor. - filltype = zcl_excel_style_fill=>c_fill_none. - fgcolor-theme = zcl_excel_style_color=>c_theme_not_set. - fgcolor-indexed = zcl_excel_style_color=>c_indexed_not_set. - bgcolor-theme = zcl_excel_style_color=>c_theme_not_set. - bgcolor-indexed = zcl_excel_style_color=>c_indexed_sys_foreground. - rotation = 0. - - endmethod. "CONSTRUCTOR - - - - method get_structure. - es_fill-rotation = me->rotation. - es_fill-filltype = me->filltype. - es_fill-fgcolor = me->fgcolor. - es_fill-bgcolor = me->bgcolor. - me->build_gradient( ). - es_fill-gradtype = me->gradtype. - endmethod. "GET_STRUCTURE + + + method GET_STRUCTURE. + es_fill-rotation = me->rotation. + es_fill-filltype = me->filltype. + es_fill-fgColor = me->fgColor. + es_fill-bgColor = me->bgColor. +endmethod. diff --git a/ZA2X/CLAS/ZCL_EXCEL_WORKSHEET.slnk b/ZA2X/CLAS/ZCL_EXCEL_WORKSHEET.slnk index d9a3ce1..859990c 100644 --- a/ZA2X/CLAS/ZCL_EXCEL_WORKSHEET.slnk +++ b/ZA2X/CLAS/ZCL_EXCEL_WORKSHEET.slnk @@ -1,515 +1,40 @@ - - - - - - - - - - - class ZCL_EXCEL_WORKSHEET definition - public - final - create public . - -public section. - type-pools ABAP . - - interfaces ZIF_EXCEL_SHEET_PRINTSETTINGS . - interfaces ZIF_EXCEL_SHEET_PROPERTIES . - interfaces ZIF_EXCEL_SHEET_PROTECTION . - interfaces ZIF_EXCEL_SHEET_VBA_PROJECT . - - constants C_BREAK_COLUMN type ZEXCEL_BREAK value 2. "#EC NOTEXT - constants C_BREAK_NONE type ZEXCEL_BREAK value 0. "#EC NOTEXT - constants C_BREAK_ROW type ZEXCEL_BREAK value 1. "#EC NOTEXT - data EXCEL type ref to ZCL_EXCEL read-only . - data PRINT_GRIDLINES type ZEXCEL_PRINT_GRIDLINES read-only value ABAP_FALSE. "#EC NOTEXT . " . - data SHEET_CONTENT type ZEXCEL_T_CELL_DATA . - data SHEET_CONTENT_MERGE type ZEXCEL_T_CELL_DATA_UNSORTED . - data SHEET_SETUP type ref to ZCL_EXCEL_SHEET_SETUP . - data SHOW_GRIDLINES type ZEXCEL_SHOW_GRIDLINES read-only value ABAP_TRUE. "#EC NOTEXT . " . - data SHOW_ROWCOLHEADERS type ZEXCEL_SHOW_GRIDLINES read-only value ABAP_TRUE. "#EC NOTEXT . " . - data STYLES type ZEXCEL_T_SHEET_STYLE . - data TABCOLOR type ZEXCEL_S_TABCOLOR read-only . - - methods ADD_DRAWING - importing - !IP_DRAWING type ref to ZCL_EXCEL_DRAWING . - methods ADD_NEW_CONDITIONAL_STYLE - returning - value(EO_CONDITIONAL_STYLE) type ref to ZCL_EXCEL_STYLE_CONDITIONAL . - methods ADD_NEW_DATA_VALIDATION - returning - value(EO_DATA_VALIDATION) type ref to ZCL_EXCEL_DATA_VALIDATION . - methods ADD_NEW_RANGE - returning - value(EO_RANGE) type ref to ZCL_EXCEL_RANGE . - methods BIND_ALV - importing - !IO_ALV type ref to OBJECT - !IT_TABLE type STANDARD TABLE - !I_TOP type I default 1 - !I_LEFT type I default 1 - !TABLE_STYLE type ZEXCEL_TABLE_STYLE optional - raising - ZCX_EXCEL . - type-pools SLIS . - type-pools SOI . - methods BIND_ALV_OLE2 - importing - !I_DOCUMENT_URL type CHAR255 default SPACE - !I_XLS type C default SPACE - !I_SAVE_PATH type STRING - !IO_ALV type ref to CL_GUI_ALV_GRID - !IT_LISTHEADER type SLIS_T_LISTHEADER optional - !I_TOP type I default 1 - !I_LEFT type I default 1 - !I_COLUMNS_HEADER type C default 'X' - !I_COLUMNS_AUTOFIT type C default 'X' - !I_FORMAT_COL_HEADER type SOI_FORMAT_ITEM optional - !I_FORMAT_SUBTOTAL type SOI_FORMAT_ITEM optional - !I_FORMAT_TOTAL type SOI_FORMAT_ITEM optional - exceptions - MISS_GUIDE - EX_TRANSFER_KKBLO_ERROR - FATAL_ERROR - INV_DATA_RANGE - DIM_MISMATCH_VKEY - DIM_MISMATCH_SEMA - ERROR_IN_SEMA . - methods BIND_TABLE - importing - !IP_TABLE type STANDARD TABLE - !IT_FIELD_CATALOG type ZEXCEL_T_FIELDCATALOG optional - !IS_TABLE_SETTINGS type ZEXCEL_S_TABLE_SETTINGS optional - exporting - !ES_TABLE_SETTINGS type ZEXCEL_S_TABLE_SETTINGS - raising - ZCX_EXCEL . - methods CALCULATE_COLUMN_WIDTHS - raising - ZCX_EXCEL . - methods CHANGE_CELL_STYLE - importing - !IP_COLUMN type SIMPLE - !IP_ROW type ZEXCEL_CELL_ROW - !IP_COMPLETE type ZEXCEL_S_CSTYLE_COMPLETE optional - !IP_XCOMPLETE type ZEXCEL_S_CSTYLEX_COMPLETE optional - !IP_FONT type ZEXCEL_S_CSTYLE_FONT optional - !IP_XFONT type ZEXCEL_S_CSTYLEX_FONT optional - !IP_FILL type ZEXCEL_S_CSTYLE_FILL optional - !IP_XFILL type ZEXCEL_S_CSTYLEX_FILL optional - !IP_BORDERS type ZEXCEL_S_CSTYLE_BORDERS optional - !IP_XBORDERS type ZEXCEL_S_CSTYLEX_BORDERS optional - !IP_ALIGNMENT type ZEXCEL_S_CSTYLE_ALIGNMENT optional - !IP_XALIGNMENT type ZEXCEL_S_CSTYLEX_ALIGNMENT optional - !IP_NUMBER_FORMAT_FORMAT_CODE type ZEXCEL_NUMBER_FORMAT optional - !IP_PROTECTION type ZEXCEL_S_CSTYLE_PROTECTION optional - !IP_XPROTECTION type ZEXCEL_S_CSTYLEX_PROTECTION optional - !IP_FONT_BOLD type FLAG optional - !IP_FONT_COLOR type ZEXCEL_S_STYLE_COLOR optional - !IP_FONT_COLOR_RGB type ZEXCEL_STYLE_COLOR_ARGB optional - !IP_FONT_COLOR_INDEXED type ZEXCEL_STYLE_COLOR_INDEXED optional - !IP_FONT_COLOR_THEME type ZEXCEL_STYLE_COLOR_THEME optional - !IP_FONT_COLOR_TINT type ZEXCEL_STYLE_COLOR_TINT optional - !IP_FONT_FAMILY type ZEXCEL_STYLE_FONT_FAMILY optional - !IP_FONT_ITALIC type FLAG optional - !IP_FONT_NAME type ZEXCEL_STYLE_FONT_NAME optional - !IP_FONT_SCHEME type ZEXCEL_STYLE_FONT_SCHEME optional - !IP_FONT_SIZE type ZEXCEL_STYLE_FONT_SIZE optional - !IP_FONT_STRIKETHROUGH type FLAG optional - !IP_FONT_UNDERLINE type FLAG optional - !IP_FONT_UNDERLINE_MODE type ZEXCEL_STYLE_FONT_UNDERLINE optional - !IP_FILL_FILLTYPE type ZEXCEL_FILL_TYPE optional - !IP_FILL_ROTATION type ZEXCEL_ROTATION optional - !IP_FILL_FGCOLOR type ZEXCEL_S_STYLE_COLOR optional - !IP_FILL_FGCOLOR_RGB type ZEXCEL_STYLE_COLOR_ARGB optional - !IP_FILL_FGCOLOR_INDEXED type ZEXCEL_STYLE_COLOR_INDEXED optional - !IP_FILL_FGCOLOR_THEME type ZEXCEL_STYLE_COLOR_THEME optional - !IP_FILL_FGCOLOR_TINT type ZEXCEL_STYLE_COLOR_TINT optional - !IP_FILL_BGCOLOR type ZEXCEL_S_STYLE_COLOR optional - !IP_FILL_BGCOLOR_RGB type ZEXCEL_STYLE_COLOR_ARGB optional - !IP_FILL_BGCOLOR_INDEXED type ZEXCEL_STYLE_COLOR_INDEXED optional - !IP_FILL_BGCOLOR_THEME type ZEXCEL_STYLE_COLOR_THEME optional - !IP_FILL_BGCOLOR_TINT type ZEXCEL_STYLE_COLOR_TINT optional - !IP_fill_gradtype_type type zexcel_s_gradient_type-type optional - !IP_fill_gradtype_degree type zexcel_s_gradient_type-degree optional - !IP_fill_gradtype_bottom type zexcel_s_gradient_type-bottom optional - !IP_fill_gradtype_top type zexcel_s_gradient_type-top optional - !IP_fill_gradtype_right type zexcel_s_gradient_type-right optional - !IP_fill_gradtype_left type zexcel_s_gradient_type-left optional - !IP_fill_gradtype_position1 type zexcel_s_gradient_type-position1 optional - !IP_fill_gradtype_position2 type zexcel_s_gradient_type-position2 optional - !IP_fill_gradtype_position3 type zexcel_s_gradient_type-position3 optional - !IP_BORDERS_ALLBORDERS type ZEXCEL_S_CSTYLE_BORDER optional - !IP_XBORDERS_ALLBORDERS type ZEXCEL_S_CSTYLEX_BORDER optional - !IP_BORDERS_DIAGONAL type ZEXCEL_S_CSTYLE_BORDER optional - !IP_XBORDERS_DIAGONAL type ZEXCEL_S_CSTYLEX_BORDER optional - !IP_BORDERS_DIAGONAL_MODE type ZEXCEL_DIAGONAL optional - !IP_BORDERS_DOWN type ZEXCEL_S_CSTYLE_BORDER optional - !IP_XBORDERS_DOWN type ZEXCEL_S_CSTYLEX_BORDER optional - !IP_BORDERS_LEFT type ZEXCEL_S_CSTYLE_BORDER optional - !IP_XBORDERS_LEFT type ZEXCEL_S_CSTYLEX_BORDER optional - !IP_BORDERS_RIGHT type ZEXCEL_S_CSTYLE_BORDER optional - !IP_XBORDERS_RIGHT type ZEXCEL_S_CSTYLEX_BORDER optional - !IP_BORDERS_TOP type ZEXCEL_S_CSTYLE_BORDER optional - !IP_XBORDERS_TOP type ZEXCEL_S_CSTYLEX_BORDER optional - !IP_ALIGNMENT_HORIZONTAL type ZEXCEL_ALIGNMENT optional - !IP_ALIGNMENT_VERTICAL type ZEXCEL_ALIGNMENT optional - !IP_ALIGNMENT_TEXTROTATION type ZEXCEL_TEXT_ROTATION optional - !IP_ALIGNMENT_WRAPTEXT type FLAG optional - !IP_ALIGNMENT_SHRINKTOFIT type FLAG optional - !IP_ALIGNMENT_INDENT type ZEXCEL_INDENT optional - !IP_PROTECTION_HIDDEN type ZEXCEL_CELL_PROTECTION optional - !IP_PROTECTION_LOCKED type ZEXCEL_CELL_PROTECTION optional - !IP_BORDERS_ALLBORDERS_STYLE type ZEXCEL_BORDER optional - !IP_BORDERS_ALLBORDERS_COLOR type ZEXCEL_S_STYLE_COLOR optional - !IP_BORDERS_ALLBO_COLOR_RGB type ZEXCEL_STYLE_COLOR_ARGB optional - !IP_BORDERS_ALLBO_COLOR_INDEXED type ZEXCEL_STYLE_COLOR_INDEXED optional - !IP_BORDERS_ALLBO_COLOR_THEME type ZEXCEL_STYLE_COLOR_THEME optional - !IP_BORDERS_ALLBO_COLOR_TINT type ZEXCEL_STYLE_COLOR_TINT optional - !IP_BORDERS_DIAGONAL_STYLE type ZEXCEL_BORDER optional - !IP_BORDERS_DIAGONAL_COLOR type ZEXCEL_S_STYLE_COLOR optional - !IP_BORDERS_DIAGONAL_COLOR_RGB type ZEXCEL_STYLE_COLOR_ARGB optional - !IP_BORDERS_DIAGONAL_COLOR_INDE type ZEXCEL_STYLE_COLOR_INDEXED optional - !IP_BORDERS_DIAGONAL_COLOR_THEM type ZEXCEL_STYLE_COLOR_THEME optional - !IP_BORDERS_DIAGONAL_COLOR_TINT type ZEXCEL_STYLE_COLOR_TINT optional - !IP_BORDERS_DOWN_STYLE type ZEXCEL_BORDER optional - !IP_BORDERS_DOWN_COLOR type ZEXCEL_S_STYLE_COLOR optional - !IP_BORDERS_DOWN_COLOR_RGB type ZEXCEL_STYLE_COLOR_ARGB optional - !IP_BORDERS_DOWN_COLOR_INDEXED type ZEXCEL_STYLE_COLOR_INDEXED optional - !IP_BORDERS_DOWN_COLOR_THEME type ZEXCEL_STYLE_COLOR_THEME optional - !IP_BORDERS_DOWN_COLOR_TINT type ZEXCEL_STYLE_COLOR_TINT optional - !IP_BORDERS_LEFT_STYLE type ZEXCEL_BORDER optional - !IP_BORDERS_LEFT_COLOR type ZEXCEL_S_STYLE_COLOR optional - !IP_BORDERS_LEFT_COLOR_RGB type ZEXCEL_STYLE_COLOR_ARGB optional - !IP_BORDERS_LEFT_COLOR_INDEXED type ZEXCEL_STYLE_COLOR_INDEXED optional - !IP_BORDERS_LEFT_COLOR_THEME type ZEXCEL_STYLE_COLOR_THEME optional - !IP_BORDERS_LEFT_COLOR_TINT type ZEXCEL_STYLE_COLOR_TINT optional - !IP_BORDERS_RIGHT_STYLE type ZEXCEL_BORDER optional - !IP_BORDERS_RIGHT_COLOR type ZEXCEL_S_STYLE_COLOR optional - !IP_BORDERS_RIGHT_COLOR_RGB type ZEXCEL_STYLE_COLOR_ARGB optional - !IP_BORDERS_RIGHT_COLOR_INDEXED type ZEXCEL_STYLE_COLOR_INDEXED optional - !IP_BORDERS_RIGHT_COLOR_THEME type ZEXCEL_STYLE_COLOR_THEME optional - !IP_BORDERS_RIGHT_COLOR_TINT type ZEXCEL_STYLE_COLOR_TINT optional - !IP_BORDERS_TOP_STYLE type ZEXCEL_BORDER optional - !IP_BORDERS_TOP_COLOR type ZEXCEL_S_STYLE_COLOR optional - !IP_BORDERS_TOP_COLOR_RGB type ZEXCEL_STYLE_COLOR_ARGB optional - !IP_BORDERS_TOP_COLOR_INDEXED type ZEXCEL_STYLE_COLOR_INDEXED optional - !IP_BORDERS_TOP_COLOR_THEME type ZEXCEL_STYLE_COLOR_THEME optional - !IP_BORDERS_TOP_COLOR_TINT type ZEXCEL_STYLE_COLOR_TINT optional - returning - value(EP_GUID) type ZEXCEL_CELL_STYLE - raising - ZCX_EXCEL . - methods CONSTRUCTOR - importing - !IP_EXCEL type ref to ZCL_EXCEL - !IP_TITLE type ZEXCEL_SHEET_TITLE optional - raising - ZCX_EXCEL . - methods DELETE_MERGE . - methods FREEZE_PANES - importing - !IP_NUM_COLUMNS type I optional - !IP_NUM_ROWS type I optional - raising - ZCX_EXCEL . - methods GET_ACTIVE_CELL - returning - value(EP_ACTIVE_CELL) type STRING - raising - ZCX_EXCEL . - methods GET_CELL - importing - !IP_COLUMN type SIMPLE - !IP_ROW type ZEXCEL_CELL_ROW - exporting - !EP_VALUE type ZEXCEL_CELL_VALUE - !EP_RC type SYSUBRC - !EP_STYLE type ref to ZCL_EXCEL_STYLE - !EP_GUID type ZEXCEL_CELL_STYLE - raising - ZCX_EXCEL . - methods GET_COLUMN_DIMENSION - importing - !IP_COLUMN type SIMPLE - returning - value(R_COLUMN_DIMENSION) type ref to ZCL_EXCEL_WORKSHEET_COLUMNDIME - raising - ZCX_EXCEL . - methods GET_COLUMN_DIMENSIONS - returning - value(R_COLUMN_DIMENSION) type ZEXCEL_T_WORKSHEET_COLUMNDIME . - methods GET_COND_STYLES_ITERATOR - returning - value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . - methods GET_DATA_VALIDATIONS_ITERATOR - returning - value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . - methods GET_DATA_VALIDATIONS_SIZE - returning - value(EP_SIZE) type I . - methods GET_DEFAULT_COLUMN_DIMENSION - returning - value(R_COLUMN_DIMENSION) type ref to ZCL_EXCEL_WORKSHEET_COLUMNDIME . - methods GET_DEFAULT_EXCEL_DATE_FORMAT - returning - value(EP_DEFAULT_EXCEL_DATE_FORMAT) type ZEXCEL_NUMBER_FORMAT . - methods GET_DEFAULT_EXCEL_TIME_FORMAT - returning - value(EP_DEFAULT_EXCEL_TIME_FORMAT) type ZEXCEL_NUMBER_FORMAT . - methods GET_DEFAULT_ROW_DIMENSION - returning - value(R_ROW_DIMENSION) type ref to ZCL_EXCEL_WORKSHEET_ROWDIMENSI . - methods GET_DIMENSION_RANGE - returning - value(EP_DIMENSION_RANGE) type STRING - raising - ZCX_EXCEL . - methods GET_DRAWINGS - importing - !IP_TYPE type ZEXCEL_DRAWING_TYPE optional - returning - value(R_DRAWINGS) type ref to ZCL_EXCEL_DRAWINGS . - methods GET_DRAWINGS_ITERATOR - importing - !IP_TYPE type ZEXCEL_DRAWING_TYPE - returning - value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . - methods GET_FREEZE_CELL - exporting - !EP_ROW type ZEXCEL_CELL_ROW - !EP_COLUMN type ZEXCEL_CELL_COLUMN . - methods GET_GUID - returning - value(EP_GUID) type UUID . - methods GET_HIGHEST_COLUMN - returning - value(R_HIGHEST_COLUMN) type ZEXCEL_CELL_COLUMN - raising - ZCX_EXCEL . - methods GET_HIGHEST_ROW - returning - value(R_HIGHEST_ROW) type INT4 - raising - ZCX_EXCEL . - methods GET_HYPERLINKS_ITERATOR - returning - value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . - methods GET_HYPERLINKS_SIZE - returning - value(EP_SIZE) type I . - methods GET_MERGE - returning - value(MERGE_RANGE) type STRING_TABLE - raising - ZCX_EXCEL . - methods GET_RANGES_ITERATOR - returning - value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . - methods GET_ROW_DIMENSION - importing - !IP_ROW type INT4 - returning - value(R_ROW_DIMENSION) type ref to ZCL_EXCEL_WORKSHEET_ROWDIMENSI . - methods GET_ROW_DIMENSIONS - returning - value(R_ROW_DIMENSION) type ZEXCEL_T_WORKSHEET_ROWDIMENSIO . - methods GET_TABCOLOR - returning - value(EV_TABCOLOR) type ZEXCEL_S_TABCOLOR . - methods GET_TABLES_ITERATOR - returning - value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . - methods GET_TABLES_SIZE - returning - value(EP_SIZE) type I . - methods GET_TITLE - importing - !IP_ESCAPED type FLAG default '' - returning - value(EP_TITLE) type ZEXCEL_SHEET_TITLE . - methods SET_CELL - importing - !IP_COLUMN type SIMPLE - !IP_ROW type ZEXCEL_CELL_ROW - !IP_VALUE type SIMPLE optional - !IP_FORMULA type ZEXCEL_CELL_FORMULA optional - !IP_STYLE type ZEXCEL_CELL_STYLE optional - !IP_HYPERLINK type ref to ZCL_EXCEL_HYPERLINK optional - !IP_DATA_TYPE type ZEXCEL_CELL_DATA_TYPE optional - !IP_ABAP_TYPE type ABAP_TYPEKIND optional - raising - ZCX_EXCEL . - methods SET_CELL_FORMULA - importing - !IP_COLUMN type SIMPLE - !IP_ROW type ZEXCEL_CELL_ROW - !IP_FORMULA type ZEXCEL_CELL_FORMULA - raising - ZCX_EXCEL . - methods SET_CELL_STYLE - importing - !IP_COLUMN type SIMPLE - !IP_ROW type ZEXCEL_CELL_ROW - !IP_STYLE type ZEXCEL_CELL_STYLE - raising - ZCX_EXCEL . - methods SET_COLUMN_WIDTH - importing - !IP_COLUMN type SIMPLE - !IP_WIDTH_FIX type SIMPLE default 0 - !IP_WIDTH_AUTOSIZE type FLAG default 'X' - raising - ZCX_EXCEL . - methods SET_DEFAULT_EXCEL_DATE_FORMAT - importing - !IP_DEFAULT_EXCEL_DATE_FORMAT type ZEXCEL_NUMBER_FORMAT - raising - ZCX_EXCEL . - methods SET_MERGE - importing - !IP_COLUMN_START type ZEXCEL_CELL_COLUMN_ALPHA optional - !IP_COLUMN_END type ZEXCEL_CELL_COLUMN_ALPHA optional - !IP_ROW type ZEXCEL_CELL_ROW optional - !IP_ROW_TO type ZEXCEL_CELL_ROW optional - raising - ZCX_EXCEL . - methods SET_PRINT_GRIDLINES - importing - !I_PRINT_GRIDLINES type ZEXCEL_PRINT_GRIDLINES . - methods SET_ROW_HEIGHT - importing - !IP_ROW type SIMPLE - !IP_HEIGHT_FIX type SIMPLE - raising - ZCX_EXCEL . - methods SET_SHOW_GRIDLINES - importing - !I_SHOW_GRIDLINES type ZEXCEL_SHOW_GRIDLINES . - methods SET_SHOW_ROWCOLHEADERS - importing - !I_SHOW_ROWCOLHEADERS type ZEXCEL_SHOW_ROWCOLHEADER . - methods SET_TABCOLOR - importing - !IV_TABCOLOR type ZEXCEL_S_TABCOLOR . - methods SET_TABLE - importing - !IP_TABLE type STANDARD TABLE - !IP_HDR_STYLE type ZEXCEL_CELL_STYLE optional - !IP_BODY_STYLE type ZEXCEL_CELL_STYLE optional - !IP_TABLE_TITLE type STRING - !IP_TOP_LEFT_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA default 'B' - !IP_TOP_LEFT_ROW type ZEXCEL_CELL_ROW default 3 - !IP_TRANSPOSE type XFELD optional - !IP_NO_HEADER type XFELD optional - raising - ZCX_EXCEL . - methods SET_TITLE - importing - !IP_TITLE type ZEXCEL_SHEET_TITLE - raising - ZCX_EXCEL . - methods IS_CELL_MERGED - importing - !IP_COLUMN type SIMPLE - !IP_ROW type ZEXCEL_CELL_ROW - returning - value(RP_IS_MERGED) type ABAP_BOOL - raising - ZCX_EXCEL . - protected section. - private section. - - types: - BEGIN OF mty_s_font_metric, + + + + + + + + + + + + + *"* local class implementation for public class *"* use this source file for the implementation part of *"* local helper classes @@ -664,49 +189,66 @@ CLASS lcl_gui_alv_grid DEFINITION INHERITING FROM cl_gui_alv_grid. ENDCLASS. "lcl_gui_alv_grid DEFINITION *"* use this source file for any macro definitions you need *"* in the implementation part of the class + + + + + + + + + + + + + + + + ABAP SLIS SOI - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + method ZIF_EXCEL_SHEET_PRINTSETTINGS~CLEAR_PRINT_REPEAT_COLUMNS. @@ -723,8 +265,7 @@ ENDCLASS. "lcl_gui_alv_grid DEFINITION me->print_title_set_range( ). - -endmethod. + endmethod. method ZIF_EXCEL_SHEET_PRINTSETTINGS~CLEAR_PRINT_REPEAT_ROWS. @@ -742,28 +283,25 @@ endmethod. me->print_title_set_range( ). - -endmethod. + endmethod. method ZIF_EXCEL_SHEET_PRINTSETTINGS~GET_PRINT_REPEAT_COLUMNS. ev_columns_from = me->print_title_col_from. ev_columns_to = me->print_title_col_to. - -endmethod. + endmethod. method ZIF_EXCEL_SHEET_PRINTSETTINGS~GET_PRINT_REPEAT_ROWS. ev_rows_from = me->print_title_row_from. ev_rows_to = me->print_title_row_to. - -endmethod. + endmethod. method ZIF_EXCEL_SHEET_PRINTSETTINGS~SET_PRINT_REPEAT_COLUMNS. *--------------------------------------------------------------------* * issue#235 - repeat rows/columns -* - Stefan Schmöcker, 2012-12-02 +* - Stefan Schmöcker, 2012-12-02 *--------------------------------------------------------------------* DATA: lv_col_from_int TYPE i, @@ -806,14 +344,13 @@ endmethod. *--------------------------------------------------------------------* me->print_title_set_range( ). - -endmethod. + endmethod. method ZIF_EXCEL_SHEET_PRINTSETTINGS~SET_PRINT_REPEAT_ROWS. *--------------------------------------------------------------------* * issue#235 - repeat rows/columns -* - Stefan Schmöcker, 2012-12-02 +* - Stefan Schmöcker, 2012-12-02 *--------------------------------------------------------------------* DATA: lv_errormessage TYPE string. @@ -853,8 +390,7 @@ endmethod. me->print_title_set_range( ). - -endmethod. + endmethod. method ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE. @@ -863,8 +399,7 @@ endmethod. ELSE. ep_style = me->excel->get_default_style( ). ENDIF. - -endmethod. + endmethod. method ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE. @@ -878,14 +413,12 @@ endmethod. ZIF_EXCEL_SHEET_PROPERTIES~zoomscale_normal = 100. ZIF_EXCEL_SHEET_PROPERTIES~zoomscale_pagelayoutview = 100 . ZIF_EXCEL_SHEET_PROPERTIES~zoomscale_sheetlayoutview = 100 . - -endmethod. + endmethod. method ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE. zif_excel_sheet_properties~style = ip_style. - -endmethod. + endmethod. method ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE. @@ -911,23 +444,20 @@ endmethod. me->zif_excel_sheet_protection~sheet = zif_excel_sheet_protection=>c_noactive. me->zif_excel_sheet_protection~sort = zif_excel_sheet_protection=>c_noactive. - -endmethod. + endmethod. method ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME. me->zif_excel_sheet_vba_project~codename = ip_codename. - -endmethod. + endmethod. method ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR. me->zif_excel_sheet_vba_project~codename_pr = ip_codename_pr. - -endmethod. + endmethod. - - + + method ADD_DRAWING. CASE ip_drawing->get_type( ). WHEN zcl_excel_drawing=>type_image. @@ -935,43 +465,39 @@ endmethod. WHEN zcl_excel_drawing=>type_chart. charts->include( ip_drawing ). ENDCASE. - -endmethod. + endmethod. - - + + method ADD_NEW_CONDITIONAL_STYLE. CREATE OBJECT eo_conditional_style. conditional_styles->add( eo_conditional_style ). - -endmethod. + endmethod. - - + + method ADD_NEW_DATA_VALIDATION. CREATE OBJECT eo_data_validation. data_validations->add( eo_data_validation ). - -endmethod. + endmethod. - - + + method ADD_NEW_RANGE. * Create default blank range CREATE OBJECT eo_range. ranges->add( eo_range ). - -endmethod. + endmethod. - - - - - - - + + + + + + + method BIND_ALV. data: lo_converter type ref to zcl_excel_converter. @@ -992,29 +518,28 @@ endmethod. catch zcx_excel . endtry. - -endmethod. + endmethod. - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + method BIND_ALV_OLE2. *--------------------------------------------------------------------* * Method description: @@ -2570,7 +2095,7 @@ endmethod. search contentsitem-value for 'E'. if sy-fdpos eq 0. -* bring negative sign to front of amount +* use prefix notation for signed numbers translate contentsitem-value using '- '. condense contentsitem-value no-gaps. @@ -2584,8 +2109,8 @@ endmethod. set country space. * Hier wird nur die korrekte Kommaseparatierung gemacht, wenn die * Zeichen einer -* Zahl enthalten sind. Das ist f#ƒÂ#r Timestamps, die auch ":" enthalten. -* F#ƒÂ#r die +* Zahl enthalten sind. Das ist für Timestamps, die auch ":" enthalten. +* Für die * darf keine Kommaseparierung stattfinden. * Changing for correction request - Y6BK041073 if contentsitem-value co '0123456789.,-+E '. @@ -3082,19 +2607,18 @@ endmethod. li_document_size. close_document. - -endmethod. + endmethod. - - - - - - + + + + + + method BIND_TABLE. *--------------------------------------------------------------------* * issue #230 - Pimp my Code -* - Stefan Schmöcker, (wi p) 2012-12-01 +* - Stefan Schmöcker, (wi p) 2012-12-01 * - ... * aligning code * message made to support multilinguality @@ -3351,16 +2875,14 @@ endmethod. ENDIF. " << Issue #291 - -endmethod. + endmethod. - - - - - - method CALCULATE_CELL_WIDTH. -*--------------------------------------------------------------------* + + + + + + *--------------------------------------------------------------------* * issue #293 - Roberto Bianco * - Christian Assig 2014-03-14 * @@ -3370,6 +2892,7 @@ endmethod. * - Add additional width for auto filter buttons * - Add cell padding to simulate Excel behavior *--------------------------------------------------------------------* +METHOD calculate_cell_width. CONSTANTS: lc_default_font_name TYPE zexcel_style_font_name VALUE 'Calibri', "#EC NOTEXT @@ -3606,10 +3129,10 @@ endmethod. ADD 2 TO ep_width. ENDIF. -endmethod. +ENDMETHOD. - - + + method CALCULATE_COLUMN_WIDTHS. TYPES: BEGIN OF t_auto_size, @@ -3668,7 +3191,7 @@ endmethod. * ). * " For an easy start we just take the number of characters as the width * width = strlen( cell_value ). -* " Addition to solve issue #120, contribution by Stefan Schm#ƒÂ#cker +* " Addition to solve issue #120, contribution by Stefan Schm#ƒÂ#cker * " Calculate width using Font Size and Font Type * IF cell_style IS BOUND * AND cell_style->font IS BOUND. @@ -3690,120 +3213,110 @@ endmethod. ENDLOOP. ENDIF. - -endmethod. + endmethod. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - method CHANGE_CELL_STYLE. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + METHOD change_cell_style. " issue # 139 DATA: stylemapping TYPE zexcel_s_stylemapping, @@ -4037,18 +3550,6 @@ endmethod. fill_bgcolor_theme fill-bgcolor-theme, fill_bgcolor_tint fill-bgcolor-tint, - fill_gradtype_type fill-gradtype-TYPE, - fill_gradtype_degree fill-gradtype-DEGREE, - fill_gradtype_bottom fill-gradtype-BOTTOM, - fill_gradtype_left fill-gradtype-LEFT, - fill_gradtype_top fill-gradtype-TOP, - fill_gradtype_right fill-gradtype-RIGHT, - fill_gradtype_position1 fill-gradtype-POSITION1, - fill_gradtype_position2 fill-gradtype-POSITION2, - fill_gradtype_position3 fill-gradtype-POSITION3, - - - borders_diagonal_mode borders-diagonal_mode, alignment_horizontal alignment-horizontal, alignment_vertical alignment-vertical, @@ -4111,12 +3612,12 @@ endmethod. ip_row = ip_row ip_style = ep_guid ). -endmethod. +ENDMETHOD. - - - - + + + + method CONSTRUCTOR. DATA: lv_title TYPE zexcel_sheet_title. @@ -4160,22 +3661,36 @@ endmethod. upper_cell-cell_row = 1. upper_cell-cell_column = 1. - -endmethod. + endmethod. - + method DELETE_MERGE. DELETE sheet_content_merge INDEX 1. DELETE sheet_content_merge INDEX 1. - -endmethod. + endmethod. - - - - + + + + + METHOD delete_row_outline. + + DELETE me->mt_row_outlines WHERE row_from = iv_row_from + AND row_to = iv_row_to. + IF sy-subrc <> 0. " didn't find outline that was to be deleted + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = 'Row outline to be deleted does not exist'. + ENDIF. + +ENDMETHOD. + + + + + method FREEZE_PANES. data: lv_xsplit type i, lv_ysplit type i. @@ -4200,11 +3715,10 @@ endmethod. freeze_pane_cell_column = ip_num_columns + 1. freeze_pane_cell_row = ip_num_rows + 1. - -endmethod. + endmethod. - - + + method GENERATE_TITLE. DATA: lo_worksheets_iterator TYPE REF TO cl_object_collection_iterator, lo_worksheet TYPE REF TO zcl_excel_worksheet, @@ -4236,12 +3750,11 @@ endmethod. ADD 1 TO sheetnumber. ENDDO. - -endmethod. + endmethod. - - - + + + method GET_ACTIVE_CELL. DATA: lv_active_column TYPE zexcel_cell_column_alpha, @@ -4253,17 +3766,16 @@ endmethod. SHIFT lv_active_row LEFT DELETING LEADING space. CONCATENATE lv_active_column lv_active_row INTO ep_active_cell. - -endmethod. + endmethod. - - - - - - - - + + + + + + + + method GET_CELL. DATA: lv_column TYPE zexcel_cell_column, @@ -4280,7 +3792,7 @@ endmethod. ep_value = ls_sheet_content-cell_value. ep_guid = ls_sheet_content-cell_style. " issue 139 - added this to be used for columnwidth calculation - " Addition to solve issue #120, contribution by Stefan Schm#ƒÂ#cker + " Addition to solve issue #120, contribution by Stefan Schm#ƒÂ#cker DATA: style_iterator TYPE REF TO cl_object_collection_iterator, style TYPE REF TO zcl_excel_style. IF ep_style IS REQUESTED. @@ -4293,13 +3805,12 @@ endmethod. ENDIF. ENDWHILE. ENDIF. - -endmethod. + endmethod. - - - - + + + + method GET_COLUMN_DIMENSION. FIELD-SYMBOLS: <fs_column_dimension> LIKE LINE OF column_dimensions. DATA: lv_column_alpha TYPE zexcel_cell_column_alpha. " issue #155 - less restrictive typing for ip_column @@ -4321,41 +3832,36 @@ endmethod. r_column_dimension = <fs_column_dimension>-column_dimension. ENDIF. - -endmethod. + endmethod. - - + + method GET_COLUMN_DIMENSIONS. r_column_dimension[] = me->column_dimensions[]. - -endmethod. + endmethod. - - + + method GET_COND_STYLES_ITERATOR. eo_iterator = me->conditional_styles->get_iterator( ). - -endmethod. + endmethod. - - + + method GET_DATA_VALIDATIONS_ITERATOR. eo_iterator = me->data_validations->get_iterator( ). - -endmethod. + endmethod. - - + + method GET_DATA_VALIDATIONS_SIZE. ep_size = me->data_validations->size( ). - -endmethod. + endmethod. - - + + method GET_DEFAULT_COLUMN_DIMENSION. IF me->default_column_dimension IS NOT BOUND. CREATE OBJECT me->default_column_dimension @@ -4366,11 +3872,10 @@ endmethod. ENDIF. r_column_dimension = me->default_column_dimension. - -endmethod. + endmethod. - - + + method GET_DEFAULT_EXCEL_DATE_FORMAT. CONSTANTS: c_lang_e TYPE lang VALUE 'E'. @@ -4393,11 +3898,10 @@ endmethod. ENDIF. ep_default_excel_date_format = default_excel_date_format. - -endmethod. + endmethod. - - + + method GET_DEFAULT_EXCEL_TIME_FORMAT. DATA: l_timefm TYPE xutimefm. @@ -4430,23 +3934,21 @@ endmethod. ENDCASE. ep_default_excel_time_format = default_excel_time_format. - -endmethod. + endmethod. - - + + method GET_DEFAULT_ROW_DIMENSION. IF me->default_row_dimension IS NOT BOUND. CREATE OBJECT me->default_row_dimension. ENDIF. r_row_dimension = me->default_row_dimension. - -endmethod. + endmethod. - - - + + + method GET_DIMENSION_RANGE. me->update_dimension_range( ). @@ -4462,12 +3964,11 @@ endmethod. CONCATENATE upper_cell-cell_coords ':' lower_cell-cell_coords INTO ep_dimension_range. ENDIF. - -endmethod. + endmethod. - - - + + + method GET_DRAWINGS. DATA: lo_drawing TYPE REF TO zcl_excel_drawing, @@ -4495,12 +3996,11 @@ endmethod. ENDWHILE. WHEN OTHERS. ENDCASE. - -endmethod. + endmethod. - - - + + + method GET_DRAWINGS_ITERATOR. CASE ip_type. WHEN zcl_excel_drawing=>type_image. @@ -4508,62 +4008,55 @@ endmethod. WHEN zcl_excel_drawing=>type_chart. eo_iterator = charts->get_iterator( ). ENDCASE. - -endmethod. + endmethod. - - - + + + method GET_FREEZE_CELL. ep_row = me->freeze_pane_cell_row. ep_column = me->freeze_pane_cell_column. - -endmethod. + endmethod. - - - method GET_GUID. + + + METHOD get_guid. ep_guid = me->guid. - -endmethod. +ENDMETHOD. - - - + + + method GET_HIGHEST_COLUMN. me->update_dimension_range( ). r_highest_column = me->lower_cell-cell_column. - -endmethod. + endmethod. - - - - method GET_HIGHEST_ROW. + + + + METHOD get_highest_row. me->update_dimension_range( ). r_highest_row = me->lower_cell-cell_row. - -endmethod. +ENDMETHOD. - - + + method GET_HYPERLINKS_ITERATOR. eo_iterator = hyperlinks->get_iterator( ). - -endmethod. + endmethod. - - + + method GET_HYPERLINKS_SIZE. ep_size = hyperlinks->size( ). - -endmethod. + endmethod. - - - + + + method GET_MERGE. DATA: lv_column_start TYPE string, @@ -4635,72 +4128,78 @@ endmethod. * SEPARATED BY ':'. * ENDIF. - -endmethod. + endmethod. - - + + method GET_RANGES_ITERATOR. eo_iterator = me->ranges->get_iterator( ). - -endmethod. + endmethod. - - - - method GET_ROW_DIMENSION. - FIELD-SYMBOLS: <fs_row_dimension> LIKE LINE OF row_dimensions. + + + + METHOD GET_ROW_DIMENSION. - READ TABLE me->row_dimensions ASSIGNING <fs_row_dimension> - WITH KEY row = ip_row. + FIELD-SYMBOLS: <ls_row_dimension> LIKE LINE OF me->row_dimensions. - IF NOT <fs_row_dimension> IS ASSIGNED. + DATA: ls_row_dimension LIKE LINE OF me->row_dimensions. + + READ TABLE me->row_dimensions ASSIGNING <ls_row_dimension> + WITH TABLE KEY row = ip_row. + + IF NOT <ls_row_dimension> IS ASSIGNED. CREATE OBJECT r_row_dimension EXPORTING ip_index = ip_row. - APPEND INITIAL LINE TO me->row_dimensions ASSIGNING <fs_row_dimension>. - <fs_row_dimension>-row = ip_row. - <fs_row_dimension>-row_dimension = r_row_dimension. + ls_row_dimension-row = ip_row. + ls_row_dimension-row_dimension = r_row_dimension. + INSERT ls_row_dimension INTO TABLE me->row_dimensions. ELSE. - r_row_dimension = <fs_row_dimension>-row_dimension. + r_row_dimension = <ls_row_dimension>-row_dimension. ENDIF. - -endmethod. +ENDMETHOD. - - - method GET_ROW_DIMENSIONS. + + + METHOD get_row_dimensions. + r_row_dimension[] = me->row_dimensions[]. -endmethod. +ENDMETHOD. - - + + + METHOD get_row_outlines. + + rt_row_outlines = me->mt_row_outlines. + +ENDMETHOD. + + + method GET_TABCOLOR. ev_tabcolor = me->tabcolor. - -endmethod. + endmethod. - - + + method GET_TABLES_ITERATOR. eo_iterator = tables->if_object_collection~get_iterator( ). - -endmethod. + endmethod. - - + + method GET_TABLES_SIZE. ep_size = tables->if_object_collection~size( ). - -endmethod. + endmethod. - - - + + + method GET_TITLE. DATA lv_value TYPE string. IF ip_escaped EQ abap_true. @@ -4709,13 +4208,12 @@ endmethod. ELSE. ep_title = me->title. ENDIF. - -endmethod. + endmethod. - - - - + + + + method GET_VALUE_TYPE. DATA: lo_addit TYPE REF TO cl_abap_elemdescr, ls_dfies TYPE dfies, @@ -4767,14 +4265,13 @@ endmethod. ENDIF. ENDIF. - -endmethod. + endmethod. - - - - - + + + + + method IS_CELL_MERGED. DATA lt_merge_range TYPE string_table. @@ -4794,11 +4291,11 @@ endmethod. ENDLOOP. endmethod. - + method PRINT_TITLE_SET_RANGE. *--------------------------------------------------------------------* * issue#235 - repeat rows/columns -* - Stefan Schmöcker, 2012-12-02 +* - Stefan Schmoecker, 2012-12-02 *--------------------------------------------------------------------* @@ -4891,19 +4388,18 @@ endmethod. - -endmethod. + endmethod. - - - - - - - - - - + + + + + + + + + + method SET_CELL. DATA: lv_column TYPE zexcel_cell_column, @@ -4934,7 +4430,7 @@ endmethod. * Begin of change issue #152 - don't touch exisiting style if only value is passed * lv_style_guid = ip_style. lv_column = zcl_excel_common=>convert_column2int( ip_column ). - READ TABLE sheet_content ASSIGNING <fs_sheet_content> WITH TABLE KEY cell_row = ip_row " Changed to access via table key , Stefan Schmöcker, 2013-08-03 + READ TABLE sheet_content ASSIGNING <fs_sheet_content> WITH TABLE KEY cell_row = ip_row " Changed to access via table key , Stefan Schmöcker, 2013-08-03 cell_column = lv_column. IF sy-subrc = 0. IF ip_style IS INITIAL. @@ -5128,14 +4624,13 @@ endmethod. ENDIF. * End of Fix issue #162 - -endmethod. + endmethod. - - - - - + + + + + method SET_CELL_FORMULA. DATA: lv_column TYPE zexcel_cell_column, @@ -5163,14 +4658,13 @@ endmethod. <sheet_content>-cell_formula = ip_formula. - -endmethod. + endmethod. - - - - - + + + + + method SET_CELL_STYLE. DATA: lv_column TYPE zexcel_cell_column, @@ -5194,14 +4688,13 @@ endmethod. set_cell( ip_column = ip_column ip_row = ip_row ip_value = '' ip_style = ip_style ). ENDIF. - -endmethod. + endmethod. - - - - - + + + + + method SET_COLUMN_WIDTH. DATA: column_dimension TYPE REF TO zcl_excel_worksheet_columndime. DATA: width TYPE float. @@ -5231,12 +4724,11 @@ endmethod. column_dimension->set_auto_size( ip_width_autosize ). - -endmethod. + endmethod. - - - + + + method SET_DEFAULT_EXCEL_DATE_FORMAT. IF ip_default_excel_date_format IS INITIAL. @@ -5246,15 +4738,14 @@ endmethod. ENDIF. default_excel_date_format = ip_default_excel_date_format. - -endmethod. + endmethod. - - - - - - + + + + + + method SET_MERGE. DATA: lv_column_start TYPE zexcel_cell_column, @@ -5289,20 +4780,18 @@ endmethod. CONCATENATE ip_column_end lv_row_alpha INTO ls_sheet_content-cell_coords. INSERT ls_sheet_content INTO TABLE sheet_content_merge. - -endmethod. + endmethod. - - + + method SET_PRINT_GRIDLINES. me->print_gridlines = i_print_gridlines. - -endmethod. + endmethod. - - - - + + + + method SET_ROW_HEIGHT. DATA: row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi. DATA: height TYPE float. @@ -5328,40 +4817,78 @@ endmethod. - -endmethod. + endmethod. - - + + + + + + METHOD set_row_outline. + + DATA: ls_row_outline LIKE LINE OF me->mt_row_outlines. + FIELD-SYMBOLS: <ls_row_outline> LIKE LINE OF me->mt_row_outlines. + + READ TABLE me->mt_row_outlines ASSIGNING <ls_row_outline> WITH TABLE KEY row_from = iv_row_from + row_to = iv_row_to. + IF sy-subrc <> 0. + IF iv_row_from <= 0. + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = 'First row of outline must be a positive number'. + ENDIF. + IF iv_row_to < iv_row_from. + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = 'Last row of outline may not be less than first line of outline'. + ENDIF. + ls_row_outline-row_from = iv_row_from. + ls_row_outline-row_to = iv_row_to. + INSERT ls_row_outline INTO TABLE me->mt_row_outlines ASSIGNING <ls_row_outline>. + ENDIF. + + CASE iv_collapsed. + + WHEN abap_true + OR abap_false. + <ls_row_outline>-collapsed = iv_collapsed. + + WHEN OTHERS. + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = 'Unknown collapse state'. + + ENDCASE. +ENDMETHOD. + + + method SET_SHOW_GRIDLINES. me->show_gridlines = i_show_gridlines. - -endmethod. + endmethod. - - + + method SET_SHOW_ROWCOLHEADERS. me->show_rowcolheaders = i_show_rowcolheaders. - -endmethod. + endmethod. - - + + method SET_TABCOLOR. me->tabcolor = iv_tabcolor. - -endmethod. + endmethod. - - - - - - - - - - + + + + + + + + + + method SET_TABLE. DATA: lo_tabdescr TYPE REF TO cl_abap_structdescr, @@ -5434,29 +4961,28 @@ endmethod. ENDIF. ENDLOOP. - -endmethod. + endmethod. - - - + + + method SET_TITLE. *--------------------------------------------------------------------* * ToDos: -* 2do§1 The current coding for replacing a named ranges name +* 2do§1 The current coding for replacing a named ranges name * after renaming a sheet should be checked if it is * really working if sheetname should be escaped *--------------------------------------------------------------------* *--------------------------------------------------------------------* * issue #230 - Pimp my Code -* - Stefan Schmöcker, (wip ) 2012-12-08 +* - Stefan Schmoecker, (wip ) 2012-12-08 * - ... * changes: aligning code * message made to support multilinguality *--------------------------------------------------------------------* * issue#243 - ' is not allowed as first character in sheet title -* - Stefan Schmöcker, 2012-12-02 +* - Stefan Schmoecker, 2012-12-02 * changes: added additional check for ' as first character *--------------------------------------------------------------------* DATA: lo_worksheets_iterator TYPE REF TO cl_object_collection_iterator, @@ -5519,7 +5045,7 @@ endmethod. * After changing this worksheet's title we have to adjust * all ranges that are referring to this worksheet. *--------------------------------------------------------------------* -* 2do§1 - Check if the following quickfix is solid +* 2do§1 - Check if the following quickfix is solid * I fear it isn't - but this implementation is better then * nothing at all since it handles a supposed majority of cases *--------------------------------------------------------------------* @@ -5538,12 +5064,11 @@ endmethod. ENDWHILE. - -endmethod. + endmethod. - - - method UPDATE_DIMENSION_RANGE. + + + METHOD update_dimension_range. DATA: ls_sheet_content TYPE zexcel_s_cell_data, lt_sheet_content TYPE zexcel_t_cell_data_unsorted, @@ -5582,7 +5107,6 @@ endmethod. SHIFT lv_row_alpha LEFT DELETING LEADING space. CONCATENATE lv_column_alpha lv_row_alpha INTO lower_cell-cell_coords. - -endmethod. +ENDMETHOD. diff --git a/ZA2X/CLAS/ZCL_EXCEL_WRITER_2007.slnk b/ZA2X/CLAS/ZCL_EXCEL_WRITER_2007.slnk index 13bfd07..bdcd5ab 100644 --- a/ZA2X/CLAS/ZCL_EXCEL_WRITER_2007.slnk +++ b/ZA2X/CLAS/ZCL_EXCEL_WRITER_2007.slnk @@ -1,132 +1,6 @@ - - - - *----------------------------------------------------------------------* -* CLASS ZCL_EXCEL_WRITER_2007 DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -class ZCL_EXCEL_WRITER_2007 definition - public - create public . - -public section. - - interfaces ZIF_EXCEL_WRITER . - protected section. - - constants C_CONTENT_TYPES type STRING value '[Content_Types].xml'. "#EC NOTEXT - constants C_DOCPROPS_APP type STRING value 'docProps/app.xml'. "#EC NOTEXT - constants C_DOCPROPS_CORE type STRING value 'docProps/core.xml'. "#EC NOTEXT - constants C_RELATIONSHIPS type STRING value '_rels/.rels'. "#EC NOTEXT - constants C_XL_DRAWINGS type STRING value 'xl/drawings/drawing#.xml'. "#EC NOTEXT - constants C_XL_DRAWINGS_RELS type STRING value 'xl/drawings/_rels/drawing#.xml.rels'. "#EC NOTEXT - constants C_XL_RELATIONSHIPS type STRING value 'xl/_rels/workbook.xml.rels'. "#EC NOTEXT - constants C_XL_SHAREDSTRINGS type STRING value 'xl/sharedStrings.xml'. "#EC NOTEXT - constants C_XL_CALCCHAIN type STRING value 'xl/calcChain.xml'. "#EC NOTEXT - constants C_XL_SHEET type STRING value 'xl/worksheets/sheet#.xml'. "#EC NOTEXT - constants C_XL_SHEET_RELS type STRING value 'xl/worksheets/_rels/sheet#.xml.rels'. "#EC NOTEXT - constants C_XL_STYLES type STRING value 'xl/styles.xml'. "#EC NOTEXT - constants C_XL_THEME type STRING value 'xl/theme/theme1.xml'. "#EC NOTEXT - constants C_XL_WORKBOOK type STRING value 'xl/workbook.xml'. "#EC NOTEXT - data EXCEL type ref to ZCL_EXCEL . - constants C_XL_PRINTERSETTINGS type STRING value 'xl/printerSettings/printerSettings#.bin'. "#EC NOTEXT - - methods CREATE - returning - value(EP_EXCEL) type XSTRING . - methods CREATE_CONTENT_TYPES - returning - value(EP_CONTENT) type XSTRING . - methods CREATE_DOCPROPS_APP - returning - value(EP_CONTENT) type XSTRING . - methods CREATE_DOCPROPS_CORE - returning - value(EP_CONTENT) type XSTRING . - methods CREATE_RELATIONSHIPS - returning - value(EP_CONTENT) type XSTRING . - methods CREATE_XL_CHARTS - importing - !IO_DRAWING type ref to ZCL_EXCEL_DRAWING - returning - value(EP_CONTENT) type XSTRING . - methods CREATE_XL_DRAWINGS - importing - !IO_WORKSHEET type ref to ZCL_EXCEL_WORKSHEET - returning - value(EP_CONTENT) type XSTRING . - methods CREATE_XL_DRAWING_ANCHOR - importing - !IO_DRAWING type ref to ZCL_EXCEL_DRAWING - !IO_DOCUMENT type ref to IF_IXML_DOCUMENT - !IP_INDEX type I - returning - value(EP_ANCHOR) type ref to IF_IXML_ELEMENT . - methods CREATE_XL_DRAWINGS_RELS - importing - !IO_WORKSHEET type ref to ZCL_EXCEL_WORKSHEET - returning - value(EP_CONTENT) type XSTRING . - methods CREATE_XL_RELATIONSHIPS - returning - value(EP_CONTENT) type XSTRING . - methods CREATE_XL_SHAREDSTRINGS - returning - value(EP_CONTENT) type XSTRING . - methods CREATE_XL_SHEET - importing - !IO_WORKSHEET type ref to ZCL_EXCEL_WORKSHEET - !IV_ACTIVE type FLAG default '' - returning - value(EP_CONTENT) type XSTRING - raising - ZCX_EXCEL . - methods CREATE_XL_SHEET_RELS - importing - !IO_WORKSHEET type ref to ZCL_EXCEL_WORKSHEET - !IV_DRAWING_INDEX type I - returning - value(EP_CONTENT) type XSTRING . - methods CREATE_XL_STYLES - returning - value(EP_CONTENT) type XSTRING . - methods CREATE_XL_STYLES_COLOR_NODE - importing - !IO_DOCUMENT type ref to IF_IXML_DOCUMENT - !IO_PARENT type ref to IF_IXML_ELEMENT - !IV_COLOR_ELEM_NAME type STRING default 'color' - !IS_COLOR type ZEXCEL_S_STYLE_COLOR . - methods CREATE_XL_TABLE - importing - !IO_TABLE type ref to ZCL_EXCEL_TABLE - returning - value(EP_CONTENT) type XSTRING . - methods CREATE_XL_THEME - returning - value(EP_CONTENT) type XSTRING . - methods CREATE_XL_WORKBOOK - returning - value(EP_CONTENT) type XSTRING . - private section. - - constants C_OFF type STRING value '0'. "#EC NOTEXT - constants C_ON type STRING value '1'. "#EC NOTEXT - data SHARED_STRINGS type ZEXCEL_T_SHARED_STRING . - data STYLES_COND_MAPPING type ZEXCEL_T_STYLES_COND_MAPPING . - data STYLES_MAPPING type ZEXCEL_T_STYLES_MAPPING . - - methods FLAG2BOOL - importing - !IP_FLAG type FLAG - returning - value(EP_BOOLEAN) type CHAR5 . - methods GET_SHARED_STRING_INDEX - importing - !IP_CELL_VALUE type ZEXCEL_CELL_VALUE - returning - value(EP_INDEX) type INT4 . + + + *"* local class implementation for public class *"* use this source file for the implementation part of *"* local helper classes @@ -135,37 +9,36 @@ public section. *"* implementation or private method's signature *"* use this source file for any macro definitions you need *"* in the implementation part of the class - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + method ZIF_EXCEL_WRITER~WRITE_FILE. me->excel = io_excel. ep_file = me->create( ). - -endmethod. + endmethod. - - + + method CREATE. * Office 2007 file format is a cab of several xml files with extension .xlsx @@ -359,11 +232,10 @@ endmethod. * STEP 12: Create the final zip ep_excel = lo_zip->save( ). - -endmethod. + endmethod. - - + + method CREATE_CONTENT_TYPES. @@ -635,11 +507,10 @@ endmethod. lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). lo_renderer->render( ). - -endmethod. + endmethod. - - + + method CREATE_DOCPROPS_APP. @@ -859,11 +730,10 @@ endmethod. lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). lo_renderer->render( ). - -endmethod. + endmethod. - - + + method CREATE_DOCPROPS_CORE. @@ -994,11 +864,10 @@ endmethod. lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). lo_renderer->render( ). - -endmethod. + endmethod. - - + + method CREATE_RELATIONSHIPS. @@ -1094,12 +963,11 @@ endmethod. lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). lo_renderer->render( ). - -endmethod. + endmethod. - - - + + + method CREATE_XL_CHARTS. @@ -2000,12 +1868,11 @@ endmethod. lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). lo_renderer->render( ). - -endmethod. + endmethod. - - - + + + method CREATE_XL_DRAWINGS. @@ -2081,12 +1948,11 @@ endmethod. lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). lo_renderer->render( ). - -endmethod. + endmethod. - - - + + + method CREATE_XL_DRAWINGS_RELS. ** Constant node name @@ -2181,14 +2047,13 @@ endmethod. lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). lo_renderer->render( ). - -endmethod. + endmethod. - - - - - + + + + + method CREATE_XL_DRAWING_ANCHOR. ** Constant node name @@ -2496,11 +2361,10 @@ endmethod. parent = io_document ). ep_anchor->append_child( new_child = lo_element_clientdata ). - -endmethod. + endmethod. - - + + method CREATE_XL_RELATIONSHIPS. @@ -2645,11 +2509,10 @@ endmethod. lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). lo_renderer->render( ). - -endmethod. + endmethod. - - + + method CREATE_XL_SHAREDSTRINGS. @@ -2767,22 +2630,21 @@ endmethod. lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). lo_renderer->render( ). - -endmethod. + endmethod. - - - - - - method CREATE_XL_SHEET. + + + + + + METHOD create_xl_sheet. *--------------------------------------------------------------------* * issue #330 - Adding ColorScale conditional formatting * - Ivan Femia, 2014-08-25 *--------------------------------------------------------------------* TYPES: BEGIN OF colors, - colorrgb TYPE zexcel_color, + colorrgb TYPE zexcel_color, END OF colors. *--------------------------------------------------------------------* @@ -2791,22 +2653,25 @@ endmethod. *--------------------------------------------------------------------* TYPES: BEGIN OF cfvo, - value TYPE zexcel_conditional_value, - type TYPE zexcel_conditional_type, + value TYPE zexcel_conditional_value, + type TYPE zexcel_conditional_type, END OF cfvo. *--------------------------------------------------------------------* * issue #220 - If cell in tables-area don't use default from row or column or sheet - Declarations 1 - start *--------------------------------------------------------------------* TYPES: BEGIN OF lty_table_area, - left TYPE i, - right TYPE i, - top TYPE i, - bottom TYPE i, + left TYPE i, + right TYPE i, + top TYPE i, + bottom TYPE i, END OF lty_table_area. *--------------------------------------------------------------------* * issue #220 - If cell in tables-area don't use default from row or column or sheet - Declarations 1 - end *--------------------------------------------------------------------* +** Constants + CONSTANTS: + lc_dummy_cell_content TYPE zexcel_s_cell_data-cell_value VALUE '})~~~ This is a dummy value for ABAP2XLSX and you should never find this in a real excelsheet Ihope'. ** Constant node name @@ -2954,11 +2819,11 @@ endmethod. lc_xml_attr_tabcolor_rgb TYPE string VALUE 'rgb', lc_xml_attr_tabcolor_theme TYPE string VALUE 'theme', " Node namespace - lc_xml_node_ns TYPE string VALUE 'http://schemas.openxmlformats.org/spreadsheetml/2006/main', - lc_xml_node_r_ns TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships', - lc_xml_node_comp_ns TYPE string VALUE 'http://schemas.openxmlformats.org/markup-compatibility/2006', - lc_xml_node_comp_pref TYPE string VALUE 'x14ac', - lc_xml_node_ig_ns TYPE string VALUE 'http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac'. + lc_xml_node_ns TYPE string VALUE 'http://schemas.openxmlformats.org/spreadsheetml/2006/main', + lc_xml_node_r_ns TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships', + lc_xml_node_comp_ns TYPE string VALUE 'http://schemas.openxmlformats.org/markup-compatibility/2006', + lc_xml_node_comp_pref TYPE string VALUE 'x14ac', + lc_xml_node_ig_ns TYPE string VALUE 'http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac'. DATA: lo_ixml TYPE REF TO if_ixml, lo_document TYPE REF TO if_ixml_document, @@ -2976,6 +2841,7 @@ endmethod. lo_data_validation TYPE REF TO zcl_excel_data_validation, lo_table TYPE REF TO zcl_excel_table, row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi, + lo_row_dim_empty TYPE REF TO zcl_excel_worksheet_rowdimensi, default_col_dimension TYPE REF TO zcl_excel_worksheet_columndime, default_row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi. @@ -3008,6 +2874,13 @@ endmethod. lv_relation_id TYPE i VALUE 0, outline_level_row TYPE i VALUE 0, outline_level_col TYPE i VALUE 0, + lv_current_row TYPE i, + lv_next_row TYPE i, + ls_sheet_content LIKE LINE OF io_worksheet->sheet_content, + ls_sheet_content_empty LIKE LINE OF io_worksheet->sheet_content, + lv_last_row TYPE i, + lts_row_dimensions TYPE zexcel_t_worksheet_rowdimensio, + lts_row_outlines TYPE zcl_excel_worksheet=>mty_ts_outlines_row, col_count TYPE int4, merge_count TYPE int4, write_current_row TYPE boolean, @@ -3025,7 +2898,8 @@ endmethod. FIELD-SYMBOLS: <ls_sheet_content> TYPE zexcel_s_cell_data, <fs_range_merge> LIKE LINE OF lt_range_merge, <column_dimension> TYPE zexcel_s_worksheet_columndime, - <row_dimension> TYPE zexcel_s_worksheet_rowdimensio. + <row_dimension> TYPE zexcel_s_worksheet_rowdimensio, + <ls_row_outline> LIKE LINE OF lts_row_outlines. *--------------------------------------------------------------------* * issue #220 - If cell in tables-area don't use default from row or column or sheet - Declarations 2 - start @@ -3289,16 +3163,19 @@ endmethod. ENDIF. ENDIF. " outlineLevelRow - LOOP AT row_dimensions ASSIGNING <row_dimension>. - IF <row_dimension>-row_dimension->get_outline_level( ) > outline_level_row. - outline_level_row = <row_dimension>-row_dimension->get_outline_level( ). - ENDIF. - ENDLOOP. - lv_value = outline_level_row. - SHIFT lv_value RIGHT DELETING TRAILING space. - SHIFT lv_value LEFT DELETING LEADING space. - lo_element->set_attribute_ns( name = lc_xml_attr_outlinelevelrow - value = lv_value ). +* Excel is recalculating the outlinelevel on startup from the outline levels found in the rows +* If we place anything incorrect here it gets corrected, if don't place anything it gets added +* So no need to calculate the outlinelevel here ( at least for rows - probably for columns as well but I haven't tested yet +* LOOP AT row_dimensions ASSIGNING <row_dimension>. +* IF <row_dimension>-row_dimension->get_outline_level( ) > outline_level_row. +* outline_level_row = <row_dimension>-row_dimension->get_outline_level( ). +* ENDIF. +* ENDLOOP. +* lv_value = outline_level_row. +* SHIFT lv_value RIGHT DELETING TRAILING space. +* SHIFT lv_value LEFT DELETING LEADING space. +* lo_element->set_attribute_ns( name = lc_xml_attr_outlinelevelrow +* value = lv_value ). " outlineLevelCol LOOP AT column_dimensions ASSIGNING <column_dimension>. IF <column_dimension>-column_dimension->get_outline_level( ) > outline_level_col. @@ -3490,80 +3367,150 @@ endmethod. *--------------------------------------------------------------------* * issue #220 - If cell in tables-area don't use default from row or column or sheet - Coding 1 - end *--------------------------------------------------------------------* +* We have problems when the first rows or trailing rows are not set but we have rowinformation +* to solve this we add dummycontent into first and last line that will not be set +* Set first line if necessary + READ TABLE io_worksheet->sheet_content TRANSPORTING NO FIELDS WITH KEY cell_row = 1. + IF sy-subrc <> 0. + ls_sheet_content_empty-cell_row = 1. + ls_sheet_content_empty-cell_column = 1. + ls_sheet_content_empty-cell_value = lc_dummy_cell_content. + INSERT ls_sheet_content_empty INTO TABLE io_worksheet->sheet_content. + ENDIF. +* Set last line if necessary +* Last row with cell content + lv_last_row = io_worksheet->get_highest_row( ). +* Last line with row-information set directly ( like line height, hidden-status ... ) + lts_row_dimensions = io_worksheet->get_row_dimensions( ). + SORT lts_row_dimensions BY row DESCENDING. + READ TABLE lts_row_dimensions INDEX 1 ASSIGNING <row_dimension>. + IF sy-subrc = 0 AND <row_dimension>-row > lv_last_row. + lv_last_row = <row_dimension>-row. + ENDIF. +* Last line with row-information set indirectly by row outline + lts_row_outlines = io_worksheet->get_row_outlines( ). + LOOP AT lts_row_outlines ASSIGNING <ls_row_outline>. + IF <ls_row_outline>-collapsed = 'X'. + lv_current_row = <ls_row_outline>-row_to + 1. " collapsed-status may be set on following row + ELSE. + lv_current_row = <ls_row_outline>-row_to. " collapsed-status may be set on following row + ENDIF. + IF lv_current_row > lv_last_row. + lv_last_row = lv_current_row. + ENDIF. + ENDLOOP. + READ TABLE io_worksheet->sheet_content TRANSPORTING NO FIELDS WITH KEY cell_row = lv_last_row. + IF sy-subrc <> 0. + ls_sheet_content_empty-cell_row = lv_last_row. + ls_sheet_content_empty-cell_column = 1. + ls_sheet_content_empty-cell_value = lc_dummy_cell_content. + INSERT ls_sheet_content_empty INTO TABLE io_worksheet->sheet_content. + ENDIF. - LOOP AT io_worksheet->sheet_content ASSIGNING <ls_sheet_content>. + + CLEAR ls_sheet_content. + LOOP AT io_worksheet->sheet_content INTO ls_sheet_content. READ TABLE lt_values INTO ls_values WITH KEY column = ls_last_row-cell_column. IF sy-subrc = 0 AND ls_values-value = ls_last_row-cell_value. CLEAR l_autofilter_hidden. ENDIF. CLEAR ls_style_mapping. - IF ls_last_row-cell_row NE <ls_sheet_content>-cell_row. - IF lo_autofilter IS BOUND. - IF ls_area-row_start >= ls_last_row-cell_row OR " One less for header - ls_area-row_end < ls_last_row-cell_row . +* Create row element +* issues #346,#154, #195 - problems when we have information in row_dimension but no cell content in that row +* Get next line that may have to be added. If we have empty lines this is the next line after previous cell content +* Otherwise it is the line of the current cell content + lv_current_row = ls_last_row-cell_row + 1. + IF lv_current_row > ls_sheet_content-cell_row. + lv_current_row = ls_sheet_content-cell_row. + ENDIF. +* Fill in empty lines if necessary - assign an emtpy sheet content + lv_next_row = lv_current_row. + WHILE lv_next_row <= ls_sheet_content-cell_row. + lv_current_row = lv_next_row. + lv_next_row = lv_current_row + 1. + IF lv_current_row = ls_sheet_content-cell_row. " cell value found in this row + ASSIGN ls_sheet_content TO <ls_sheet_content>. + ELSE. +* Check if empty row is really necessary - this is basically the case when we have information in row_dimension + lo_row_dim_empty = io_worksheet->get_row_dimension( lv_current_row ). + CHECK lo_row_dim_empty->get_row_height( ) >= 0 OR + lo_row_dim_empty->get_collapsed( io_worksheet ) = abap_true OR + lo_row_dim_empty->get_outline_level( io_worksheet ) > 0 OR + lo_row_dim_empty->get_xf_index( ) <> 0. + " Dummyentry A1 + ls_sheet_content_empty-cell_row = lv_current_row. + ls_sheet_content_empty-cell_column = 1. + ASSIGN ls_sheet_content_empty TO <ls_sheet_content>. + ENDIF. + + IF ls_last_row-cell_row NE <ls_sheet_content>-cell_row. + IF lo_autofilter IS BOUND. + IF ls_area-row_start >= ls_last_row-cell_row OR " One less for header + ls_area-row_end < ls_last_row-cell_row . + CLEAR l_autofilter_hidden. + ENDIF. + ELSE. CLEAR l_autofilter_hidden. ENDIF. - ELSE. - CLEAR l_autofilter_hidden. - ENDIF. - IF ls_last_row-cell_row IS NOT INITIAL. - " Row visibility of previos row. - IF row_dimension->get_visible( ) = abap_false OR - l_autofilter_hidden = abap_true. - lo_element_2->set_attribute_ns( name = 'hidden' value = 'true'). + IF ls_last_row-cell_row IS NOT INITIAL. + " Row visibility of previos row. + IF row_dimension->get_visible( io_worksheet ) = abap_false OR + l_autofilter_hidden = abap_true. + lo_element_2->set_attribute_ns( name = 'hidden' value = 'true'). + ENDIF. + lo_element->append_child( new_child = lo_element_2 ). " row node ENDIF. - lo_element->append_child( new_child = lo_element_2 ). " row node - ENDIF. - " Add new row - lo_element_2 = lo_document->create_simple_element( name = lc_xml_node_row - parent = lo_document ). - " r - lv_value = <ls_sheet_content>-cell_row. - SHIFT lv_value RIGHT DELETING TRAILING space. - SHIFT lv_value LEFT DELETING LEADING space. + " Add new row + lo_element_2 = lo_document->create_simple_element( name = lc_xml_node_row + parent = lo_document ). + " r + lv_value = <ls_sheet_content>-cell_row. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. - lo_element_2->set_attribute_ns( name = lc_xml_attr_r - value = lv_value ). - " Spans - lv_value = col_count. - CONCATENATE '1:' lv_value INTO lv_value. - SHIFT lv_value RIGHT DELETING TRAILING space. - SHIFT lv_value LEFT DELETING LEADING space. - lo_element_2->set_attribute_ns( name = lc_xml_attr_spans - value = lv_value ). - row_dimension = io_worksheet->get_row_dimension( <ls_sheet_content>-cell_row ). - " Do we need the row dimension attributes? - IF row_dimension->get_row_height( ) >= 0 OR - row_dimension->get_collapsed( ) = abap_true OR - row_dimension->get_outline_level( ) > 0 OR - row_dimension->get_xf_index( ) <> 0 OR - l_autofilter_hidden = abap_true. - " Row dimensions - IF row_dimension->get_row_height( ) >= 0. - lo_element_2->set_attribute_ns( name = 'customHeight' value = '1'). - lv_value = row_dimension->get_row_height( ). - lo_element_2->set_attribute_ns( name = 'ht' value = lv_value ). - ENDIF. - " Collapsed - IF row_dimension->get_collapsed( ) = abap_true. - lo_element_2->set_attribute_ns( name = 'collapsed' value = 'true'). - ENDIF. - " Outline level - IF row_dimension->get_outline_level( ) > 0. - lv_value = row_dimension->get_outline_level( ). - SHIFT lv_value RIGHT DELETING TRAILING space. - SHIFT lv_value LEFT DELETING LEADING space. - lo_element_2->set_attribute_ns( name = 'outlineLevel' value = lv_value ). - ENDIF. - " Style - IF row_dimension->get_xf_index( ) <> 0. - lv_value = row_dimension->get_xf_index( ). - lo_element_2->set_attribute_ns( name = 's' value = lv_value ). - lo_element_2->set_attribute_ns( name = 'customFormat' value = '1'). + lo_element_2->set_attribute_ns( name = lc_xml_attr_r + value = lv_value ). + " Spans + lv_value = col_count. + CONCATENATE '1:' lv_value INTO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element_2->set_attribute_ns( name = lc_xml_attr_spans + value = lv_value ). + row_dimension = io_worksheet->get_row_dimension( <ls_sheet_content>-cell_row ). + " Do we need the row dimension attributes? + IF row_dimension->get_row_height( ) >= 0 OR + row_dimension->get_collapsed( io_worksheet ) = abap_true OR + row_dimension->get_outline_level( io_worksheet ) > 0 OR + row_dimension->get_xf_index( ) <> 0 OR + l_autofilter_hidden = abap_true. + " Row dimensions + IF row_dimension->get_row_height( ) >= 0. + lo_element_2->set_attribute_ns( name = 'customHeight' value = '1'). + lv_value = row_dimension->get_row_height( ). + lo_element_2->set_attribute_ns( name = 'ht' value = lv_value ). + ENDIF. + " Collapsed + IF row_dimension->get_collapsed( io_worksheet ) = abap_true. + lo_element_2->set_attribute_ns( name = 'collapsed' value = 'true'). + ENDIF. + " Outline level + IF row_dimension->get_outline_level( io_worksheet ) > 0. + lv_value = row_dimension->get_outline_level( io_worksheet ). + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element_2->set_attribute_ns( name = 'outlineLevel' value = lv_value ). + ENDIF. + " Style + IF row_dimension->get_xf_index( ) <> 0. + lv_value = row_dimension->get_xf_index( ). + lo_element_2->set_attribute_ns( name = 's' value = lv_value ). + lo_element_2->set_attribute_ns( name = 'customFormat' value = '1'). + ENDIF. ENDIF. + l_autofilter_hidden = abap_true. " First default is not showing ENDIF. - l_autofilter_hidden = abap_true. " First default is not showing - ENDIF. + ENDWHILE. lo_element_3 = lo_document->create_simple_element( name = lc_xml_node_c parent = lo_document ). @@ -3631,7 +3578,8 @@ endmethod. CONDENSE lv_value. lo_element_4->set_value( value = lv_value ). lo_element_3->append_child( new_child = lo_element_4 ). " fomula node - ELSEIF <ls_sheet_content>-cell_value IS NOT INITIAL. "cell can have just style or formula + ELSEIF <ls_sheet_content>-cell_value IS NOT INITIAL "cell can have just style or formula + AND <ls_sheet_content>-cell_value <> lc_dummy_cell_content. IF <ls_sheet_content>-data_type IS NOT INITIAL. IF <ls_sheet_content>-data_type EQ 's_leading_blanks'. lo_element_3->set_attribute_ns( name = lc_xml_attr_t @@ -3646,7 +3594,7 @@ endmethod. lo_element_4 = lo_document->create_simple_element( name = lc_xml_node_v parent = lo_document ). - IF <ls_sheet_content>-data_type EQ 's' or <ls_sheet_content>-data_type EQ 's_leading_blanks'. + IF <ls_sheet_content>-data_type EQ 's' OR <ls_sheet_content>-data_type EQ 's_leading_blanks'. lv_value = me->get_shared_string_index( <ls_sheet_content>-cell_value ). CONDENSE lv_value. lo_element_4->set_value( value = lv_value ). @@ -3682,6 +3630,7 @@ endmethod. ENDIF. lo_element->append_child( new_child = lo_element_2 ). " row node ENDIF. + DELETE io_worksheet->sheet_content WHERE cell_value = lc_dummy_cell_content. " Get rid of dummyentries lo_element_root->append_child( new_child = lo_element ). " sheetData node @@ -4175,7 +4124,7 @@ endmethod. " Hyperlinks DATA: lv_hyperlinks_count TYPE i, - lo_link TYPE REF TO zcl_excel_hyperlink. + lo_link TYPE REF TO zcl_excel_hyperlink. lv_hyperlinks_count = io_worksheet->get_hyperlinks_size( ). IF lv_hyperlinks_count > 0. @@ -4505,46 +4454,46 @@ endmethod. lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). lo_renderer->render( ). -endmethod. +ENDMETHOD. - - - - - method CREATE_XL_SHEET_RELS. + + + + + METHOD create_xl_sheet_rels. ** Constant node name - DATA: lc_xml_node_relationships TYPE string VALUE 'Relationships', - lc_xml_node_relationship TYPE string VALUE 'Relationship', + DATA: lc_xml_node_relationships TYPE string VALUE 'Relationships', + lc_xml_node_relationship TYPE string VALUE 'Relationship', " Node attributes - lc_xml_attr_id TYPE string VALUE 'Id', - lc_xml_attr_type TYPE string VALUE 'Type', - lc_xml_attr_target TYPE string VALUE 'Target', - lc_xml_attr_target_mode TYPE string VALUE 'TargetMode', - lc_xml_val_external TYPE string VALUE 'External', + lc_xml_attr_id TYPE string VALUE 'Id', + lc_xml_attr_type TYPE string VALUE 'Type', + lc_xml_attr_target TYPE string VALUE 'Target', + lc_xml_attr_target_mode TYPE string VALUE 'TargetMode', + lc_xml_val_external TYPE string VALUE 'External', " Node namespace - lc_xml_node_rels_ns TYPE string VALUE 'http://schemas.openxmlformats.org/package/2006/relationships', - lc_xml_node_rid_table_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/table', - lc_xml_node_rid_printer_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/printerSettings', - lc_xml_node_rid_drawing_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing', - lc_xml_node_rid_link_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink'. + lc_xml_node_rels_ns TYPE string VALUE 'http://schemas.openxmlformats.org/package/2006/relationships', + lc_xml_node_rid_table_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/table', + lc_xml_node_rid_printer_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/printerSettings', + lc_xml_node_rid_drawing_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing', + lc_xml_node_rid_link_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink'. - DATA: lo_ixml TYPE REF TO if_ixml, - lo_document TYPE REF TO if_ixml_document, - lo_element_root TYPE REF TO if_ixml_element, - lo_element TYPE REF TO if_ixml_element, - lo_encoding TYPE REF TO if_ixml_encoding, - lo_streamfactory TYPE REF TO if_ixml_stream_factory, - lo_ostream TYPE REF TO if_ixml_ostream, - lo_renderer TYPE REF TO if_ixml_renderer, - lo_iterator TYPE REF TO cl_object_collection_iterator, - lo_table TYPE REF TO zcl_excel_table, - lo_link TYPE REF TO zcl_excel_hyperlink. + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer, + lo_iterator TYPE REF TO cl_object_collection_iterator, + lo_table TYPE REF TO zcl_excel_table, + lo_link TYPE REF TO zcl_excel_hyperlink. - DATA: lv_value TYPE string, - lv_relation_id TYPE i, - lv_index_str TYPE string. + DATA: lv_value TYPE string, + lv_relation_id TYPE i, + lv_index_str TYPE string. ********************************************************************** * STEP 1: Create [Content_Types].xml into the root of the ZIP @@ -4573,6 +4522,7 @@ endmethod. lo_iterator = io_worksheet->get_hyperlinks_iterator( ). WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. lo_link ?= lo_iterator->if_object_collection_iterator~get_next( ). + CHECK lo_link->is_internal( ) = abap_false. " issue #340 - don't put internal links here ADD 1 TO lv_relation_id. lv_value = lv_relation_id. @@ -4675,12 +4625,11 @@ endmethod. lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). lo_renderer->render( ). - -endmethod. +ENDMETHOD. - - - method CREATE_XL_STYLES. + + + METHOD create_xl_styles. ** Constant node name @@ -4772,12 +4721,7 @@ endmethod. lc_xml_attr_diagonalup TYPE string VALUE 'diagonalUp', lc_xml_attr_diagonaldown TYPE string VALUE 'diagonalDown', " Node namespace - lc_xml_node_ns TYPE string VALUE 'http://schemas.openxmlformats.org/spreadsheetml/2006/main', - lc_xml_attr_type type string value 'type', - lc_xml_attr_bottom type string value 'bottom', - lc_xml_attr_top type string value 'top', - lc_xml_attr_right type string value 'right', - lc_xml_attr_left type string value 'left'. + lc_xml_node_ns TYPE string VALUE 'http://schemas.openxmlformats.org/spreadsheetml/2006/main'. DATA: lo_ixml TYPE REF TO if_ixml, lo_document TYPE REF TO if_ixml_document, @@ -5095,141 +5039,32 @@ endmethod. LOOP AT lt_fills INTO ls_fill. lo_element_fill = lo_document->create_simple_element( name = lc_xml_node_fill parent = lo_document ). + "pattern + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_patternfill + parent = lo_document ). + lv_value = ls_fill-filltype. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_patterntype + value = lv_value ). + " fgcolor + create_xl_styles_color_node( + io_document = lo_document + io_parent = lo_sub_element + is_color = ls_fill-fgcolor + iv_color_elem_name = lc_xml_node_fgcolor ). + IF ls_fill-fgcolor-rgb IS INITIAL AND + ls_fill-fgcolor-indexed EQ zcl_excel_style_color=>c_indexed_not_set AND + ls_fill-fgcolor-theme EQ zcl_excel_style_color=>c_theme_not_set AND + ls_fill-fgcolor-tint IS INITIAL AND ls_fill-bgcolor-indexed EQ zcl_excel_style_color=>c_indexed_sys_foreground. - if ls_fill-gradtype is not initial. - "gradient - - lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_gradientfill - parent = lo_document ). - if ls_fill-gradtype-degree is not initial. - lv_value = ls_fill-gradtype-degree. - lo_sub_element->set_attribute_ns( name = lc_xml_attr_degree value = lv_value ). - endif. - if ls_fill-gradtype-type is not initial. - lv_value = ls_fill-gradtype-type. - lo_sub_element->set_attribute_ns( name = lc_xml_attr_type value = lv_value ). - endif. - if ls_fill-gradtype-bottom is not initial. - lv_value = ls_fill-gradtype-bottom. - lo_sub_element->set_attribute_ns( name = lc_xml_attr_bottom value = lv_value ). - endif. - if ls_fill-gradtype-top is not initial. - lv_value = ls_fill-gradtype-top. - lo_sub_element->set_attribute_ns( name = lc_xml_attr_top value = lv_value ). - endif. - if ls_fill-gradtype-right is not initial. - lv_value = ls_fill-gradtype-right. - lo_sub_element->set_attribute_ns( name = lc_xml_attr_right value = lv_value ). - endif. - if ls_fill-gradtype-left is not initial. - lv_value = ls_fill-gradtype-left. - lo_sub_element->set_attribute_ns( name = lc_xml_attr_left value = lv_value ). - endif. - - if ls_fill-gradtype-position3 is not initial. - "create <stop> elements for gradients, we can have 2 or 3 stops in each gradient - lo_sub_element_2 = lo_document->create_simple_element( name = lc_xml_node_stop - parent = lo_sub_element ). - lv_value = ls_fill-gradtype-position1. - lo_sub_element_2->set_attribute_ns( name = lc_xml_attr_position value = lv_value ). - - create_xl_styles_color_node( - io_document = lo_document - io_parent = lo_sub_element_2 - is_color = ls_fill-bgcolor - iv_color_elem_name = lc_xml_node_color ). - lo_sub_element->append_child( new_child = lo_sub_element_2 ). - - lo_sub_element_2 = lo_document->create_simple_element( name = lc_xml_node_stop - parent = lo_sub_element ). - - lv_value = ls_fill-gradtype-position2. - - lo_sub_element_2->set_attribute_ns( name = lc_xml_attr_position - value = lv_value ). - - create_xl_styles_color_node( - io_document = lo_document - io_parent = lo_sub_element_2 - is_color = ls_fill-fgcolor - iv_color_elem_name = lc_xml_node_color ). - lo_sub_element->append_child( new_child = lo_sub_element_2 ). - - lo_sub_element_2 = lo_document->create_simple_element( name = lc_xml_node_stop - parent = lo_sub_element ). - - lv_value = ls_fill-gradtype-position3. - lo_sub_element_2->set_attribute_ns( name = lc_xml_attr_position - value = lv_value ). - - create_xl_styles_color_node( - io_document = lo_document - io_parent = lo_sub_element_2 - is_color = ls_fill-bgcolor - iv_color_elem_name = lc_xml_node_color ). - lo_sub_element->append_child( new_child = lo_sub_element_2 ). - - else. - "create <stop> elements for gradients, we can have 2 or 3 stops in each gradient - lo_sub_element_2 = lo_document->create_simple_element( name = lc_xml_node_stop - parent = lo_sub_element ). - lv_value = ls_fill-gradtype-position1. - lo_sub_element_2->set_attribute_ns( name = lc_xml_attr_position value = lv_value ). - - create_xl_styles_color_node( - io_document = lo_document - io_parent = lo_sub_element_2 - is_color = ls_fill-bgcolor - iv_color_elem_name = lc_xml_node_color ). - lo_sub_element->append_child( new_child = lo_sub_element_2 ). - - lo_sub_element_2 = lo_document->create_simple_element( name = lc_xml_node_stop - parent = lo_sub_element ). - - lv_value = ls_fill-gradtype-position2. - lo_sub_element_2->set_attribute_ns( name = lc_xml_attr_position - value = lv_value ). - - create_xl_styles_color_node( - io_document = lo_document - io_parent = lo_sub_element_2 - is_color = ls_fill-fgcolor - iv_color_elem_name = lc_xml_node_color ). - lo_sub_element->append_child( new_child = lo_sub_element_2 ). - endif. - - - - - else. - "pattern - lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_patternfill - parent = lo_document ). - lv_value = ls_fill-filltype. - lo_sub_element->set_attribute_ns( name = lc_xml_attr_patterntype - value = lv_value ). - " fgcolor + " bgcolor create_xl_styles_color_node( io_document = lo_document io_parent = lo_sub_element - is_color = ls_fill-fgcolor - iv_color_elem_name = lc_xml_node_fgcolor ). + is_color = ls_fill-bgcolor + iv_color_elem_name = lc_xml_node_bgcolor ). - IF ls_fill-fgcolor-rgb IS INITIAL AND - ls_fill-fgcolor-indexed EQ zcl_excel_style_color=>c_indexed_not_set AND - ls_fill-fgcolor-theme EQ zcl_excel_style_color=>c_theme_not_set AND - ls_fill-fgcolor-tint IS INITIAL AND ls_fill-bgcolor-indexed EQ zcl_excel_style_color=>c_indexed_sys_foreground. - - " bgcolor - create_xl_styles_color_node( - io_document = lo_document - io_parent = lo_sub_element - is_color = ls_fill-bgcolor - iv_color_elem_name = lc_xml_node_bgcolor ). - - ENDIF. - endif. + ENDIF. lo_element_fill->append_child( new_child = lo_sub_element )."pattern lo_element_fills->append_child( new_child = lo_element_fill ). @@ -5771,14 +5606,14 @@ endmethod. lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). lo_renderer->render( ). -endmethod. +ENDMETHOD. - - - - - - method CREATE_XL_STYLES_COLOR_NODE. + + + + + + METHOD create_xl_styles_color_node. DATA: lo_sub_element TYPE REF TO if_ixml_element, lv_value TYPE string. @@ -5822,12 +5657,12 @@ endmethod. ENDIF. io_parent->append_child( new_child = lo_sub_element ). -endmethod. +ENDMETHOD. - - - - method CREATE_XL_TABLE. + + + + METHOD create_xl_table. DATA: lc_xml_node_table TYPE string VALUE 'table', lc_xml_node_relationship TYPE string VALUE 'Relationship', @@ -6001,10 +5836,10 @@ endmethod. lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). lo_renderer->render( ). -endmethod. +ENDMETHOD. - - + + method CREATE_XL_THEME. @@ -6090,11 +5925,10 @@ endmethod. buffer = ep_content. - -endmethod. + endmethod. - - + + method CREATE_XL_WORKBOOK. *--------------------------------------------------------------------* * issue #230 - Pimp my Code @@ -6412,12 +6246,11 @@ endmethod. lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). lo_renderer->render( ). - -endmethod. + endmethod. - - - + + + method FLAG2BOOL. @@ -6426,13 +6259,12 @@ endmethod. ELSE. ep_boolean = 'false'. ENDIF. - -endmethod. + endmethod. - - - - method GET_SHARED_STRING_INDEX. + + + + METHOD get_shared_string_index. DATA ls_shared_string TYPE zexcel_s_shared_string. @@ -6440,7 +6272,6 @@ endmethod. READ TABLE shared_strings INTO ls_shared_string WITH KEY string_value = ip_cell_value BINARY SEARCH. ep_index = ls_shared_string-string_no. - -endmethod. +ENDMETHOD. diff --git a/ZA2X/PROG/ZDEMO_EXCEL2.slnk b/ZA2X/PROG/ZDEMO_EXCEL2.slnk index 1598627..52b7b56 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL2.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL2.slnk @@ -1,7 +1,8 @@ - - + + + @@ -13,66 +14,50 @@ *& *&---------------------------------------------------------------------* -report zdemo_excel2. +REPORT zdemo_excel2. -data: lo_excel type ref to zcl_excel, - lo_worksheet type ref to zcl_excel_worksheet, - lo_style_bold type ref to zcl_excel_style, - lo_style_underline type ref to zcl_excel_style, - lo_style_filled type ref to zcl_excel_style, - lo_style_border type ref to zcl_excel_style, - lo_style_button type ref to zcl_excel_style, - lo_border_dark type ref to zcl_excel_style_border, - lo_border_light type ref to zcl_excel_style_border. +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_style_bold TYPE REF TO zcl_excel_style, + lo_style_underline TYPE REF TO zcl_excel_style, + lo_style_filled TYPE REF TO zcl_excel_style, + lo_style_border TYPE REF TO zcl_excel_style, + lo_style_button TYPE REF TO zcl_excel_style, + lo_border_dark TYPE REF TO zcl_excel_style_border, + lo_border_light TYPE REF TO zcl_excel_style_border. -data: lv_style_bold_guid type zexcel_cell_style, - lv_style_underline_guid type zexcel_cell_style, - lv_style_filled_guid type zexcel_cell_style, - lv_style_filled_green_guid type zexcel_cell_style, - lv_style_border_guid type zexcel_cell_style, - lv_style_button_guid type zexcel_cell_style, - lv_style_filled_turquoise_guid type zexcel_cell_style, - lo_style_gr_cornerlb_guid type zexcel_cell_style, - lo_style_gr_cornerlt_guid type zexcel_cell_style, - lo_style_gr_cornerrb_guid type zexcel_cell_style, - lo_style_gr_cornerrt_guid type zexcel_cell_style, - lo_style_gr_horizontal90_guid type zexcel_cell_style, - lo_style_gr_horizontal270_guid type zexcel_cell_style, - lo_style_gr_horizontalb_guid type zexcel_cell_style, - lo_style_gr_vertical_guid type zexcel_cell_style, - lo_style_gr_vertical2_guid type zexcel_cell_style, - lo_style_gr_fromcenter_guid type zexcel_cell_style, - lo_style_gr_diagonal45_guid type zexcel_cell_style, - lo_style_gr_diagonal45b_guid type zexcel_cell_style, - lo_style_gr_diagonal135_guid type zexcel_cell_style, - lo_style_gr_diagonal135b_guid type zexcel_cell_style . +DATA: lv_style_bold_guid TYPE zexcel_cell_style, + lv_style_underline_guid TYPE zexcel_cell_style, + lv_style_filled_guid TYPE zexcel_cell_style, + lv_style_filled_green_guid TYPE zexcel_cell_style, + lv_style_border_guid TYPE zexcel_cell_style, + lv_style_button_guid TYPE zexcel_cell_style, + lv_style_filled_turquoise_guid TYPE zexcel_cell_style. -data: lv_file type xstring, - lv_bytecount type i, - lt_file_tab type solix_tab. +DATA: lv_file TYPE xstring, + lv_bytecount TYPE i, + lt_file_tab TYPE solix_tab. -data: lv_full_path type string, - lv_workdir type string, - lv_file_separator type c. +DATA: lv_full_path TYPE string, + lv_workdir TYPE string, + lv_file_separator TYPE c. -data: lo_row_dim type ref to zcl_excel_worksheet_rowdimensi. - -constants: gc_save_file_name type string value '02_Styles.xlsx'. -include zdemo_excel_outputopt_incl. +CONSTANTS: gc_save_file_name TYPE string VALUE '02_Styles.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. -start-of-selection. +START-OF-SELECTION. " Creates active sheet - create object lo_excel. + CREATE OBJECT lo_excel. " Create border object - create object lo_border_dark. + CREATE OBJECT lo_border_dark. lo_border_dark->border_color-rgb = zcl_excel_style_color=>c_black. lo_border_dark->border_style = zcl_excel_style_border=>c_border_thin. - create object lo_border_light. + CREATE OBJECT lo_border_light. lo_border_light->border_color-rgb = zcl_excel_style_color=>c_gray. lo_border_light->border_style = zcl_excel_style_border=>c_border_thin. " Create a bold / italic style @@ -117,128 +102,6 @@ start-of-selection. lo_style_filled->font->scheme = zcl_excel_style_font=>c_scheme_major. lv_style_filled_green_guid = lo_style_filled->get_guid( ). - " Create filled with gradients - lo_style_filled = lo_excel->add_new_style( ). - lo_style_filled->fill->filltype = zcl_excel_style_fill=>c_fill_gradient_cornerlb. - lo_style_filled->fill->fgcolor-rgb = zcl_excel_style_color=>c_blue. - lo_style_filled->fill->bgcolor-rgb = zcl_excel_style_color=>c_white. - lo_style_filled->font->name = zcl_excel_style_font=>c_name_cambria. - lo_style_filled->font->scheme = zcl_excel_style_font=>c_scheme_major. - lo_style_gr_cornerlb_guid = lo_style_filled->get_guid( ). - - lo_style_filled = lo_excel->add_new_style( ). - lo_style_filled->fill->filltype = zcl_excel_style_fill=>c_fill_gradient_cornerlt. - lo_style_filled->fill->fgcolor-rgb = zcl_excel_style_color=>c_blue. - lo_style_filled->fill->bgcolor-rgb = zcl_excel_style_color=>c_white. - lo_style_filled->font->name = zcl_excel_style_font=>c_name_cambria. - lo_style_filled->font->scheme = zcl_excel_style_font=>c_scheme_major. - lo_style_gr_cornerlt_guid = lo_style_filled->get_guid( ). - - lo_style_filled = lo_excel->add_new_style( ). - lo_style_filled->fill->filltype = zcl_excel_style_fill=>c_fill_gradient_cornerrb. - lo_style_filled->fill->fgcolor-rgb = zcl_excel_style_color=>c_blue. - lo_style_filled->fill->bgcolor-rgb = zcl_excel_style_color=>c_white. - lo_style_filled->font->name = zcl_excel_style_font=>c_name_cambria. - lo_style_filled->font->scheme = zcl_excel_style_font=>c_scheme_major. - lo_style_gr_cornerrb_guid = lo_style_filled->get_guid( ). - - lo_style_filled = lo_excel->add_new_style( ). - lo_style_filled->fill->filltype = zcl_excel_style_fill=>c_fill_gradient_cornerrt. - lo_style_filled->fill->fgcolor-rgb = zcl_excel_style_color=>c_blue. - lo_style_filled->fill->bgcolor-rgb = zcl_excel_style_color=>c_white. - lo_style_filled->font->name = zcl_excel_style_font=>c_name_cambria. - lo_style_filled->font->scheme = zcl_excel_style_font=>c_scheme_major. - lo_style_gr_cornerrt_guid = lo_style_filled->get_guid( ). - - lo_style_filled = lo_excel->add_new_style( ). - lo_style_filled->fill->filltype = zcl_excel_style_fill=>c_fill_gradient_horizontal90. - lo_style_filled->fill->fgcolor-rgb = zcl_excel_style_color=>c_blue. - lo_style_filled->fill->bgcolor-rgb = zcl_excel_style_color=>c_white. - lo_style_filled->font->name = zcl_excel_style_font=>c_name_cambria. - lo_style_filled->font->scheme = zcl_excel_style_font=>c_scheme_major. - lo_style_gr_horizontal90_guid = lo_style_filled->get_guid( ). - - lo_style_filled = lo_excel->add_new_style( ). - lo_style_filled->fill->filltype = zcl_excel_style_fill=>c_fill_gradient_horizontal270. - lo_style_filled->fill->fgcolor-rgb = zcl_excel_style_color=>c_blue. - lo_style_filled->fill->bgcolor-rgb = zcl_excel_style_color=>c_white. - lo_style_filled->font->name = zcl_excel_style_font=>c_name_cambria. - lo_style_filled->font->scheme = zcl_excel_style_font=>c_scheme_major. - lo_style_gr_horizontal270_guid = lo_style_filled->get_guid( ). - - - lo_style_filled = lo_excel->add_new_style( ). - lo_style_filled->fill->filltype = zcl_excel_style_fill=>c_fill_gradient_horizontalb. - lo_style_filled->fill->fgcolor-rgb = zcl_excel_style_color=>c_blue. - lo_style_filled->fill->bgcolor-rgb = zcl_excel_style_color=>c_white. - lo_style_filled->font->name = zcl_excel_style_font=>c_name_cambria. - lo_style_filled->font->scheme = zcl_excel_style_font=>c_scheme_major. - lo_style_gr_horizontalb_guid = lo_style_filled->get_guid( ). - - - lo_style_filled = lo_excel->add_new_style( ). - lo_style_filled->fill->filltype = zcl_excel_style_fill=>c_fill_gradient_vertical. - lo_style_filled->fill->fgcolor-rgb = zcl_excel_style_color=>c_blue. - lo_style_filled->fill->bgcolor-rgb = zcl_excel_style_color=>c_white. - lo_style_filled->font->name = zcl_excel_style_font=>c_name_cambria. - lo_style_filled->font->scheme = zcl_excel_style_font=>c_scheme_major. - lo_style_gr_vertical_guid = lo_style_filled->get_guid( ). - - - - lo_style_filled = lo_excel->add_new_style( ). - lo_style_filled->fill->filltype = zcl_excel_style_fill=>c_fill_gradient_vertical. - lo_style_filled->fill->fgcolor-rgb = zcl_excel_style_color=>c_white. - lo_style_filled->fill->bgcolor-rgb = zcl_excel_style_color=>c_blue. - lo_style_filled->font->name = zcl_excel_style_font=>c_name_cambria. - lo_style_filled->font->scheme = zcl_excel_style_font=>c_scheme_major. - lo_style_gr_vertical2_guid = lo_style_filled->get_guid( ). - - - lo_style_filled = lo_excel->add_new_style( ). - lo_style_filled->fill->filltype = zcl_excel_style_fill=>c_fill_gradient_fromcenter. - lo_style_filled->fill->fgcolor-rgb = zcl_excel_style_color=>c_blue. - lo_style_filled->fill->bgcolor-rgb = zcl_excel_style_color=>c_white. - lo_style_filled->font->name = zcl_excel_style_font=>c_name_cambria. - lo_style_filled->font->scheme = zcl_excel_style_font=>c_scheme_major. - lo_style_gr_fromcenter_guid = lo_style_filled->get_guid( ). - - - lo_style_filled = lo_excel->add_new_style( ). - lo_style_filled->fill->filltype = zcl_excel_style_fill=>c_fill_gradient_diagonal45. - lo_style_filled->fill->fgcolor-rgb = zcl_excel_style_color=>c_blue. - lo_style_filled->fill->bgcolor-rgb = zcl_excel_style_color=>c_white. - lo_style_filled->font->name = zcl_excel_style_font=>c_name_cambria. - lo_style_filled->font->scheme = zcl_excel_style_font=>c_scheme_major. - lo_style_gr_diagonal45_guid = lo_style_filled->get_guid( ). - - - lo_style_filled = lo_excel->add_new_style( ). - lo_style_filled->fill->filltype = zcl_excel_style_fill=>c_fill_gradient_diagonal45b. - lo_style_filled->fill->fgcolor-rgb = zcl_excel_style_color=>c_blue. - lo_style_filled->fill->bgcolor-rgb = zcl_excel_style_color=>c_white. - lo_style_filled->font->name = zcl_excel_style_font=>c_name_cambria. - lo_style_filled->font->scheme = zcl_excel_style_font=>c_scheme_major. - lo_style_gr_diagonal45b_guid = lo_style_filled->get_guid( ). - - lo_style_filled = lo_excel->add_new_style( ). - lo_style_filled->fill->filltype = zcl_excel_style_fill=>c_fill_gradient_diagonal135. - lo_style_filled->fill->fgcolor-rgb = zcl_excel_style_color=>c_blue. - lo_style_filled->fill->bgcolor-rgb = zcl_excel_style_color=>c_white. - lo_style_filled->font->name = zcl_excel_style_font=>c_name_cambria. - lo_style_filled->font->scheme = zcl_excel_style_font=>c_scheme_major. - lo_style_gr_diagonal135_guid = lo_style_filled->get_guid( ). - - lo_style_filled = lo_excel->add_new_style( ). - lo_style_filled->fill->filltype = zcl_excel_style_fill=>c_fill_gradient_diagonal135b. - lo_style_filled->fill->fgcolor-rgb = zcl_excel_style_color=>c_blue. - lo_style_filled->fill->bgcolor-rgb = zcl_excel_style_color=>c_white. - lo_style_filled->font->name = zcl_excel_style_font=>c_name_cambria. - lo_style_filled->font->scheme = zcl_excel_style_font=>c_scheme_major. - lo_style_gr_diagonal135b_guid = lo_style_filled->get_guid( ). - - - " Create filled style turquoise using legacy excel ver <= 2003 palette. (https://code.sdn.sap.com/spaces/abap2xlsx/tickets/92) lo_style_filled = lo_excel->add_new_style( ). lo_excel->legacy_palette->set_color( "replace built-in color from palette with out custom RGB turquoise @@ -268,52 +131,6 @@ start-of-selection. " https://code.sdn.sap.com/spaces/abap2xlsx/tickets/44-exception-zcx_excel-thrown-when-style-is-set-for-an-empty-cell lo_worksheet->set_cell_style( ip_column = 'E' ip_row = 6 ip_style = lv_style_filled_green_guid ). - - lo_worksheet->set_cell( ip_column = 'B' ip_row = 10 ip_style = lo_style_gr_cornerlb_guid ip_value = zcL_excel_style_fill=>c_fill_gradient_cornerlb ). - lo_row_dim = lo_worksheet->get_row_dimension( ip_row = 10 ). - lo_row_dim->set_row_height( ip_row_height = 30 ). - lo_worksheet->set_cell( ip_column = 'C' ip_row = 11 ip_style = lo_style_gr_cornerlt_guid ip_value = zcL_excel_style_fill=>c_fill_gradient_cornerlt ). - lo_row_dim = lo_worksheet->get_row_dimension( ip_row = 11 ). - lo_row_dim->set_row_height( ip_row_height = 30 ). - lo_worksheet->set_cell( ip_column = 'B' ip_row = 12 ip_style = lo_style_gr_cornerrb_guid ip_value = zcL_excel_style_fill=>c_fill_gradient_cornerrb ). - lo_row_dim = lo_worksheet->get_row_dimension( ip_row = 12 ). - lo_row_dim->set_row_height( ip_row_height = 30 ). - lo_worksheet->set_cell( ip_column = 'C' ip_row = 13 ip_style = lo_style_gr_cornerrt_guid ip_value = zcL_excel_style_fill=>c_fill_gradient_cornerrt ). - lo_row_dim = lo_worksheet->get_row_dimension( ip_row = 13 ). - lo_row_dim->set_row_height( ip_row_height = 30 ). - lo_worksheet->set_cell( ip_column = 'B' ip_row = 14 ip_style = lo_style_gr_horizontal90_guid ip_value = zcL_excel_style_fill=>c_fill_gradient_horizontal90 ). - lo_row_dim = lo_worksheet->get_row_dimension( ip_row = 14 ). - lo_row_dim->set_row_height( ip_row_height = 30 ). - lo_worksheet->set_cell( ip_column = 'C' ip_row = 15 ip_style = lo_style_gr_horizontal270_guid ip_value = zcL_excel_style_fill=>c_fill_gradient_horizontal270 ). - lo_row_dim = lo_worksheet->get_row_dimension( ip_row = 15 ). - lo_row_dim->set_row_height( ip_row_height = 30 ). - lo_worksheet->set_cell( ip_column = 'B' ip_row = 16 ip_style = lo_style_gr_horizontalb_guid ip_value = zcL_excel_style_fill=>c_fill_gradient_horizontalb ). - lo_row_dim = lo_worksheet->get_row_dimension( ip_row = 16 ). - lo_row_dim->set_row_height( ip_row_height = 30 ). - lo_worksheet->set_cell( ip_column = 'C' ip_row = 17 ip_style = lo_style_gr_vertical_guid ip_value = zcL_excel_style_fill=>c_fill_gradient_vertical ). - lo_row_dim = lo_worksheet->get_row_dimension( ip_row = 17 ). - lo_row_dim->set_row_height( ip_row_height = 30 ). - lo_worksheet->set_cell( ip_column = 'B' ip_row = 18 ip_style = lo_style_gr_vertical2_guid ip_value = zcL_excel_style_fill=>c_fill_gradient_vertical ). - lo_row_dim = lo_worksheet->get_row_dimension( ip_row = 18 ). - lo_row_dim->set_row_height( ip_row_height = 30 ). - lo_worksheet->set_cell( ip_column = 'C' ip_row = 19 ip_style = lo_style_gr_fromcenter_guid ip_value = zcL_excel_style_fill=>c_fill_gradient_fromcenter ). - lo_row_dim = lo_worksheet->get_row_dimension( ip_row = 19 ). - lo_row_dim->set_row_height( ip_row_height = 30 ). - lo_worksheet->set_cell( ip_column = 'B' ip_row = 20 ip_style = lo_style_gr_diagonal45_guid ip_value = zcL_excel_style_fill=>c_fill_gradient_diagonal45 ). - lo_row_dim = lo_worksheet->get_row_dimension( ip_row = 20 ). - lo_row_dim->set_row_height( ip_row_height = 30 ). - lo_worksheet->set_cell( ip_column = 'C' ip_row = 21 ip_style = lo_style_gr_diagonal45b_guid ip_value = zcL_excel_style_fill=>c_fill_gradient_diagonal45b ). - lo_row_dim = lo_worksheet->get_row_dimension( ip_row = 21 ). - lo_row_dim->set_row_height( ip_row_height = 30 ). - lo_worksheet->set_cell( ip_column = 'B' ip_row = 22 ip_style = lo_style_gr_diagonal135_guid ip_value = zcL_excel_style_fill=>c_fill_gradient_diagonal135 ). - lo_row_dim = lo_worksheet->get_row_dimension( ip_row = 22 ). - lo_row_dim->set_row_height( ip_row_height = 30 ). - lo_worksheet->set_cell( ip_column = 'C' ip_row = 23 ip_style = lo_style_gr_diagonal135b_guid ip_value = zcL_excel_style_fill=>c_fill_gradient_diagonal135b ). - lo_row_dim = lo_worksheet->get_row_dimension( ip_row = 23 ). - lo_row_dim->set_row_height( ip_row_height = 30 ). - - - * CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. * lv_file = lo_excel_writer->write_file( lo_excel ). * diff --git a/ZA2X/PROG/ZDEMO_EXCEL34.slnk b/ZA2X/PROG/ZDEMO_EXCEL34.slnk index 539107a..84a3a6c 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL34.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL34.slnk @@ -1,7 +1,8 @@ - - + + + @@ -202,13 +203,11 @@ START-OF-SELECTION. IF colorflag = 0. lo_worksheet->change_cell_style( ip_column = col_alpha ip_row = row - ip_fill_fgcolor_rgb = 'FFB5866A' - ip_fill_filltype = zcl_excel_style_fill=>c_fill_gradient_diagonal135 ). + ip_fill_fgcolor_rgb = 'FFB5866A' ). ELSE. lo_worksheet->change_cell_style( ip_column = col_alpha ip_row = row - ip_fill_fgcolor_rgb = 'FFF5DEBF' - ip_fill_filltype = zcl_excel_style_fill=>c_fill_gradient_diagonal45 ). + ip_fill_fgcolor_rgb = 'FFF5DEBF' ). ENDIF. diff --git a/ZA2X/TABL/ZEXCEL_S_CSTYLEX_FILL.slnk b/ZA2X/TABL/ZEXCEL_S_CSTYLEX_FILL.slnk index 18e0244..3c62a01 100644 --- a/ZA2X/TABL/ZEXCEL_S_CSTYLEX_FILL.slnk +++ b/ZA2X/TABL/ZEXCEL_S_CSTYLEX_FILL.slnk @@ -1,26 +1,16 @@ - - + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/ZA2X/TABL/ZEXCEL_S_CSTYLEX_GRADTYPE.slnk b/ZA2X/TABL/ZEXCEL_S_CSTYLEX_GRADTYPE.slnk deleted file mode 100644 index 91b86cb..0000000 --- a/ZA2X/TABL/ZEXCEL_S_CSTYLEX_GRADTYPE.slnk +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/ZA2X/TABL/ZEXCEL_S_CSTYLE_FILL.slnk b/ZA2X/TABL/ZEXCEL_S_CSTYLE_FILL.slnk index ed81bf7..0c2e588 100644 --- a/ZA2X/TABL/ZEXCEL_S_CSTYLE_FILL.slnk +++ b/ZA2X/TABL/ZEXCEL_S_CSTYLE_FILL.slnk @@ -1,26 +1,16 @@ - - + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/ZA2X/TABL/ZEXCEL_S_GRADIENT_TYPE.slnk b/ZA2X/TABL/ZEXCEL_S_GRADIENT_TYPE.slnk deleted file mode 100644 index 58b0466..0000000 --- a/ZA2X/TABL/ZEXCEL_S_GRADIENT_TYPE.slnk +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/ZA2X/TABL/ZEXCEL_S_STYLE_FILL.slnk b/ZA2X/TABL/ZEXCEL_S_STYLE_FILL.slnk index ebbc65d..e1325ca 100644 --- a/ZA2X/TABL/ZEXCEL_S_STYLE_FILL.slnk +++ b/ZA2X/TABL/ZEXCEL_S_STYLE_FILL.slnk @@ -1,5 +1,5 @@ - + @@ -13,14 +13,4 @@ - - - - - - - - - -