*&---------------------------------------------------------------------* *& Report ZDEMO_EXCEL16 *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* REPORT zdemo_excel39. DATA: lo_excel TYPE REF TO zcl_excel, lo_worksheet TYPE REF TO zcl_excel_worksheet, lo_drawing TYPE REF TO zcl_excel_drawing. DATA lv_value TYPE i. DATA: ls_io TYPE skwf_io. DATA: ls_upper TYPE zexcel_drawing_location, ls_lower TYPE zexcel_drawing_location. DATA lo_bar TYPE REF TO zcl_excel_graph_bars. DATA lo_bar2 TYPE REF TO zcl_excel_graph_bars. DATA lo_pie TYPE REF TO zcl_excel_graph_pie. DATA lv_media TYPE xstring. CONSTANTS: gc_save_file_name TYPE string VALUE '39_Charts.xlsx'. INCLUDE zdemo_excel_outputopt_incl. START-OF-SELECTION. " Creates active sheet CREATE OBJECT lo_excel. " Get active sheet lo_worksheet = lo_excel->get_active_worksheet( ). lo_worksheet->set_title( 'Sheet1' ). " Set values for chart lv_value = 1. lo_worksheet->set_cell( ip_column = 'A' ip_row = 1 ip_value = lv_value ). lv_value = 2. lo_worksheet->set_cell( ip_column = 'A' ip_row = 2 ip_value = lv_value ). lv_value = 3. lo_worksheet->set_cell( ip_column = 'A' ip_row = 3 ip_value = lv_value ). " Set labels for chart lo_worksheet->set_cell( ip_column = 'B' ip_row = 1 ip_value = 'One' ). lo_worksheet->set_cell( ip_column = 'B' ip_row = 2 ip_value = 'Two' ). lo_worksheet->set_cell( ip_column = 'B' ip_row = 3 ip_value = 'Three' ). " Set values for chart lv_value = 3. lo_worksheet->set_cell( ip_column = 'C' ip_row = 1 ip_value = lv_value ). lv_value = 2. lo_worksheet->set_cell( ip_column = 'C' ip_row = 2 ip_value = lv_value ). lv_value = 1. lo_worksheet->set_cell( ip_column = 'C' ip_row = 3 ip_value = lv_value ). " Set labels for chart lo_worksheet->set_cell( ip_column = 'D' ip_row = 3 ip_value = 'One' ). lo_worksheet->set_cell( ip_column = 'D' ip_row = 2 ip_value = 'Two' ). lo_worksheet->set_cell( ip_column = 'D' ip_row = 1 ip_value = 'Three' ). " Create a pie chart and series CREATE OBJECT lo_pie. CALL METHOD lo_pie->create_serie EXPORTING ip_idx = 0 ip_order = 0 ip_lbl = 'Sheet1!$B$1:$B$3' ip_REF = 'Sheet1!$A$1:$A$3' ip_sername = 'My serie 1' . CALL METHOD lo_pie->create_serie EXPORTING ip_idx = 1 ip_order = 1 ip_lbl = 'Sheet1!$D$1:$D$3' ip_REF = 'Sheet1!$C$1:$C$3' ip_sername = 'My serie 2' . " Create a bar chart, series and axes CREATE OBJECT lo_bar. CALL METHOD lo_bar->create_serie EXPORTING ip_idx = 0 ip_order = 0 ip_invertIfNegative = '0' ip_lbl = 'Sheet1!$D$1:$D$3' ip_REF = 'Sheet1!$C$1:$C$3' ip_sername = 'My serie 1' . CALL METHOD lo_bar->create_serie EXPORTING ip_idx = 1 ip_order = 1 ip_invertIfNegative = '0' ip_lbl = 'Sheet1!$B$1:$B$3' ip_REF = 'Sheet1!$A$1:$A$3' ip_sername = 'My serie 2' . CALL METHOD lo_bar->create_ax EXPORTING * ip_axid = ip_type = zcl_excel_graph_bars=>c_catax * ip_orientation = * ip_delete = * ip_axpos = * ip_formatcode = * ip_sourcelinked = * ip_majortickmark = * ip_minortickmark = * ip_ticklblpos = * ip_crossax = * ip_crosses = * ip_auto = * ip_lblalgn = * ip_lbloffset = * ip_nomultilvllbl = * ip_crossbetween = . CALL METHOD lo_bar->create_ax EXPORTING * ip_axid = ip_type = zcl_excel_graph_bars=>c_valax * ip_orientation = * ip_delete = * ip_axpos = * ip_formatcode = * ip_sourcelinked = * ip_majortickmark = * ip_minortickmark = * ip_ticklblpos = * ip_crossax = * ip_crosses = * ip_auto = * ip_lblalgn = * ip_lbloffset = * ip_nomultilvllbl = * ip_crossbetween = . " Create a bar chart, series and axes CREATE OBJECT lo_bar2. CALL METHOD lo_bar2->create_serie EXPORTING ip_idx = 0 ip_order = 0 ip_invertIfNegative = '0' ip_lbl = 'Sheet1!$D$1:$D$3' ip_REF = 'Sheet1!$C$1:$C$3' ip_sername = 'My serie 1' . CALL METHOD lo_bar2->create_ax EXPORTING * ip_axid = ip_type = zcl_excel_graph_bars=>c_catax * ip_orientation = * ip_delete = * ip_axpos = * ip_formatcode = * ip_sourcelinked = * ip_majortickmark = * ip_minortickmark = * ip_ticklblpos = * ip_crossax = * ip_crosses = * ip_auto = * ip_lblalgn = * ip_lbloffset = * ip_nomultilvllbl = * ip_crossbetween = . CALL METHOD lo_bar2->create_ax EXPORTING * ip_axid = ip_type = zcl_excel_graph_bars=>c_valax * ip_orientation = * ip_delete = * ip_axpos = * ip_formatcode = * ip_sourcelinked = * ip_majortickmark = * ip_minortickmark = * ip_ticklblpos = * ip_crossax = * ip_crosses = * ip_auto = * ip_lblalgn = * ip_lbloffset = * ip_nomultilvllbl = * ip_crossbetween = . " Create global drawing, set type as pie chart, assign chart, set position and media type lo_drawing = lo_worksheet->excel->add_new_drawing( ip_type = zcl_excel_drawing=>type_chart ip_title = 'CHART PIE' ). lo_drawing->graph = lo_pie. lo_drawing->graph_type = zcl_excel_drawing=>c_graph_pie. "Set chart position (anchor 2 cells) ls_lower-row = 22. ls_lower-col = 10. lo_drawing->set_position2( EXPORTING ip_from = ls_upper ip_to = ls_lower ). lo_drawing->set_media( EXPORTING ip_media = lv_media "used for template (binary content) ip_media_type = 'xml' ip_width = 0 "used only for image types, not for charts ip_height = 0 ). "used only for image types, not for charts lo_worksheet->add_drawing( lo_drawing ). " Create global drawing, set type as pie chart, assign chart, set position and media type lo_drawing = lo_worksheet->excel->add_new_drawing( ip_type = zcl_excel_drawing=>type_chart ip_title = 'CHART BARS' ). lo_drawing->graph = lo_bar. lo_drawing->graph_type = zcl_excel_drawing=>c_graph_bars. "Set chart position (anchor 2 cells) ls_upper-row = 0. ls_upper-col = 11. ls_lower-row = 22. ls_lower-col = 21. lo_drawing->set_position2( EXPORTING ip_from = ls_upper ip_to = ls_lower ). lo_drawing->set_media( EXPORTING ip_media = lv_media "used for template (binary content) ip_media_type = 'xml' ip_width = 0 "used only for image types, not for charts ip_height = 0 ). "used only for image types, not for charts lo_worksheet->add_drawing( lo_drawing ). " Create global drawing, set type as pie chart, assign chart, set position and media type lo_drawing = lo_worksheet->excel->add_new_drawing( ip_type = zcl_excel_drawing=>type_chart ip_title = 'CHART BARS WITH 1 SERIE' ). lo_drawing->graph = lo_bar2. lo_drawing->graph_type = zcl_excel_drawing=>c_graph_bars. "Set chart position (anchor 2 cells) ls_upper-row = 23. ls_upper-col = 0. ls_lower-row = 31. ls_lower-col = 10. lo_drawing->set_position2( EXPORTING ip_from = ls_upper ip_to = ls_lower ). lo_drawing->set_media( EXPORTING ip_media = lv_media "used for template (binary content) ip_media_type = 'xml' ip_width = 0 "used only for image types, not for charts ip_height = 0 ). "used only for image types, not for charts lo_worksheet->add_drawing( lo_drawing ). *** Create output lcl_output=>output( lo_excel ).