mirror of
https://github.com/abap2xlsx/abap2xlsx.git
synced 2025-05-05 11:36:15 +08:00

Added: - Labels management - Serie name TODO: Multiple series and bar charts git-svn-id: https://subversion.assembla.com/svn/abap2xlsx/trunk@383 b7d68dce-7c3c-4a99-8ce0-9ea847f5d049
100 lines
3.6 KiB
XML
100 lines
3.6 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<PROG NAME="ZDEMO_EXCEL39" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
|
|
<textPool>
|
|
<language SPRAS="E">
|
|
<textElement ID="R" ENTRY="abap2xlsx Demo: Drawings" LENGTH="25 "/>
|
|
<textElement ID="S" KEY="POBJTYPE" ENTRY="D ." LENGTH="9 "/>
|
|
<textElement ID="S" KEY="P_CLASS" ENTRY="D ." LENGTH="9 "/>
|
|
<textElement ID="S" KEY="P_OBJID" ENTRY="D ." LENGTH="9 "/>
|
|
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
|
|
</language>
|
|
</textPool>
|
|
<source>*&---------------------------------------------------------------------*
|
|
*& 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_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 labels for chart
|
|
lv_value = 1.
|
|
lo_worksheet->set_cell( ip_column = 'K' ip_row = 1 ip_value = 'One' ).
|
|
lv_value = 2.
|
|
lo_worksheet->set_cell( ip_column = 'K' ip_row = 2 ip_value = 'Two' ).
|
|
lv_value = 3.
|
|
lo_worksheet->set_cell( ip_column = 'K' ip_row = 3 ip_value = 'Three' ).
|
|
|
|
" Set values for chart
|
|
lv_value = 1.
|
|
lo_worksheet->set_cell( ip_column = 'J' ip_row = 1 ip_value = lv_value ).
|
|
lv_value = 2.
|
|
lo_worksheet->set_cell( ip_column = 'J' ip_row = 2 ip_value = lv_value ).
|
|
lv_value = 3.
|
|
lo_worksheet->set_cell( ip_column = 'J' ip_row = 3 ip_value = lv_value ).
|
|
|
|
" Create a pie chart and assign value range
|
|
CREATE OBJECT lo_pie.
|
|
lo_pie->ref = 'Sheet1!$J$1:$J$3'. "VALUE RANGE FOR CHART
|
|
lo_pie->lbl = 'Sheet1!$K$1:$K$3'. "VALUE RANGE FOR CHART
|
|
lo_pie->sername = 'My serie'. "Serie name
|
|
|
|
" 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 TITLE' ).
|
|
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 = 11.
|
|
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 ).</source>
|
|
</PROG>
|