#148 - Changing the demoreports

git-svn-id: https://subversion.assembla.com/svn/abap2xlsx/trunk@275 b7d68dce-7c3c-4a99-8ce0-9ea847f5d049
This commit is contained in:
Stefan Schmöcker 2012-03-23 22:19:29 +00:00
parent d03563a434
commit 23643ca2db
26 changed files with 477 additions and 1221 deletions

View File

@ -0,0 +1,262 @@
<?xml version="1.0" encoding="iso-8859-2"?>
<PROG NAME="ZABAP2XLSX_DEMO_SHOW" VARCL="X" SUBC="1" CNAM="K2_SCHMOECK" CDAT="20120322" UNAM="K2_SCHMOECK" UDAT="20120323" VERN="000032" RSTAT="T" RMAND="007" RLOAD="E" FIXPT="X" SDATE="20120323" STIME="205058" IDATE="20120323" ITIME="205058" UCCHECK="X">
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZABAP2XLSX_DEMO_SHOW
*&amp;---------------------------------------------------------------------*
REPORT zabap2xlsx_demo_like_se83.
*----------------------------------------------------------------------*
* CLASS lcl_perform DEFINITION
*----------------------------------------------------------------------*
CLASS lcl_perform DEFINITION CREATE PRIVATE.
PUBLIC SECTION.
CLASS-METHODS: setup_objects,
collect_reports,
handle_nav FOR EVENT double_click OF cl_gui_alv_grid
IMPORTING e_row.
PRIVATE SECTION.
TYPES: BEGIN OF ty_reports,
progname TYPE reposrc-progname,
sort TYPE reposrc-progname,
filename TYPE string,
END OF ty_reports.
CLASS-DATA:
lo_grid TYPE REF TO cl_gui_alv_grid,
lo_text TYPE REF TO cl_gui_textedit,
cl_document TYPE REF TO i_oi_document_proxy,
t_reports TYPE STANDARD TABLE OF ty_reports WITH NON-UNIQUE DEFAULT KEY.
CLASS-DATA:error TYPE REF TO i_oi_error,
t_errors TYPE STANDARD TABLE OF REF TO i_oi_error WITH NON-UNIQUE DEFAULT KEY,
cl_control TYPE REF TO i_oi_container_control. &quot;Office Dokument
ENDCLASS. &quot;lcl_perform DEFINITION
START-OF-SELECTION.
lcl_perform=&gt;collect_reports( ).
lcl_perform=&gt;setup_objects( ).
END-OF-SELECTION.
WRITE &apos;.&apos;. &quot; Force output
*----------------------------------------------------------------------*
* CLASS lcl_perform IMPLEMENTATION
*----------------------------------------------------------------------*
CLASS lcl_perform IMPLEMENTATION.
METHOD setup_objects.
DATA: lo_split TYPE REF TO cl_gui_splitter_container,
lo_container TYPE REF TO cl_gui_container.
DATA: it_fieldcat TYPE lvc_t_fcat,
is_layout TYPE lvc_s_layo,
is_variant TYPE disvariant.
FIELD-SYMBOLS: &lt;fc&gt; LIKE LINE OF it_fieldcat.
CREATE OBJECT lo_split
EXPORTING
parent = cl_gui_container=&gt;screen0
rows = 1
columns = 3
no_autodef_progid_dynnr = &apos;X&apos;.
lo_split-&gt;set_column_width( EXPORTING id = 1
width = 20 ).
lo_split-&gt;set_column_width( EXPORTING id = 2
width = 40 ).
* Left: List of reports
lo_container = lo_split-&gt;get_container( row = 1
column = 1 ).
CREATE OBJECT lo_grid
EXPORTING
i_parent = lo_container.
SET HANDLER lcl_perform=&gt;handle_nav FOR lo_grid.
is_variant-report = sy-repid.
is_variant-handle = &apos;0001&apos;.
is_layout-cwidth_opt = &apos;X&apos;.
APPEND INITIAL LINE TO it_fieldcat ASSIGNING &lt;fc&gt;.
&lt;fc&gt;-fieldname = &apos;PROGNAME&apos;.
&lt;fc&gt;-tabname = &apos;REPOSRC&apos;.
APPEND INITIAL LINE TO it_fieldcat ASSIGNING &lt;fc&gt;.
&lt;fc&gt;-fieldname = &apos;SORT&apos;.
&lt;fc&gt;-ref_field = &apos;PROGNAME&apos;.
&lt;fc&gt;-ref_table = &apos;REPOSRC&apos;.
lo_grid-&gt;set_table_for_first_display( EXPORTING
is_variant = is_variant
i_save = &apos;A&apos;
is_layout = is_layout
CHANGING
it_outtab = t_reports
it_fieldcatalog = it_fieldcat
EXCEPTIONS
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
OTHERS = 4 ).
* Middle: Text with coding
lo_container = lo_split-&gt;get_container( row = 1
column = 2 ).
CREATE OBJECT lo_text
EXPORTING
parent = lo_container.
lo_text-&gt;set_readonly_mode( cl_gui_textedit=&gt;true ).
lo_text-&gt;set_font_fixed( ).
* right: DemoOutput
lo_container = lo_split-&gt;get_container( row = 1
column = 3 ).
c_oi_container_control_creator=&gt;get_container_control( IMPORTING control = cl_control
error = error ).
APPEND error TO t_errors.
cl_control-&gt;init_control( EXPORTING inplace_enabled = &apos;X&apos;
no_flush = &apos;X&apos;
r3_application_name = &apos;Demo Document Container&apos;
parent = lo_container
IMPORTING error = error
EXCEPTIONS OTHERS = 2 ).
APPEND error TO t_errors.
cl_control-&gt;get_document_proxy( EXPORTING document_type = &apos;Excel.Sheet&apos; &quot; EXCEL
no_flush = &apos; &apos;
IMPORTING document_proxy = cl_document
error = error ).
APPEND error TO t_errors.
* Errorhandling should be inserted here
ENDMETHOD. &quot;setup_objects
&quot;collect_reports
METHOD collect_reports.
FIELD-SYMBOLS:&lt;report&gt; LIKE LINE OF t_reports.
DATA: t_source TYPE STANDARD TABLE OF text255 WITH NON-UNIQUE DEFAULT KEY.
* Get all demoreports
SELECT progname
INTO CORRESPONDING FIELDS OF TABLE t_reports
FROM reposrc
WHERE progname LIKE &apos;ZDEMO_EXCEL%&apos;
AND progname &lt;&gt; sy-repid
AND subc = &apos;1&apos;.
LOOP AT t_reports ASSIGNING &lt;report&gt;.
* Check if already switched to new outputoptions
READ REPORT &lt;report&gt;-progname INTO t_source.
IF sy-subrc = 0.
FIND &apos;INCLUDE zdemo_excel_outputopt_incl.&apos; IN TABLE t_source IGNORING CASE.
ENDIF.
IF sy-subrc &lt;&gt; 0.
DELETE t_reports.
CONTINUE.
ENDIF.
* Build half-numeric sort
&lt;report&gt;-sort = &lt;report&gt;-progname.
REPLACE REGEX &apos;(ZDEMO_EXCEL)(\d\d)\s*$&apos; IN &lt;report&gt;-sort WITH &apos;$1\0$2&apos;. &quot; REPLACE REGEX &apos;(ZDEMO_EXCEL)([^][^])*$&apos; IN &lt;report&gt;-sort WITH &apos;$1$2&apos;.REPLACE REGEX &apos;(ZDEMO_EXCEL)([^][^])*$&apos; IN &lt;report&gt;-sort WITH &apos;$1$2&apos;.REPLACE
REPLACE REGEX &apos;(ZDEMO_EXCEL)(\d)\s*$&apos; IN &lt;report&gt;-sort WITH &apos;$1\0\0$2&apos;.
ENDLOOP.
SORT t_reports BY sort progname.
ENDMETHOD. &quot;collect_reports
METHOD handle_nav.
CONSTANTS: filename TYPE text80 VALUE &apos;ZABAP2XLSX_DEMO_SHOW.xlsx&apos;.
DATA: wa_report LIKE LINE OF t_reports,
t_source TYPE STANDARD TABLE OF text255,
t_rawdata TYPE solix_tab,
wa_rawdata LIKE LINE OF t_rawdata,
bytecount TYPE i,
length TYPE i,
add_selopt TYPE flag.
READ TABLE t_reports INTO wa_report INDEX e_row-index.
CHECK sy-subrc = 0.
* Set new text into middle frame
READ REPORT wa_report-progname INTO t_source.
lo_text-&gt;set_text_as_r3table( EXPORTING table = t_source ).
* Unload old xls-file
cl_document-&gt;close_document( ).
* Get the demo
* If additional parameters found on selection screen, start via selection screen , otherwise start w/o
CLEAR add_selopt.
FIND &apos;PARAMETERS&apos; IN TABLE t_source.
IF sy-subrc = 0.
add_selopt = &apos;X&apos;.
ELSE.
FIND &apos;SELECT-OPTIONS&apos; IN TABLE t_source.
IF sy-subrc = 0.
add_selopt = &apos;X&apos;.
ENDIF.
ENDIF.
IF add_selopt IS INITIAL.
SUBMIT (wa_report-progname) AND RETURN
WITH p_backfn = filename
WITH rb_back = &apos;X&apos;
WITH rb_down = &apos; &apos;
WITH rb_send = &apos; &apos;
WITH rb_show = &apos; &apos;.
ELSE.
SUBMIT (wa_report-progname) VIA SELECTION-SCREEN AND RETURN
WITH p_backfn = filename
WITH rb_back = &apos;X&apos;
WITH rb_down = &apos; &apos;
WITH rb_send = &apos; &apos;
WITH rb_show = &apos; &apos;.
ENDIF.
OPEN DATASET filename FOR INPUT IN BINARY MODE.
IF sy-subrc = 0.
DO.
CLEAR wa_rawdata.
READ DATASET filename INTO wa_rawdata LENGTH length.
IF sy-subrc &lt;&gt; 0.
APPEND wa_rawdata TO t_rawdata.
ADD length TO bytecount.
EXIT.
ENDIF.
APPEND wa_rawdata TO t_rawdata.
ADD length TO bytecount.
ENDDO.
CLOSE DATASET filename.
ENDIF.
cl_control-&gt;get_document_proxy( EXPORTING document_type = &apos;Excel.Sheet&apos; &quot; EXCEL
no_flush = &apos; &apos;
IMPORTING document_proxy = cl_document
error = error ).
cl_document-&gt;open_document_from_table( EXPORTING document_size = bytecount
document_table = t_rawdata
open_inplace = &apos;X&apos; ).
ENDMETHOD. &quot;handle_nav
ENDCLASS. &quot;lcl_perform IMPLEMENTATION</source>
</PROG>

