mirror of
https://github.com/abap2xlsx/abap2xlsx.git
synced 2025-05-05 05:46:35 +08:00

git-svn-id: https://subversion.assembla.com/svn/abap2xlsx/trunk@390 b7d68dce-7c3c-4a99-8ce0-9ea847f5d049
116 lines
4.2 KiB
XML
116 lines
4.2 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<PROG NAME="ZDEMO_EXCEL38" VARCL="X" SUBC="1" RSTAT="T" RMAND="100" RLOAD="E" FIXPT="X" UCCHECK="X">
|
|
<textPool>
|
|
<language SPRAS="E">
|
|
<textElement ID="R" ENTRY="Read file and output" LENGTH="20 "/>
|
|
<textElement ID="S" KEY="S_ICON" ENTRY="D ." LENGTH="9 "/>
|
|
</language>
|
|
</textPool>
|
|
<source>REPORT.
|
|
|
|
|
|
DATA: lo_excel TYPE REF TO zcl_excel,
|
|
lo_worksheet TYPE REF TO zcl_excel_worksheet,
|
|
lo_column_dimension TYPE REF TO zcl_excel_worksheet_columndime,
|
|
lo_drawing TYPE REF TO zcl_excel_drawing.
|
|
|
|
TYPES: BEGIN OF gty_icon,
|
|
* name TYPE icon_name, "Fix #228
|
|
name TYPE iconname, "Fix #228
|
|
objid TYPE w3objid,
|
|
END OF gty_icon,
|
|
gtyt_icon TYPE STANDARD TABLE OF gty_icon WITH NON-UNIQUE DEFAULT KEY.
|
|
|
|
DATA: lt_icon TYPE gtyt_icon,
|
|
lv_row TYPE sytabix,
|
|
ls_wwwdatatab TYPE wwwdatatab,
|
|
lt_mimedata TYPE STANDARD TABLE OF w3mime WITH NON-UNIQUE DEFAULT KEY,
|
|
lv_xstring TYPE xstring.
|
|
|
|
FIELD-SYMBOLS: <icon> LIKE LINE OF lt_icon,
|
|
<mimedata> LIKE LINE OF lt_mimedata.
|
|
|
|
CONSTANTS: gc_save_file_name TYPE string VALUE '38_SAP-Icons.xlsx'.
|
|
INCLUDE zdemo_excel_outputopt_incl.
|
|
|
|
|
|
TABLES: icon.
|
|
SELECT-OPTIONS: s_icon FOR icon-name DEFAULT 'ICON_LED_*' OPTION CP.
|
|
|
|
START-OF-SELECTION.
|
|
" Creates active sheet
|
|
CREATE OBJECT lo_excel.
|
|
|
|
" Get active sheet
|
|
lo_worksheet = lo_excel->get_active_worksheet( ).
|
|
lo_worksheet->set_title( ip_title = 'Demo Icons' ).
|
|
lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'A' ).
|
|
lo_column_dimension->set_auto_size( 'X' ).
|
|
lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ).
|
|
lo_column_dimension->set_auto_size( 'X' ).
|
|
|
|
* Get all icons
|
|
SELECT name
|
|
INTO TABLE lt_icon
|
|
FROM icon
|
|
WHERE name IN s_icon
|
|
ORDER BY name.
|
|
LOOP AT lt_icon ASSIGNING <icon>.
|
|
|
|
lv_row = sy-tabix.
|
|
*--------------------------------------------------------------------*
|
|
* Set name of icon
|
|
*--------------------------------------------------------------------*
|
|
lo_worksheet->set_cell( ip_row = lv_row
|
|
ip_column = 'A'
|
|
ip_value = <icon>-name ).
|
|
*--------------------------------------------------------------------*
|
|
* Check whether the mime-repository holds some icondata for us
|
|
*--------------------------------------------------------------------*
|
|
|
|
* Get key
|
|
SELECT SINGLE objid
|
|
INTO <icon>-objid
|
|
FROM wwwdata
|
|
WHERE text = <icon>-name.
|
|
CHECK sy-subrc = 0. " :o(
|
|
lo_worksheet->set_cell( ip_row = lv_row
|
|
ip_column = 'B'
|
|
ip_value = <icon>-objid ).
|
|
|
|
* Load mimedata
|
|
CLEAR lt_mimedata.
|
|
CLEAR ls_wwwdatatab.
|
|
ls_wwwdatatab-relid = 'MI' .
|
|
ls_wwwdatatab-objid = <icon>-objid.
|
|
CALL FUNCTION 'WWWDATA_IMPORT'
|
|
EXPORTING
|
|
key = ls_wwwdatatab
|
|
TABLES
|
|
mime = lt_mimedata
|
|
EXCEPTIONS
|
|
wrong_object_type = 1
|
|
import_error = 2
|
|
OTHERS = 3.
|
|
CHECK sy-subrc = 0. " :o(
|
|
|
|
lo_drawing = lo_excel->add_new_drawing( ).
|
|
lo_drawing->set_position( ip_from_row = lv_row
|
|
ip_from_col = 'C' ).
|
|
CLEAR lv_xstring.
|
|
LOOP AT lt_mimedata ASSIGNING <mimedata>.
|
|
CONCATENATE lv_xstring <mimedata>-line INTO lv_xstring IN BYTE MODE.
|
|
ENDLOOP.
|
|
|
|
lo_drawing->set_media( ip_media = lv_xstring
|
|
ip_media_type = zcl_excel_drawing=>c_media_type_jpg
|
|
ip_width = 16
|
|
ip_height = 14 ).
|
|
lo_worksheet->add_drawing( lo_drawing ).
|
|
|
|
ENDLOOP.
|
|
|
|
*** Create output
|
|
lcl_output=>output( lo_excel ).</source>
|
|
</PROG>
|