2 new demoreports

demo37: Simplest call of the reader and writer - passthrough data
demo38: Show off integration of drawings ( here using the SAP-Icons )

git-svn-id: https://subversion.assembla.com/svn/abap2xlsx/trunk@350 b7d68dce-7c3c-4a99-8ce0-9ea847f5d049
This commit is contained in:
Stefan Schmöcker 2012-10-30 14:49:51 +00:00
parent 5d1bfcc2d8
commit 203db626b2
2 changed files with 151 additions and 0 deletions

View File

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<PROG NAME="ZDEMO_EXCEL37" VARCL="X" SUBC="1" RSTAT="T" RMAND="100" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="D">
<textElement ID="R" ENTRY="Xlsx-Datei lesen und dann wieder ausgeben" LENGTH="70 "/>
</language>
<language SPRAS="E">
<textElement ID="R" ENTRY="Read xlsx-file and output" LENGTH="25 "/>
</language>
</textPool>
<source>REPORT ZDEMO_EXCEL37.
DATA: excel TYPE REF TO zcl_excel,
reader TYPE REF TO zif_excel_reader.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;37-passthrough.xlsx&apos;.
SELECTION-SCREEN BEGIN OF BLOCK blx WITH FRAME.
PARAMETERS: p_upfile TYPE string OBLIGATORY DEFAULT &apos;c:\temp\Noprinterassigned.xlsx&apos; LOWER CASE.
SELECTION-SCREEN END OF BLOCK blx.
INCLUDE zdemo_excel_outputopt_incl.
START-OF-SELECTION.
TRY.
CREATE OBJECT reader TYPE zcl_excel_reader_2007.
* CREATE OBJECT reader TYPE zcl_excel_reader_xlsm.
excel = reader-&gt;load_file( p_upfile ).
*** Create output
lcl_output=&gt;output( excel ).
CATCH cx_root.
message &apos;Error reading excelfile&apos; type &apos;I&apos;.
ENDTRY.</source>
</PROG>

View File

@ -0,0 +1,114 @@
<?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,
objid TYPE wwwdata-objid,
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: &lt;icon&gt; LIKE LINE OF lt_icon,
&lt;mimedata&gt; LIKE LINE OF lt_mimedata.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;38_SAP-Icons.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
TABLES: icon.
SELECT-OPTIONS: s_icon FOR icon-name DEFAULT &apos;ICON_LED_*&apos; OPTION CP.
START-OF-SELECTION.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Demo Icons&apos; ).
lo_column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;A&apos; ).
lo_column_dimension-&gt;set_auto_size( &apos;X&apos; ).
lo_column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;B&apos; ).
lo_column_dimension-&gt;set_auto_size( &apos;X&apos; ).
* Get all icons
SELECT name
INTO TABLE lt_icon
FROM icon
WHERE name IN s_icon
ORDER BY name.
LOOP AT lt_icon ASSIGNING &lt;icon&gt;.
lv_row = sy-tabix.
*--------------------------------------------------------------------*
* Set name of icon
*--------------------------------------------------------------------*
lo_worksheet-&gt;set_cell( ip_row = lv_row
ip_column = &apos;A&apos;
ip_value = &lt;icon&gt;-name ).
*--------------------------------------------------------------------*
* Check whether the mime-repository holds some icondata for us
*--------------------------------------------------------------------*
* Get key
SELECT SINGLE objid
INTO &lt;icon&gt;-objid
FROM wwwdata
WHERE text = &lt;icon&gt;-name.
CHECK sy-subrc = 0. &quot; :o(
lo_worksheet-&gt;set_cell( ip_row = lv_row
ip_column = &apos;B&apos;
ip_value = &lt;icon&gt;-objid ).
* Load mimedata
CLEAR lt_mimedata.
CLEAR ls_wwwdatatab.
ls_wwwdatatab-relid = &apos;MI&apos; .
ls_wwwdatatab-objid = &lt;icon&gt;-objid.
CALL FUNCTION &apos;WWWDATA_IMPORT&apos;
EXPORTING
key = ls_wwwdatatab
TABLES
mime = lt_mimedata
EXCEPTIONS
wrong_object_type = 1
import_error = 2
OTHERS = 3.
CHECK sy-subrc = 0. &quot; :o(
lo_drawing = lo_excel-&gt;add_new_drawing( ).
lo_drawing-&gt;set_position( ip_from_row = lv_row
ip_from_col = &apos;C&apos; ).
CLEAR lv_xstring.
LOOP AT lt_mimedata ASSIGNING &lt;mimedata&gt;.
CONCATENATE lv_xstring &lt;mimedata&gt;-line INTO lv_xstring IN BYTE MODE.
ENDLOOP.
lo_drawing-&gt;set_media( ip_media = lv_xstring
ip_media_type = &apos;jpg&apos;
ip_width = 16
ip_height = 14 ).
lo_worksheet-&gt;add_drawing( lo_drawing ).
ENDLOOP.
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>