View File

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL1" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100711" UNAM="FEMIA" UDAT="20120103" VERN="000063" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20120103" STIME="001528" IDATE="20120103" ITIME="001528" UCCHECK="X">
<?xml version="1.0" encoding="iso-8859-2"?>
<PROG NAME="ZDEMO_EXCEL1" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100711" UNAM="K2_SCHMOECK" UDAT="20120321" VERN="000068" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20120323" STIME="211219" IDATE="20120321" ITIME="235313" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Hello World" LENGTH="27 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
<textElement ID="S" KEY="RB_BACK" LENGTH="17 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
@ -18,48 +18,21 @@ REPORT zdemo_excel1.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;01_HelloWorld.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;01_HelloWorld.xlsx&apos;.
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lv_workdir = p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = lv_workdir
CHANGING selected_folder = lv_workdir ).
p_path = lv_workdir.
INITIALIZATION.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
cl_gui_cfw=&gt;flush( ).
p_path = lv_workdir.
START-OF-SELECTION.
IF p_path IS INITIAL.
p_path = lv_workdir.
ENDIF.
cl_gui_frontend_services=&gt;get_file_separator( CHANGING file_separator = lv_file_separator ).
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
&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;Sheet1&apos; ).
* lo_worksheet-&gt;set_title( ip_title = &apos;Sheet1&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 2 ip_value = &apos;Hello world&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 3 ip_value = sy-datum ).
lo_worksheet-&gt;set_cell( ip_column = &apos;C&apos; ip_row = 3 ip_value = sy-uzeit ).
@ -69,24 +42,8 @@ START-OF-SELECTION.
column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;B&apos; ).
column_dimension-&gt;set_width( ip_width = 11 ).
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
&quot; Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos;
EXPORTING
buffer = lv_file
IMPORTING
output_length = lv_bytecount
TABLES
binary_tab = lt_file_tab.
* &quot; This method is only available on AS ABAP &gt; 6.40
* lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
* lv_bytecount = xstrlen( lv_file ).
&quot; Save the file
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL10" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100719" UNAM="FEMIA" UDAT="20110528" VERN="000075" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20110530" STIME="111409" IDATE="20110528" ITIME="181954" UCCHECK="X">
<?xml version="1.0" encoding="iso-8859-2"?>
<PROG NAME="ZDEMO_EXCEL10" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100719" UNAM="K2_SCHMOECK" UDAT="20120322" VERN="000078" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20120323" STIME="211219" IDATE="20120322" ITIME="234544" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Format internal table with field catalog" LENGTH="56 "/>
<textElement ID="R" LENGTH="56 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
@ -17,7 +17,6 @@
REPORT zdemo_excel10.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_conditional2 TYPE REF TO zcl_excel_style_conditional,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime.
@ -26,38 +25,12 @@ DATA: lt_field_catalog TYPE zexcel_t_fieldcatalog,
ls_table_settings TYPE zexcel_s_table_settings,
ls_iconset TYPE zexcel_conditional_iconset.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;10_iTabFieldCatalog.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;10_iTabFieldCatalog.xlsx&apos;.
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lv_workdir = p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = lv_workdir
CHANGING selected_folder = lv_workdir ).
p_path = lv_workdir.
INITIALIZATION.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
cl_gui_cfw=&gt;flush( ).
p_path = lv_workdir.
START-OF-SELECTION.
IF p_path IS INITIAL.
p_path = lv_workdir.
ENDIF.
cl_gui_frontend_services=&gt;get_file_separator( CHANGING file_separator = lv_file_separator ).
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
FIELD-SYMBOLS: &lt;fs_field_catalog&gt; TYPE zexcel_s_fieldcatalog.
&quot; Creates active sheet
@ -122,24 +95,7 @@ START-OF-SELECTION.
column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;D&apos; ). &quot;make date field a bit wider
column_dimension-&gt;set_width( ip_width = 13 ).
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
&quot; Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos;
EXPORTING
buffer = lv_file
IMPORTING
output_length = lv_bytecount
TABLES
binary_tab = lt_file_tab.
* &quot; This method is only available on AS ABAP &gt; 6.40
* lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
* lv_bytecount = xstrlen( lv_file ).
&quot; Save the file
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL11" VARCL="X" SUBC="1" CNAM="BCUSER" CDAT="20100809" UNAM="FEMIA" UDAT="20110528" VERN="000063" RSTAT="K" RMAND="000" RLOAD="E" FIXPT="X" SDATE="20110528" STIME="181954" IDATE="20110528" ITIME="181954" UCCHECK="X">
<?xml version="1.0" encoding="iso-8859-2"?>
<PROG NAME="ZDEMO_EXCEL11" VARCL="X" SUBC="1" CNAM="BCUSER" CDAT="20100809" UNAM="K2_SCHMOECK" UDAT="20120323" VERN="000065" RSTAT="K" RMAND="000" RLOAD="E" FIXPT="X" SDATE="20120323" STIME="211219" IDATE="20120323" ITIME="204502" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Export Organisation and Contact Persons" LENGTH="55 "/>
<textElement ID="R" LENGTH="55 "/>
<textElement ID="S" KEY="COUNTRY" ENTRY="D ." LENGTH="19 "/>
<textElement ID="S" KEY="MAXSEL" ENTRY="D ." LENGTH="27 "/>
<textElement ID="S" KEY="MD" ENTRY=" Select by master data" LENGTH="29 "/>
@ -46,13 +46,9 @@ FIELD-SYMBOLS: &lt;relationship_address&gt; LIKE LINE OF relationship_addresses.
DATA: lt_download TYPE TABLE OF zexcel_s_org_rel.
FIELD-SYMBOLS: &lt;download&gt; LIKE LINE OF lt_download.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;11_Export_Org_and_Contact.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;11_Export_Org_and_Contact.xlsx&apos;.
PARAMETERS: p_path TYPE zexcel_export_dir.
PARAMETERS: md TYPE flag RADIOBUTTON GROUP act.
@ -70,27 +66,11 @@ PARAMETERS: reltyp TYPE bu_reltyp DEFAULT &apos;BUR011&apos;,
partner TYPE bu_partner DEFAULT &apos;191&apos;.
SELECTION-SCREEN END OF BLOCK b.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lv_workdir = p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = lv_workdir
CHANGING selected_folder = lv_workdir ).
p_path = lv_workdir.
INITIALIZATION.
a = &apos;Select by master data&apos;.
b = &apos;Select by relationship&apos;.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
cl_gui_cfw=&gt;flush( ).
p_path = lv_workdir.
START-OF-SELECTION.
IF p_path IS INITIAL.
p_path = lv_workdir.
ENDIF.
cl_gui_frontend_services=&gt;get_file_separator( CHANGING file_separator = lv_file_separator ).
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
IF md = abap_true.
&quot; Read all Companies by Master Data
central_search-partnercategory = partnerc.
@ -228,7 +208,6 @@ START-OF-SELECTION.
ENDLOOP.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_body TYPE REF TO zcl_excel_style,
lo_border_dark TYPE REF TO zcl_excel_style_border,
@ -450,24 +429,7 @@ START-OF-SELECTION.
* column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;R&apos; ).
* column_dimension-&gt;set_width( ip_width = 40 ).
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
&quot; Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos;
EXPORTING
buffer = lv_file
IMPORTING
output_length = lv_bytecount
TABLES
binary_tab = lt_file_tab.
* &quot; This method is only available on AS ABAP &gt; 6.40
* lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
* lv_bytecount = xstrlen( lv_file ).
&quot; Save the file
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL12" VARCL="X" SUBC="1" CNAM="BCUSER" CDAT="20100811" UNAM="FEMIA" UDAT="20111101" VERN="000045" RSTAT="T" RMAND="000" RLOAD="E" FIXPT="X" SDATE="20111101" STIME="104442" IDATE="20111101" ITIME="104442" UCCHECK="X">
<?xml version="1.0" encoding="iso-8859-2"?>
<PROG NAME="ZDEMO_EXCEL12" VARCL="X" SUBC="1" CNAM="BCUSER" CDAT="20100811" UNAM="K2_SCHMOECK" UDAT="20120323" VERN="000048" RSTAT="T" RMAND="000" RLOAD="E" FIXPT="X" SDATE="20120323" STIME="211219" IDATE="20120323" ITIME="205701" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Hide Columns" LENGTH="28 "/>
<textElement ID="R" LENGTH="28 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
@ -17,7 +17,6 @@
REPORT zdemo_excel12.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime,
row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi.
@ -30,29 +29,11 @@ DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;12_HideSizeOutlineRowsAndColumns.xlsx&apos;.
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lv_workdir = p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = lv_workdir
CHANGING selected_folder = lv_workdir ).
p_path = lv_workdir.
INITIALIZATION.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
cl_gui_cfw=&gt;flush( ).
p_path = lv_workdir.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;12_HideSizeOutlineRowsAndColumns.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
START-OF-SELECTION.
IF p_path IS INITIAL.
p_path = lv_workdir.
ENDIF.
cl_gui_frontend_services=&gt;get_file_separator( CHANGING file_separator = lv_file_separator ).
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
@ -108,24 +89,6 @@ START-OF-SELECTION.
row_dimension = lo_worksheet-&gt;get_row_dimension( ip_row = 8 ).
row_dimension-&gt;set_outline_level( ip_outline_level = 2 ).
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( io_excel = lo_excel ).
&quot; Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos;
EXPORTING
buffer = lv_file
IMPORTING
output_length = lv_bytecount
TABLES
binary_tab = lt_file_tab.
* &quot; This method is only available on AS ABAP &gt; 6.40
* lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
* lv_bytecount = xstrlen( lv_file ).
&quot; Save the file
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL13" VARCL="X" SUBC="1" CNAM="ATEJADA" CDAT="20100812" UNAM="FEMIA" UDAT="20110611" VERN="000054" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20110611" STIME="110400" IDATE="20110611" ITIME="103640" UCCHECK="X">
<?xml version="1.0" encoding="iso-8859-2"?>
<PROG NAME="ZDEMO_EXCEL13" VARCL="X" SUBC="1" CNAM="ATEJADA" CDAT="20100812" UNAM="K2_SCHMOECK" UDAT="20120323" VERN="000057" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20120323" STIME="211219" IDATE="20120323" ITIME="205937" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Merge cells" LENGTH="27 "/>
<textElement ID="R" LENGTH="27 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
@ -17,43 +17,17 @@
REPORT zdemo_excel13.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lv_style_bold_border_guid TYPE zexcel_cell_style,
lo_style_bold_border TYPE REF TO zcl_excel_style,
lo_border_dark TYPE REF TO zcl_excel_style_border.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;13_MergedCells.xlsx&apos;.
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lv_workdir = p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = lv_workdir
CHANGING selected_folder = lv_workdir ).
p_path = lv_workdir.
INITIALIZATION.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
cl_gui_cfw=&gt;flush( ).
p_path = lv_workdir.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;13_MergedCells.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
START-OF-SELECTION.
IF p_path IS INITIAL.
p_path = lv_workdir.
ENDIF.
cl_gui_frontend_services=&gt;get_file_separator( CHANGING file_separator = lv_file_separator ).
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
CREATE OBJECT lo_excel.
&quot; Get active sheet
@ -112,24 +86,7 @@ START-OF-SELECTION.
lo_worksheet-&gt;set_merge( ip_row = 13 ip_column_start = &apos;E&apos; ip_column_end = &apos;F&apos; ).
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
&quot; Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos;
EXPORTING
buffer = lv_file
IMPORTING
output_length = lv_bytecount
TABLES
binary_tab = lt_file_tab.
* &quot; This method is only available on AS ABAP &gt; 6.40
* lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
* lv_bytecount = xstrlen( lv_file ).
&quot; Save the file
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL14" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100817" UNAM="FEMIA" UDAT="20110528" VERN="000054" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20110530" STIME="095303" IDATE="20110528" ITIME="181954" UCCHECK="X">
<?xml version="1.0" encoding="iso-8859-2"?>
<PROG NAME="ZDEMO_EXCEL14" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100817" UNAM="K2_SCHMOECK" UDAT="20120323" VERN="000056" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20120323" STIME="211219" IDATE="20120323" ITIME="210022" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Alignment" LENGTH="25 "/>
<textElement ID="R" LENGTH="25 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
@ -17,7 +17,6 @@
REPORT zdemo_excel14.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_center TYPE REF TO zcl_excel_style,
lo_style_right TYPE REF TO zcl_excel_style,
@ -46,37 +45,12 @@ DATA: lo_excel TYPE REF TO zcl_excel,
DATA: lo_row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;14_Alignment.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;14_Alignment.xlsx&apos;.
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lv_workdir = p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = lv_workdir
CHANGING selected_folder = lv_workdir ).
p_path = lv_workdir.
INITIALIZATION.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
cl_gui_cfw=&gt;flush( ).
p_path = lv_workdir.
START-OF-SELECTION.
IF p_path IS INITIAL.
p_path = lv_workdir.
ENDIF.
cl_gui_frontend_services=&gt;get_file_separator( CHANGING file_separator = lv_file_separator ).
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
CREATE OBJECT lo_excel.
&quot; Get active sheet
@ -137,7 +111,7 @@ START-OF-SELECTION.
lo_style_rotated = lo_excel-&gt;add_new_style( ).
lo_style_rotated-&gt;alignment-&gt;horizontal = zcl_excel_style_alignment=&gt;c_horizontal_center.
lo_style_rotated-&gt;alignment-&gt;vertical = zcl_excel_style_alignment=&gt;c_vertical_center.
lo_style_rotated-&gt;alignment-&gt;textrotation = 165. &quot; -75° == 90° + 75°
lo_style_rotated-&gt;alignment-&gt;textrotation = 165. &quot; -75° == 90° + 75°
lv_style_rotated_guid = lo_style_rotated-&gt;get_guid( ).
@ -171,27 +145,11 @@ START-OF-SELECTION.
&quot; Rotated
lo_worksheet-&gt;set_cell( ip_row = 10 ip_column = &apos;D&apos;
ip_value = &apos;This is a centered text rotated by -75°&apos;
ip_value = &apos;This is a centered text rotated by -75°&apos;
ip_style = lv_style_rotated_guid ).
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
&quot; Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos;
EXPORTING
buffer = lv_file
IMPORTING
output_length = lv_bytecount
TABLES
binary_tab = lt_file_tab.
* &quot; This method is only available on AS ABAP &gt; 6.40
* lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
* lv_bytecount = xstrlen( lv_file ).
&quot; Save the file
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL16" VARCL="X" SUBC="1" CNAM="VONDRUSKA" CDAT="20100914" UNAM="FEMIA" UDAT="20110528" VERN="000075" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20110530" STIME="095303" IDATE="20110528" ITIME="181954" UCCHECK="X">
<?xml version="1.0" encoding="iso-8859-2"?>
<PROG NAME="ZDEMO_EXCEL16" VARCL="X" SUBC="1" CNAM="VONDRUSKA" CDAT="20100914" UNAM="K2_SCHMOECK" UDAT="20120323" VERN="000077" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20120323" STIME="211219" IDATE="20120323" ITIME="210450" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Drawings" LENGTH="24 "/>
<textElement ID="R" LENGTH="24 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
@ -17,46 +17,22 @@
REPORT zdemo_excel16.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_drawing TYPE REF TO zcl_excel_drawing.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
DATA: ls_io TYPE skwf_io.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;16_Drawings.xlsx&apos;.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;16_Drawings.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
PARAMETERS: p_path TYPE zexcel_export_dir,
p_objid TYPE sdok_docid DEFAULT &apos;456694429165174BE10000000A1550C0&apos;, &quot; Question mark in standard Web Dynpro WDT_QUIZ
PARAMETERS: p_objid TYPE sdok_docid DEFAULT &apos;456694429165174BE10000000A1550C0&apos;, &quot; Question mark in standard Web Dynpro WDT_QUIZ
p_class TYPE sdok_class DEFAULT &apos;M_IMAGE_P&apos;,
pobjtype TYPE skwf_ioty DEFAULT &apos;P&apos;.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lv_workdir = p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = lv_workdir
CHANGING selected_folder = lv_workdir ).
p_path = lv_workdir.
INITIALIZATION.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
cl_gui_cfw=&gt;flush( ).
p_path = lv_workdir.
START-OF-SELECTION.
IF p_path IS INITIAL.
p_path = lv_workdir.
ENDIF.
cl_gui_frontend_services=&gt;get_file_separator( CHANGING file_separator = lv_file_separator ).
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
@ -162,24 +138,8 @@ START-OF-SELECTION.
ENDIF.
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
&quot; Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos;
EXPORTING
buffer = lv_file
IMPORTING
output_length = lv_bytecount
TABLES
binary_tab = lt_file_tab.
* &quot; This method is only available on AS ABAP &gt; 6.40
* lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
* lv_bytecount = xstrlen( lv_file ).
&quot; Save the file
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL17" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100921" UNAM="FEMIA" UDAT="20110528" VERN="000035" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20110530" STIME="095303" IDATE="20110528" ITIME="181954" UCCHECK="X">
<?xml version="1.0" encoding="iso-8859-2"?>
<PROG NAME="ZDEMO_EXCEL17" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100921" UNAM="K2_SCHMOECK" UDAT="20120323" VERN="000037" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20120323" STIME="211219" IDATE="20120323" ITIME="210733" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Sheet Protection" LENGTH="32 "/>
<textElement ID="R" LENGTH="32 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="24 "/>
<textElement ID="S" KEY="P_PWD" ENTRY="D ." LENGTH="9 "/>
</language>
@ -18,7 +18,6 @@
REPORT zdemo_excel17.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_protection TYPE REF TO zcl_excel_style,
lv_style_protection_guid TYPE zexcel_cell_style,
@ -26,38 +25,13 @@ DATA: lo_excel TYPE REF TO zcl_excel,
lv_style TYPE zexcel_cell_style.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;17_SheetProtection.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;17_SheetProtection.xlsx&apos;.
PARAMETERS: p_path TYPE zexcel_export_dir,
p_pwd TYPE zexcel_aes_password LOWER CASE DEFAULT &apos;secret&apos;.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lv_workdir = p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = lv_workdir
CHANGING selected_folder = lv_workdir ).
p_path = lv_workdir.
INITIALIZATION.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
cl_gui_cfw=&gt;flush( ).
p_path = lv_workdir.
PARAMETERS: p_pwd TYPE zexcel_aes_password LOWER CASE DEFAULT &apos;secret&apos;.
START-OF-SELECTION.
IF p_path IS INITIAL.
p_path = lv_workdir.
ENDIF.
cl_gui_frontend_services=&gt;get_file_separator( CHANGING file_separator = lv_file_separator ).
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
CREATE OBJECT lo_excel.
&quot; Get active sheet
@ -84,24 +58,9 @@ START-OF-SELECTION.
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;C&apos; ip_value = &apos;This cell is unlocked&apos; ip_style = lv_style_protection_guid ).
lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;C&apos; ip_value = &apos;This cell is locked as all the others empty cell&apos; ).
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
&quot; Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos;
EXPORTING
buffer = lv_file
IMPORTING
output_length = lv_bytecount
TABLES
binary_tab = lt_file_tab.
* &quot; This method is only available on AS ABAP &gt; 6.40
* lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
* lv_bytecount = xstrlen( lv_file ).
&quot; Save the file
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL18" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100923" UNAM="FEMIA" UDAT="20110528" VERN="000030" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20110530" STIME="095303" IDATE="20110528" ITIME="181954" UCCHECK="X">
<?xml version="1.0" encoding="iso-8859-2"?>
<PROG NAME="ZDEMO_EXCEL18" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100923" UNAM="K2_SCHMOECK" UDAT="20120323" VERN="000032" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20120323" STIME="211318" IDATE="20120323" ITIME="211318" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Book protection" LENGTH="31 "/>
<textElement ID="R" LENGTH="31 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
@ -17,41 +17,16 @@
REPORT zdemo_excel18.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lv_style_protection_guid TYPE zexcel_cell_style.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;18_BookProtection.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;18_BookProtection.xlsx&apos;.
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lv_workdir = p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = lv_workdir
CHANGING selected_folder = lv_workdir ).
p_path = lv_workdir.
INITIALIZATION.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
cl_gui_cfw=&gt;flush( ).
p_path = lv_workdir.
START-OF-SELECTION.
IF p_path IS INITIAL.
p_path = lv_workdir.
ENDIF.
cl_gui_frontend_services=&gt;get_file_separator( CHANGING file_separator = lv_file_separator ).
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
CREATE OBJECT lo_excel.
&quot; Get active sheet
@ -63,24 +38,9 @@ START-OF-SELECTION.
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;C&apos; ip_value = &apos;This cell is unlocked&apos; ip_style = lv_style_protection_guid ).
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
&quot; Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos;
EXPORTING
buffer = lv_file
IMPORTING
output_length = lv_bytecount
TABLES
binary_tab = lt_file_tab.
* &quot; This method is only available on AS ABAP &gt; 6.40
* lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
* lv_bytecount = xstrlen( lv_file ).
&quot; Save the file
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>

