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 @@
-
-
-
-
-
-
-
-
-
-