diff --git a/ZA2X/CLAS/ZCL_EXCEL_COMMON.slnk b/ZA2X/CLAS/ZCL_EXCEL_COMMON.slnk
index 34bbeaf..87447d7 100644
--- a/ZA2X/CLAS/ZCL_EXCEL_COMMON.slnk
+++ b/ZA2X/CLAS/ZCL_EXCEL_COMMON.slnk
@@ -2213,7 +2213,7 @@ endmethod.
lv_numchars TYPE i, " Number of characters counter
lv_tchar(1) TYPE c, " Temp character
lv_tchar2(1) TYPE c, " Temp character
- lv_cur_form(132) TYPE c, " Formula for current cell
+ lv_cur_form(2000) TYPE c, " Formula for current cell
lv_ref_cell_addr TYPE string, " Reference cell address
lv_tcol1 TYPE string, " Temp column letter
lv_tcol2 TYPE string, " Temp column letter
diff --git a/ZA2X/CLAS/ZCL_EXCEL_STYLE_COLOR.slnk b/ZA2X/CLAS/ZCL_EXCEL_STYLE_COLOR.slnk
index 341e829..cccd030 100644
--- a/ZA2X/CLAS/ZCL_EXCEL_STYLE_COLOR.slnk
+++ b/ZA2X/CLAS/ZCL_EXCEL_STYLE_COLOR.slnk
@@ -35,16 +35,48 @@
+
+
+
+
+
+ METHOD create_new_arbg_int.
+ DATA: lv_red TYPE int1,
+ lv_green TYPE int1,
+ lv_blue TYPE int1,
+ lv_hex TYPE x,
+ lv_char_red TYPE zexcel_style_color_component,
+ lv_char_green TYPE zexcel_style_color_component,
+ lv_char_blue TYPE zexcel_style_color_component.
+
+ lv_red = iv_red MOD 256.
+ lv_green = iv_green MOD 256.
+ lv_blue = iv_blue MOD 256.
+
+ lv_hex = lv_red.
+ lv_char_red = lv_hex.
+
+ lv_hex = lv_green.
+ lv_char_green = lv_hex.
+
+ lv_hex = lv_blue.
+ lv_char_blue = lv_hex.
+
+
+ concatenate zcl_excel_style_color=>c_alpha lv_char_red lv_char_green lv_char_blue into rv_color_argb.
+
+
+ENDMETHOD.
+
- method CREATE_NEW_ARGB.
-
+ METHOD create_new_argb.
CONCATENATE zcl_excel_style_color=>c_alpha ip_red ip_green ip_blu INTO ep_color_argb.
- endmethod.
+ENDMETHOD.
diff --git a/ZA2X/PROG/ZDEMO_EXCEL37.slnk b/ZA2X/PROG/ZDEMO_EXCEL37.slnk
index 40de160..d146253 100644
--- a/ZA2X/PROG/ZDEMO_EXCEL37.slnk
+++ b/ZA2X/PROG/ZDEMO_EXCEL37.slnk
@@ -29,17 +29,17 @@
DATA: excel TYPE REF TO zcl_excel,
reader TYPE REF TO zif_excel_reader,
go_error TYPE REF TO cx_root,
+ gv_memid_gr8 TYPE text255,
gv_message TYPE string,
lv_extension TYPE string,
gv_error_program_name TYPE syrepid,
gv_error_include_name TYPE syrepid,
gv_error_line TYPE i.
-
-CONSTANTS: gc_save_file_name TYPE string VALUE '37- Read template and output.xlsx'.
+DATA: gc_save_file_name TYPE string VALUE '37- Read template and output.&'.
SELECTION-SCREEN BEGIN OF BLOCK blx WITH FRAME.
-PARAMETERS: p_upfile TYPE string DEFAULT 'c:\temp\whatever.xlsx' LOWER CASE.
+PARAMETERS: p_upfile TYPE string LOWER CASE MEMORY ID gr8.
SELECTION-SCREEN END OF BLOCK blx.
INCLUDE zdemo_excel_outputopt_incl.
@@ -60,6 +60,12 @@ SELECTION-SCREEN END OF BLOCK bl_err.
INITIALIZATION.
PERFORM setup_listboxes.
cmt_dump = text-dum.
+ GET PARAMETER ID 'GR8' FIELD gv_memid_gr8.
+ p_upfile = gv_memid_gr8.
+
+ IF p_upfile IS INITIAL.
+ p_upfile = 'c:\temp\whatever.xlsx'.
+ ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_upfile.
PERFORM f4_p_upfile CHANGING p_upfile.
@@ -275,6 +281,7 @@ FORM read_template RAISING zcx_excel .
WHEN OTHERS.
CREATE OBJECT reader TYPE (lb_read).
+ excel = reader->load_file( p_upfile ).
"Use template for charts
excel->use_template = abap_true.
@@ -296,9 +303,11 @@ FORM write_template RAISING zcx_excel.
CASE lv_extension.
WHEN '.XLSX'.
+ REPLACE '&' IN gc_save_file_name WITH 'xlsx'. " Pass extension for standard writer
lcl_output=>output( excel ).
WHEN '.XLSM'.
+ REPLACE '&' IN gc_save_file_name WITH 'xlsm'. " Pass extension for macro-writer
lcl_output=>output( cl_excel = excel
iv_writerclass_name = 'ZCL_EXCEL_WRITER_XLSM' ).