View File

@ -1,8 +1,12 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL19" VARCL="X" SUBC="1" CNAM="BCUSER" CDAT="20101030" UNAM="FEMIA" UDAT="20110528" VERN="000027" RSTAT="T" RMAND="000" RLOAD="E" FIXPT="X" SDATE="20110530" STIME="095303" IDATE="20110528" ITIME="181954" UCCHECK="X">
<?xml version="1.0" encoding="iso-8859-2"?>
<PROG NAME="ZDEMO_EXCEL19" VARCL="X" SUBC="1" CNAM="BCUSER" CDAT="20101030" UNAM="K2_SCHMOECK" UDAT="20120323" VERN="000029" RSTAT="T" RMAND="000" RLOAD="E" FIXPT="X" SDATE="20120323" STIME="211531" IDATE="20120323" ITIME="211531" UCCHECK="X">
<textPool>
<language SPRAS="D">
<textElement ID="S" KEY="P_NOOUT" ENTRY=" Hide output" LENGTH="19 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="26 "/>
</language>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Set active sheet" LENGTH="32 "/>
<textElement ID="R" LENGTH="32 "/>
<textElement ID="S" KEY="P_NOOUT" ENTRY=" Hide output" LENGTH="19 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="26 "/>
</language>
@ -20,41 +24,17 @@ REPORT zdemo_excel19.
TYPE-POOLS: abap.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;19_SetActiveSheet.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;19_SetActiveSheet.xlsx&apos;.
PARAMETERS: p_noout TYPE xfeld DEFAULT abap_true.
PARAMETERS: p_path TYPE zexcel_export_dir,
p_noout TYPE xfeld DEFAULT abap_true.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lv_workdir = p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = lv_workdir
CHANGING selected_folder = lv_workdir ).
p_path = lv_workdir.
INITIALIZATION.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
cl_gui_cfw=&gt;flush( ).
p_path = lv_workdir.
START-OF-SELECTION.
IF p_path IS INITIAL.
p_path = lv_workdir.
ENDIF.
cl_gui_frontend_services=&gt;get_file_separator( CHANGING file_separator = lv_file_separator ).
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
CREATE OBJECT lo_excel.
&quot; First Worksheet
@ -83,24 +63,8 @@ START-OF-SELECTION.
active_sheet_index = lo_excel-&gt;get_active_sheet_index( ).
WRITE: &apos;Sheet Index after: &apos;, active_sheet_index.
ENDIF.
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
&quot; Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos;
EXPORTING
buffer = lv_file
IMPORTING
output_length = lv_bytecount
TABLES
binary_tab = lt_file_tab.
* &quot; This method is only available on AS ABAP &gt; 6.40
* lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
* lv_bytecount = xstrlen( lv_file ).
&quot; Save the file
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL2" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100711" UNAM="FEMIA" UDAT="20110611" VERN="000044" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20110611" STIME="095240" IDATE="20110611" ITIME="095240" UCCHECK="X">
<?xml version="1.0" encoding="iso-8859-2"?>
<PROG NAME="ZDEMO_EXCEL2" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100711" UNAM="K2_SCHMOECK" UDAT="20120322" VERN="000047" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20120323" STIME="211219" IDATE="20120322" ITIME="000105" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Styles" LENGTH="25 "/>
<textElement ID="R" LENGTH="25 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
@ -17,7 +17,6 @@
REPORT zdemo_excel2.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_bold TYPE REF TO zcl_excel_style,
lo_style_underline TYPE REF TO zcl_excel_style,
@ -43,28 +42,13 @@ DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;02_Styles.xlsx&apos;.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;02_Styles.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lv_workdir = p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = lv_workdir
CHANGING selected_folder = lv_workdir ).
p_path = lv_workdir.
INITIALIZATION.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
cl_gui_cfw=&gt;flush( ).
p_path = lv_workdir.
START-OF-SELECTION.
IF p_path IS INITIAL.
p_path = lv_workdir.
ENDIF.
cl_gui_frontend_services=&gt;get_file_separator( CHANGING file_separator = lv_file_separator ).
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
@ -147,24 +131,26 @@ START-OF-SELECTION.
&quot; https://code.sdn.sap.com/spaces/abap2xlsx/tickets/44-exception-zcx_excel-thrown-when-style-is-set-for-an-empty-cell
lo_worksheet-&gt;set_cell_style( ip_column = &apos;E&apos; ip_row = 6 ip_style = lv_style_filled_green_guid ).
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
* CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
* lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
*
* &quot; Convert to binary
* CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos;
* EXPORTING
* buffer = lv_file
* IMPORTING
* output_length = lv_bytecount
* TABLES
* binary_tab = lt_file_tab.
** &quot; This method is only available on AS ABAP &gt; 6.40
** lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
** lv_bytecount = xstrlen( lv_file ).
*
* &quot; Save the file
* cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
* filename = lv_full_path
* filetype = &apos;BIN&apos;
* CHANGING data_tab = lt_file_tab ).
&quot; Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos;
EXPORTING
buffer = lv_file
IMPORTING
output_length = lv_bytecount
TABLES
binary_tab = lt_file_tab.
* &quot; This method is only available on AS ABAP &gt; 6.40
* lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
* lv_bytecount = xstrlen( lv_file ).
&quot; Save the file
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
lcl_output=&gt;output( lo_excel ).</source>
</PROG>

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL21" VARCL="X" SUBC="1" CNAM="BCUSER" CDAT="20101127" UNAM="FEMIA" UDAT="20110528" VERN="000043" RSTAT="T" RMAND="000" RLOAD="E" FIXPT="X" SDATE="20110530" STIME="095303" IDATE="20110528" ITIME="181955" UCCHECK="X">
<?xml version="1.0" encoding="iso-8859-2"?>
<PROG NAME="ZDEMO_EXCEL21" VARCL="X" SUBC="1" CNAM="BCUSER" CDAT="20101127" UNAM="K2_SCHMOECK" UDAT="20120323" VERN="000045" RSTAT="T" RMAND="000" RLOAD="E" FIXPT="X" SDATE="20120323" STIME="212113" IDATE="20120323" ITIME="212113" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Backgound Color Picker" LENGTH="38 "/>
<textElement ID="R" LENGTH="38 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
@ -23,7 +23,6 @@ TYPES:
END OF t_color_style.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_filled TYPE REF TO zcl_excel_style.
@ -52,37 +51,12 @@ DATA: row TYPE i,
column TYPE zexcel_cell_column VALUE 1,
col_str TYPE zexcel_cell_column_alpha.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;21_BackgroundColorPicker.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;21_BackgroundColorPicker.xlsx&apos;.
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lv_workdir = p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = lv_workdir
CHANGING selected_folder = lv_workdir ).
p_path = lv_workdir.
INITIALIZATION.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
cl_gui_cfw=&gt;flush( ).
p_path = lv_workdir.
START-OF-SELECTION.
IF p_path IS INITIAL.
p_path = lv_workdir.
ENDIF.
cl_gui_frontend_services=&gt;get_file_separator( CHANGING file_separator = lv_file_separator ).
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
@ -151,24 +125,8 @@ START-OF-SELECTION.
ADD 1 TO row.
ENDDO.
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
&quot; Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos;
EXPORTING
buffer = lv_file
IMPORTING
output_length = lv_bytecount
TABLES
binary_tab = lt_file_tab.
* &quot; This method is only available on AS ABAP &gt; 6.40
* lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
* lv_bytecount = xstrlen( lv_file ).
&quot; Save the file
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL22" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20101220" UNAM="FEMIA" UDAT="20110528" VERN="000037" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20110530" STIME="095303" IDATE="20110528" ITIME="181955" UCCHECK="X">
<?xml version="1.0" encoding="iso-8859-2"?>
<PROG NAME="ZDEMO_EXCEL22" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20101220" UNAM="K2_SCHMOECK" UDAT="20120323" VERN="000039" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20120323" STIME="212256" IDATE="20120323" ITIME="212256" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Export internal table" LENGTH="37 "/>
<textElement ID="R" LENGTH="37 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
@ -17,7 +17,6 @@
REPORT zdemo_excel22.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style TYPE REF TO zcl_excel_style,
lo_style_date TYPE REF TO zcl_excel_style,
@ -28,41 +27,18 @@ DATA: lt_field_catalog TYPE zexcel_t_fieldcatalog,
ls_table_settings TYPE zexcel_s_table_settings,
ls_table_settings_out TYPE zexcel_s_table_settings.
DATA: lv_file TYPE xstring,
lv_style_guid TYPE zexcel_cell_style,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_style_guid TYPE zexcel_cell_style.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c,
lv_row TYPE char10.
DATA: lv_row TYPE char10.
FIELD-SYMBOLS: &lt;fs_field_catalog&gt; TYPE zexcel_s_fieldcatalog.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;22_itab_fieldcatalog.xlsx&apos;.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;22_itab_fieldcatalog.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lv_workdir = p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = lv_workdir
CHANGING selected_folder = lv_workdir ).
p_path = lv_workdir.
INITIALIZATION.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
cl_gui_cfw=&gt;flush( ).
p_path = lv_workdir.
START-OF-SELECTION.
IF p_path IS INITIAL.
p_path = lv_workdir.
ENDIF.
cl_gui_frontend_services=&gt;get_file_separator( CHANGING file_separator = lv_file_separator ).
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
@ -152,24 +128,8 @@ START-OF-SELECTION.
lo_data_validation-&gt;cell_row_to = ls_table_settings_out-bottom_right_row.
lo_data_validation-&gt;cell_column_to = ls_table_settings_out-bottom_right_column.
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
&quot; Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos;
EXPORTING
buffer = lv_file
IMPORTING
output_length = lv_bytecount
TABLES
binary_tab = lt_file_tab.
* &quot; This method is only available on AS ABAP &gt; 6.40
* lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
* lv_bytecount = xstrlen( lv_file ).
&quot; Save the file
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL23" VARCL="X" SUBC="1" CNAM="BCUSER" CDAT="20110116" UNAM="DEVELOPER" UDAT="20120109" VERN="000032" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20120109" STIME="064922" IDATE="20120109" ITIME="064922" UCCHECK="X">
<?xml version="1.0" encoding="iso-8859-2"?>
<PROG NAME="ZDEMO_EXCEL23" VARCL="X" SUBC="1" CNAM="BCUSER" CDAT="20110116" UNAM="K2_SCHMOECK" UDAT="20120323" VERN="000034" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20120323" STIME="212443" IDATE="20120323" ITIME="212443" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Multiple sheets with and w/o grid lines, print options" LENGTH="70 "/>
<textElement ID="R" LENGTH="70 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
@ -18,40 +18,16 @@ REPORT zdemo_excel23.
TYPE-POOLS: abap.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;23_Sheets_with_and_without_grid_lines.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;23_Sheets_with_and_without_grid_lines.xlsx&apos;.
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lv_workdir = p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = lv_workdir
CHANGING selected_folder = lv_workdir ).
p_path = lv_workdir.
INITIALIZATION.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
cl_gui_cfw=&gt;flush( ).
p_path = lv_workdir.
START-OF-SELECTION.
IF p_path IS INITIAL.
p_path = lv_workdir.
ENDIF.
cl_gui_frontend_services=&gt;get_file_separator( CHANGING file_separator = lv_file_separator ).
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
@ -116,24 +92,8 @@ START-OF-SELECTION.
&quot; lo_worksheet-&gt;sheet_setup-&gt;vertical_centered = abap_true.
lo_worksheet-&gt;sheet_setup-&gt;horizontal_centered = abap_true.
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( io_excel = lo_excel ).
&quot; Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos;
EXPORTING
buffer = lv_file
IMPORTING
output_length = lv_bytecount
TABLES
binary_tab = lt_file_tab.
* &quot; This method is only available on AS ABAP &gt; 6.40
* lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
* lv_bytecount = xstrlen( lv_file ).
&quot; Save the file
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL24" VARCL="X" SUBC="1" CNAM="BCUSER" CDAT="20110129" UNAM="FEMIA" UDAT="20110528" VERN="000027" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20110530" STIME="095303" IDATE="20110528" ITIME="181955" UCCHECK="X">
<?xml version="1.0" encoding="iso-8859-2"?>
<PROG NAME="ZDEMO_EXCEL24" VARCL="X" SUBC="1" CNAM="BCUSER" CDAT="20110129" UNAM="K2_SCHMOECK" UDAT="20120323" VERN="000029" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20120323" STIME="212638" IDATE="20120323" ITIME="212638" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Multiple sheets with different default date formats" LENGTH="70 "/>
<textElement ID="R" LENGTH="70 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
@ -18,7 +18,6 @@ REPORT zdemo_excel24.
TYPE-POOLS: abap.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink.
@ -33,29 +32,12 @@ DATA: lv_full_path TYPE string,
DATA: lv_value TYPE string.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;24_Sheets_with_different_default_date_formats.xlsx&apos;.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;24_Sheets_with_different_default_date_formats.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lv_workdir = p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = lv_workdir
CHANGING selected_folder = lv_workdir ).
p_path = lv_workdir.
INITIALIZATION.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
cl_gui_cfw=&gt;flush( ).
p_path = lv_workdir.
START-OF-SELECTION.
IF p_path IS INITIAL.
p_path = lv_workdir.
ENDIF.
cl_gui_frontend_services=&gt;get_file_separator( CHANGING file_separator = lv_file_separator ).
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
@ -102,24 +84,8 @@ START-OF-SELECTION.
lo_excel-&gt;set_active_sheet_index_by_name( &apos;Sheet1&apos; ).
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( io_excel = lo_excel ).
&quot; Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos;
EXPORTING
buffer = lv_file
IMPORTING
output_length = lv_bytecount
TABLES
binary_tab = lt_file_tab.
* &quot; This method is only available on AS ABAP &gt; 6.40
* lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
* lv_bytecount = xstrlen( lv_file ).
&quot; Save the file
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL27" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100711" UNAM="FEMIA" UDAT="20110528" VERN="000053" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20110530" STIME="111409" IDATE="20110528" ITIME="181955" UCCHECK="X">
<?xml version="1.0" encoding="iso-8859-2"?>
<PROG NAME="ZDEMO_EXCEL27" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100711" UNAM="K2_SCHMOECK" UDAT="20120323" VERN="000055" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20120323" STIME="212922" IDATE="20120323" ITIME="212922" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Data conditional formatting with styles" LENGTH="55 "/>
<textElement ID="R" LENGTH="55 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="24 "/>
<textElement ID="S" KEY="P_READER" ENTRY=" Write back after using Reader" LENGTH="37 "/>
</language>
@ -20,7 +20,6 @@ REPORT zdemo_excel27.
CONSTANTS: c_fish TYPE string VALUE &apos;Fish&apos;.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_range TYPE REF TO zcl_excel_range,
lo_data_validation TYPE REF TO zcl_excel_data_validation,
@ -31,37 +30,15 @@ DATA: lo_excel TYPE REF TO zcl_excel,
lv_style_2_guid TYPE zexcel_cell_style,
ls_cellis TYPE zexcel_conditional_cellis.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_title TYPE zexcel_sheet_title,
lv_file_separator TYPE c.
DATA: lv_title TYPE zexcel_sheet_title.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;27_ConditionalFormatting.xlsx&apos;.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;27_ConditionalFormatting.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lv_workdir = p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = lv_workdir
CHANGING selected_folder = lv_workdir ).
p_path = lv_workdir.
INITIALIZATION.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
cl_gui_cfw=&gt;flush( ).
p_path = lv_workdir.
START-OF-SELECTION.
IF p_path IS INITIAL.
p_path = lv_workdir.
ENDIF.
cl_gui_frontend_services=&gt;get_file_separator( CHANGING file_separator = lv_file_separator ).
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
@ -130,24 +107,7 @@ START-OF-SELECTION.
ip_stop_row = 2 ).
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
&quot; Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos;
EXPORTING
buffer = lv_file
IMPORTING
output_length = lv_bytecount
TABLES
binary_tab = lt_file_tab.
* &quot; This method is only available on AS ABAP &gt; 6.40
* lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
* lv_bytecount = xstrlen( lv_file ).
&quot; Save the file
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL3" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100711" UNAM="FEMIA" UDAT="20110528" VERN="000045" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20110530" STIME="095303" IDATE="20110528" ITIME="181955" UCCHECK="X">
<?xml version="1.0" encoding="iso-8859-2"?>
<PROG NAME="ZDEMO_EXCEL3" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100711" UNAM="K2_SCHMOECK" UDAT="20120322" VERN="000047" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20120323" STIME="211219" IDATE="20120322" ITIME="000406" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Export internal table" LENGTH="37 "/>
<textElement ID="R" LENGTH="37 "/>
<textElement ID="S" KEY="P_EMPTY" ENTRY=" Leave Table Empty" LENGTH="25 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="24 "/>
</language>
@ -20,19 +20,11 @@ REPORT zdemo_excel3.
TYPE-POOLS: abap.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime.
DATA: ls_table_settings TYPE zexcel_s_table_settings.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
DATA: lv_title TYPE zexcel_sheet_title,
lt_carr TYPE TABLE OF scarr,
@ -42,30 +34,14 @@ DATA: lo_data_validation TYPE REF TO zcl_excel_data_validation.
FIELD-SYMBOLS: &lt;carr&gt; LIKE LINE OF lt_carr.
CONSTANTS: c_airlines TYPE string VALUE &apos;Airlines&apos;.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;03_iTab.xlsx&apos;.
PARAMETERS: p_path TYPE zexcel_export_dir,
p_empty TYPE flag.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lv_workdir = p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = lv_workdir
CHANGING selected_folder = lv_workdir ).
p_path = lv_workdir.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;03_iTab.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
INITIALIZATION.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
cl_gui_cfw=&gt;flush( ).
p_path = lv_workdir.
PARAMETERS: p_empty TYPE flag.
START-OF-SELECTION.
IF p_path IS INITIAL.
p_path = lv_workdir.
ENDIF.
cl_gui_frontend_services=&gt;get_file_separator( CHANGING file_separator = lv_file_separator ).
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
@ -117,25 +93,6 @@ START-OF-SELECTION.
lo_data_validation-&gt;cell_row = 4.
lo_data_validation-&gt;cell_column = &apos;C&apos;.
&quot; Write to Excel 2007
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
&quot; Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos;
EXPORTING
buffer = lv_file
IMPORTING
output_length = lv_bytecount
TABLES
binary_tab = lt_file_tab.
* &quot; This method is only available on AS ABAP &gt; 6.40
* lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
* lv_bytecount = xstrlen( lv_file ).
&quot; Save the file
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL30" VARCL="X" SUBC="1" CNAM="BCUSER" CDAT="20110821" UNAM="DEVELOPER" UDAT="20120102" VERN="000035" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20120102" STIME="221336" IDATE="20120102" ITIME="221336" UCCHECK="X">
<?xml version="1.0" encoding="iso-8859-2"?>
<PROG NAME="ZDEMO_EXCEL30" VARCL="X" SUBC="1" CNAM="BCUSER" CDAT="20110821" UNAM="K2_SCHMOECK" UDAT="20120323" VERN="000037" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20120323" STIME="213724" IDATE="20120323" ITIME="213724" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: ABAP Cell data types" LENGTH="36 "/>
<textElement ID="R" LENGTH="36 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
@ -17,50 +17,26 @@
REPORT zdemo_excel30.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
DATA: lv_value TYPE string,
lv_count TYPE i VALUE 10,
lv_packed TYPE p LENGTH 16 DECIMALS 1 VALUE &apos;1234567890.5&apos;.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;30_CellDataTypes.xlsx&apos;,
lc_typekind_string TYPE abap_typekind VALUE cl_abap_typedescr=&gt;typekind_string,
CONSTANTS: lc_typekind_string TYPE abap_typekind VALUE cl_abap_typedescr=&gt;typekind_string,
lc_typekind_packed TYPE abap_typekind VALUE cl_abap_typedescr=&gt;typekind_packed,
lc_typekind_num TYPE abap_typekind VALUE cl_abap_typedescr=&gt;typekind_num,
lc_typekind_date TYPE abap_typekind VALUE cl_abap_typedescr=&gt;typekind_date.
PARAMETERS: p_path TYPE zexcel_export_dir.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;30_CellDataTypes.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lv_workdir = p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = lv_workdir
CHANGING selected_folder = lv_workdir ).
p_path = lv_workdir.
INITIALIZATION.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
cl_gui_cfw=&gt;flush( ).
p_path = lv_workdir.
START-OF-SELECTION.
IF p_path IS INITIAL.
p_path = lv_workdir.
ENDIF.
cl_gui_frontend_services=&gt;get_file_separator( CHANGING file_separator = lv_file_separator ).
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
@ -121,24 +97,9 @@ START-OF-SELECTION.
column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;E&apos; ).
column_dimension-&gt;set_auto_size( abap_true ).
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
&quot; Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos;
EXPORTING
buffer = lv_file
IMPORTING
output_length = lv_bytecount
TABLES
binary_tab = lt_file_tab.
* &quot; This method is only available on AS ABAP &gt; 6.40
* lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
* lv_bytecount = xstrlen( lv_file ).
&quot; Save the file
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL31" VARCL="X" SUBC="1" CNAM="BCUSER" CDAT="20110929" UNAM="RTURNHEIM" UDAT="20120212" VERN="000035" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20120212" STIME="145927" IDATE="20120212" ITIME="145927" UCCHECK="X">
<?xml version="1.0" encoding="iso-8859-2"?>
<PROG NAME="ZDEMO_EXCEL31" VARCL="X" SUBC="1" CNAM="BCUSER" CDAT="20110929" UNAM="K2_SCHMOECK" UDAT="20120323" VERN="000037" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20120323" STIME="214517" IDATE="20120323" ITIME="214517" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Autosize Column with different Font sizes" LENGTH="57 "/>
<textElement ID="R" LENGTH="57 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
@ -17,18 +17,10 @@
REPORT zdemo_excel31.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
DATA: fieldval TYPE text80,
row TYPE i,
@ -37,29 +29,12 @@ DATA: fieldval TYPE text80,
style_column_c TYPE REF TO zcl_excel_style,
style_column_c_guid TYPE zexcel_cell_style.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;31_AutosizeWithDifferentFontSizes.xlsx&apos;.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;31_AutosizeWithDifferentFontSizes.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lv_workdir = p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = lv_workdir
CHANGING selected_folder = lv_workdir ).
p_path = lv_workdir.
INITIALIZATION.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
cl_gui_cfw=&gt;flush( ).
p_path = lv_workdir.
START-OF-SELECTION.
IF p_path IS INITIAL.
p_path = lv_workdir.
ENDIF.
cl_gui_frontend_services=&gt;get_file_separator( CHANGING file_separator = lv_file_separator ).
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
@ -92,42 +67,9 @@ START-OF-SELECTION.
column_dimension = lo_worksheet-&gt;get_column_dimension( &apos;C&apos; ).
column_dimension-&gt;set_auto_size( ip_auto_size = abap_true ).
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
lv_bytecount = XSTRLEN( lv_file ).
* DATA: error TYPE REF TO i_oi_error,
* t_errors TYPE STANDARD TABLE OF REF TO i_oi_error WITH NON-UNIQUE DEFAULT KEY,
* cl_control TYPE REF TO i_oi_container_control,&quot;OIContainerCtrl
* cl_document TYPE REF TO i_oi_document_proxy. &quot;Office Dokument
*
* c_oi_container_control_creator=&gt;get_container_control( IMPORTING control = cl_control
* error = error ).
* APPEND error TO t_errors.
*
* cl_control-&gt;init_control( EXPORTING inplace_enabled = &apos;X&apos;
* no_flush = &apos;X&apos;
* r3_application_name = &apos;Demo Document Container&apos;
* parent = cl_gui_container=&gt;screen0
* IMPORTING error = error
* EXCEPTIONS OTHERS = 2 ).
* APPEND error TO t_errors.
*
* cl_control-&gt;get_document_proxy( EXPORTING document_type = &apos;Excel.Sheet&apos; &quot; EXCEL
* no_flush = &apos; &apos;
* IMPORTING document_proxy = cl_document
* error = error ).
* APPEND error TO t_errors.
** Errorhandling should be inserted here
*
* cl_document-&gt;open_document_from_table( EXPORTING document_size = lv_bytecount
* document_table = lt_file_tab ).
&quot; Save the file
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL33" VARCL="X" SUBC="1" CNAM="RTURNHEIM" CDAT="20120311" UNAM="RTURNHEIM" UDAT="20120313" VERN="000024" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20120316" STIME="030233" IDATE="20120313" ITIME="160944" UCCHECK="X">
<?xml version="1.0" encoding="iso-8859-2"?>
<PROG NAME="ZDEMO_EXCEL33" VARCL="X" SUBC="1" CNAM="RTURNHEIM" CDAT="20120311" UNAM="K2_SCHMOECK" UDAT="20120323" VERN="000026" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20120323" STIME="215056" IDATE="20120323" ITIME="215056" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Autofilter" LENGTH="26 "/>
<textElement ID="R" LENGTH="26 "/>
<textElement ID="S" KEY="P_EMPTY" ENTRY=" Leave Table Empty" LENGTH="25 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="24 "/>
</language>
@ -20,21 +20,12 @@ REPORT zdemo_excel33.
TYPE-POOLS: abap.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_converter TYPE REF TO zcl_excel_converter,
lo_autofilter TYPE REF TO zcl_excel_autofilter.
DATA lt_test TYPE TABLE OF sflight.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
DATA: lv_title TYPE zexcel_sheet_title,
lt_carr TYPE TABLE OF scarr,
row TYPE zexcel_cell_row VALUE 2,
@ -50,29 +41,13 @@ FIELD-SYMBOLS: &lt;fs_test&gt; TYPE sflight,
&lt;fs_fldval&gt; TYPE ANY.
CONSTANTS: c_airlines TYPE string VALUE &apos;Airlines&apos;.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;33_autofilter.xlsx&apos;.
PARAMETERS: p_path TYPE zexcel_export_dir.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;33_autofilter.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lv_workdir = p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = lv_workdir
CHANGING selected_folder = lv_workdir ).
p_path = lv_workdir.
INITIALIZATION.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
cl_gui_cfw=&gt;flush( ).
p_path = lv_workdir.
START-OF-SELECTION.
IF p_path IS INITIAL.
p_path = lv_workdir.
ENDIF.
cl_gui_frontend_services=&gt;get_file_separator( CHANGING file_separator = lv_file_separator ).
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
@ -110,25 +85,7 @@ START-OF-SELECTION.
lo_autofilter-&gt;set_value( i_column = 3
i_value = l_cell_value ).
&quot; Write to Excel 2007
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
&quot; Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos;
EXPORTING
buffer = lv_file
IMPORTING
output_length = lv_bytecount
TABLES
binary_tab = lt_file_tab.
* &quot; This method is only available on AS ABAP &gt; 6.40
* lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
* lv_bytecount = xstrlen( lv_file ).
&quot; Save the file
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL4" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100711" UNAM="FEMIA" UDAT="20120316" VERN="000046" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20120316" STIME="090807" IDATE="20120316" ITIME="090807" UCCHECK="X">
<?xml version="1.0" encoding="iso-8859-2"?>
<PROG NAME="ZDEMO_EXCEL4" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100711" UNAM="K2_SCHMOECK" UDAT="20120322" VERN="000048" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20120323" STIME="211219" IDATE="20120322" ITIME="001745" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Create XLXS with multiple sheets" LENGTH="48 "/>
<textElement ID="R" LENGTH="48 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
@ -17,44 +17,18 @@
REPORT zdemo_excel4.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
DATA: ls_header TYPE zexcel_s_worksheet_head_foot,
ls_footer TYPE zexcel_s_worksheet_head_foot.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;04_Sheets.xlsx&apos;.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;04_Sheets.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lv_workdir = p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = lv_workdir
CHANGING selected_folder = lv_workdir ).
p_path = lv_workdir.
INITIALIZATION.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
cl_gui_cfw=&gt;flush( ).
p_path = lv_workdir.
START-OF-SELECTION.
IF p_path IS INITIAL.
p_path = lv_workdir.
ENDIF.
cl_gui_frontend_services=&gt;get_file_separator( CHANGING file_separator = lv_file_separator ).
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
@ -121,24 +95,7 @@ START-OF-SELECTION.
lo_excel-&gt;set_active_sheet_index_by_name( &apos;Sheet1&apos; ).
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
&quot; Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos;
EXPORTING
buffer = lv_file
IMPORTING
output_length = lv_bytecount
TABLES
binary_tab = lt_file_tab.
* &quot; This method is only available on AS ABAP &gt; 6.40
* lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
* lv_bytecount = xstrlen( lv_file ).
&quot; Save the file
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL6" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100711" UNAM="FEMIA" UDAT="20110528" VERN="000036" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20110530" STIME="095303" IDATE="20110528" ITIME="181955" UCCHECK="X">
<?xml version="1.0" encoding="iso-8859-2"?>
<PROG NAME="ZDEMO_EXCEL6" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100711" UNAM="K2_SCHMOECK" UDAT="20120322" VERN="000038" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20120323" STIME="211219" IDATE="20120322" ITIME="230512" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Formulas" LENGTH="24 "/>
<textElement ID="R" LENGTH="24 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
@ -17,40 +17,15 @@
REPORT zdemo_excel6.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;06_Formulas.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;06_Formulas.xlsx&apos;.
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lv_workdir = p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = lv_workdir
CHANGING selected_folder = lv_workdir ).
p_path = lv_workdir.
INITIALIZATION.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
cl_gui_cfw=&gt;flush( ).
p_path = lv_workdir.
START-OF-SELECTION.
IF p_path IS INITIAL.
p_path = lv_workdir.
ENDIF.
cl_gui_frontend_services=&gt;get_file_separator( CHANGING file_separator = lv_file_separator ).
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
CREATE OBJECT lo_excel.
&quot; Get active sheet
@ -63,24 +38,7 @@ START-OF-SELECTION.
lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;C&apos; ip_value = 500 ).
lo_worksheet-&gt;set_cell( ip_row = 9 ip_column = &apos;C&apos; ip_formula = &apos;SUM(C4:C8)&apos; ).
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
&quot; Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos;
EXPORTING
buffer = lv_file
IMPORTING
output_length = lv_bytecount
TABLES
binary_tab = lt_file_tab.
* &quot; This method is only available on AS ABAP &gt; 6.40
* lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
* lv_bytecount = xstrlen( lv_file ).
&quot; Save the file
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL7" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100711" UNAM="FEMIA" UDAT="20110528" VERN="000035" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20110530" STIME="111409" IDATE="20110528" ITIME="181955" UCCHECK="X">
<?xml version="1.0" encoding="iso-8859-2"?>
<PROG NAME="ZDEMO_EXCEL7" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100711" UNAM="K2_SCHMOECK" UDAT="20120322" VERN="000037" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20120323" STIME="211219" IDATE="20120322" ITIME="233350" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: All conditional formating possibilities" LENGTH="55 "/>
<textElement ID="R" LENGTH="55 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
@ -17,7 +17,6 @@
REPORT zdemo_excel7.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_conditional TYPE REF TO zcl_excel_style_conditional.
@ -25,37 +24,12 @@ DATA: ls_iconset3 TYPE zexcel_conditional_iconset,
ls_iconset4 TYPE zexcel_conditional_iconset,
ls_iconset5 TYPE zexcel_conditional_iconset.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;07_ConditionalAll.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;07_ConditionalAll.xlsx&apos;.
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lv_workdir = p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = lv_workdir
CHANGING selected_folder = lv_workdir ).
p_path = lv_workdir.
INITIALIZATION.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
cl_gui_cfw=&gt;flush( ).
p_path = lv_workdir.
START-OF-SELECTION.
IF p_path IS INITIAL.
p_path = lv_workdir.
ENDIF.
cl_gui_frontend_services=&gt;get_file_separator( CHANGING file_separator = lv_file_separator ).
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
CREATE OBJECT lo_excel.
ls_iconset3-cfvo1_type = zcl_excel_style_conditional=&gt;c_cfvo_type_percent.
@ -381,24 +355,7 @@ START-OF-SELECTION.
lo_worksheet-&gt;set_cell( ip_row = 22 ip_column = &apos;E&apos; ip_value = 40 ).
lo_worksheet-&gt;set_cell( ip_row = 23 ip_column = &apos;E&apos; ip_value = 50 ).
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
&quot; Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos;
EXPORTING
buffer = lv_file
IMPORTING
output_length = lv_bytecount
TABLES
binary_tab = lt_file_tab.
* &quot; This method is only available on AS ABAP &gt; 6.40
* lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
* lv_bytecount = xstrlen( lv_file ).
&quot; Save the file
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL8" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100713" UNAM="FEMIA" UDAT="20110528" VERN="000034" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20110530" STIME="095303" IDATE="20110528" ITIME="181955" UCCHECK="X">
<?xml version="1.0" encoding="iso-8859-2"?>
<PROG NAME="ZDEMO_EXCEL8" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100713" UNAM="K2_SCHMOECK" UDAT="20120322" VERN="000036" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20120323" STIME="211219" IDATE="20120322" ITIME="233732" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Define a range" LENGTH="30 "/>
<textElement ID="R" LENGTH="30 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
@ -17,42 +17,17 @@
REPORT zdemo_excel8.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_range TYPE REF TO zcl_excel_range.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_title TYPE zexcel_sheet_title.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_title TYPE zexcel_sheet_title,
lv_file_separator TYPE c.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;08_Range.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;08_Range.xlsx&apos;.
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lv_workdir = p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = lv_workdir
CHANGING selected_folder = lv_workdir ).
p_path = lv_workdir.
INITIALIZATION.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
cl_gui_cfw=&gt;flush( ).
p_path = lv_workdir.
START-OF-SELECTION.
IF p_path IS INITIAL.
p_path = lv_workdir.
ENDIF.
cl_gui_frontend_services=&gt;get_file_separator( CHANGING file_separator = lv_file_separator ).
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
CREATE OBJECT lo_excel.
&quot; Get active sheet
@ -74,24 +49,7 @@ START-OF-SELECTION.
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;C&apos; ip_value = &apos;Ananas&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;C&apos; ip_value = &apos;Grapes&apos; ).
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
&quot; Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos;
EXPORTING
buffer = lv_file
IMPORTING
output_length = lv_bytecount
TABLES
binary_tab = lt_file_tab.
* &quot; This method is only available on AS ABAP &gt; 6.40
* lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
* lv_bytecount = xstrlen( lv_file ).
&quot; Save the file
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL9" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100713" UNAM="DEVELOPER" UDAT="20120112" VERN="000074" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20120112" STIME="084137" IDATE="20120112" ITIME="084137" UCCHECK="X">
<?xml version="1.0" encoding="iso-8859-2"?>
<PROG NAME="ZDEMO_EXCEL9" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100713" UNAM="K2_SCHMOECK" UDAT="20120322" VERN="000077" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20120323" STIME="211219" IDATE="20120322" ITIME="234442" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Data validations" LENGTH="32 "/>
<textElement ID="R" LENGTH="32 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="24 "/>
<textElement ID="S" KEY="P_SBOOK" ENTRY=" Export SBOOK to Excel?" LENGTH="30 "/>
</language>
@ -23,46 +23,24 @@ CONSTANTS: c_fruits TYPE string VALUE &apos;Fruits&apos;,
c_fish TYPE string VALUE &apos;Fish&apos;.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_range TYPE REF TO zcl_excel_range,
lo_data_validation TYPE REF TO zcl_excel_data_validation.
DATA: row TYPE zexcel_cell_row.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_title TYPE zexcel_sheet_title,
lv_file_separator TYPE c.
DATA: lv_title TYPE zexcel_sheet_title.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;09_DataValidation.xlsx&apos;.
PARAMETERS: p_path TYPE zexcel_export_dir,
p_sbook TYPE flag.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;09_DataValidation.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lv_workdir = p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = lv_workdir
CHANGING selected_folder = lv_workdir ).
p_path = lv_workdir.
PARAMETERS: p_sbook TYPE flag.
INITIALIZATION.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
cl_gui_cfw=&gt;flush( ).
p_path = lv_workdir.
START-OF-SELECTION.
IF p_path IS INITIAL.
p_path = lv_workdir.
ENDIF.
cl_gui_frontend_services=&gt;get_file_separator( CHANGING file_separator = lv_file_separator ).
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
@ -219,24 +197,7 @@ START-OF-SELECTION.
).
ENDIF.
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
&quot; Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos;
EXPORTING
buffer = lv_file
IMPORTING
output_length = lv_bytecount
TABLES
binary_tab = lt_file_tab.
* &quot; This method is only available on AS ABAP &gt; 6.40
* lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
* lv_bytecount = xstrlen( lv_file ).
&quot; Save the file
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>