Changed demo reports 2 to 22 for 6.40 compatibility according to issue #55.

git-svn-id: https://subversion.assembla.com/svn/abap2xlsx/trunk@89 b7d68dce-7c3c-4a99-8ce0-9ea847f5d049
This commit is contained in:
Gregor Wolf 2010-12-24 11:34:08 +00:00
parent 54163801d2
commit 64e0062571
21 changed files with 581 additions and 410 deletions

View File

@ -1,12 +1,14 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL10" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100719" UNAM="FEMIA" UDAT="20101217" VERN="000066" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20101217" STIME="230340" IDATE="20101217" ITIME="230340" UCCHECK="X">
<PROG NAME="ZDEMO_EXCEL10" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100719" UNAM="BCUSER" UDAT="20101224" VERN="000069" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20101224" STIME="105650" IDATE="20101224" ITIME="105650" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Format internal table with field catalog" LENGTH="56 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<programDocumentation/>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZIFE_TEST_EXCEL
*&amp; Report ZDEMO_EXCEL10
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
@ -22,27 +24,25 @@ DATA: lo_excel TYPE REF TO zcl_excel,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime.
DATA: lt_field_catalog TYPE zexcel_t_fieldcatalog,
ls_field_catalog TYPE zexcel_s_fieldcatalog,
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_file_name TYPE string,
lv_file_path TYPE string,
lv_full_path TYPE string,
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 string.
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = p_path
CHANGING selected_folder = 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 ).
@ -54,7 +54,7 @@ START-OF-SELECTION.
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 p_path.
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.
@ -111,13 +111,21 @@ START-OF-SELECTION.
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
* Convert to binary
lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
lv_bytecount = XSTRLEN( lv_file ).
&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 = p_path
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
</PROG>

View File

@ -1,19 +1,20 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL11" VARCL="X" SUBC="1" CNAM="BCUSER" CDAT="20100809" UNAM="FEMIA" UDAT="20101217" VERN="000050" RSTAT="K" RMAND="000" RLOAD="E" FIXPT="X" SDATE="20101217" STIME="230410" IDATE="20101217" ITIME="230410" UCCHECK="X">
<PROG NAME="ZDEMO_EXCEL11" VARCL="X" SUBC="1" CNAM="BCUSER" CDAT="20100809" UNAM="BCUSER" UDAT="20101224" VERN="000054" RSTAT="K" RMAND="000" RLOAD="E" FIXPT="X" SDATE="20101224" STIME="110436" IDATE="20101224" ITIME="110436" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="Export Organisation and Contact Persons using ABAP2XLSX" LENGTH="55 "/>
<textElement ID="R" ENTRY="abap2xlsx Demo: Export Organisation and Contact Persons" 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 "/>
<textElement ID="S" KEY="PARTNER" ENTRY="D ." LENGTH="24 "/>
<textElement ID="S" KEY="PARTNER" ENTRY="D ." LENGTH="17 "/>
<textElement ID="S" KEY="PARTNERC" ENTRY="D ." LENGTH="19 "/>
<textElement ID="S" KEY="POSTLCOD" ENTRY="D ." LENGTH="19 "/>
<textElement ID="S" KEY="P_PATH" ENTRY=" Download path" LENGTH="21 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="21 "/>
<textElement ID="S" KEY="REL" ENTRY=" Select by relationship" LENGTH="30 "/>
<textElement ID="S" KEY="RELTYP" ENTRY="D ." LENGTH="25 "/>
</language>
</textPool>
<programDocumentation/>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL11
*&amp; Export Organisation and Contact Persons using ABAP2XLSX
@ -46,15 +47,13 @@ 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_file_name TYPE string,
lv_file_path TYPE string,
lv_full_path TYPE string,
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;11_Export_Org_and_Contact.xlsx&apos;.
PARAMETERS: p_path TYPE string.
PARAMETERS: p_path TYPE zexcel_export_dir.
PARAMETERS: md TYPE flag RADIOBUTTON GROUP act.
@ -73,9 +72,11 @@ PARAMETERS: reltyp TYPE bu_reltyp DEFAULT &apos;BUR011&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.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = p_path
CHANGING selected_folder = p_path ).
INITIALIZATION.
a = &apos;Select by master data&apos;.
@ -88,7 +89,7 @@ START-OF-SELECTION.
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 p_path.
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
@ -231,15 +232,11 @@ START-OF-SELECTION.
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,
lo_border_light TYPE REF TO zcl_excel_style_border,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime,
row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi.
DATA: lv_style_body_odd_guid TYPE zexcel_cell_style,
lv_style_body_even_guid TYPE zexcel_cell_style,
lv_style_body_green TYPE zexcel_cell_style,
lv_style_body_odd_n_guid TYPE zexcel_cell_style,
lv_style_body_even_n_guid TYPE zexcel_cell_style.
DATA: lv_style_body_even_guid TYPE zexcel_cell_style,
lv_style_body_green TYPE zexcel_cell_style.
DATA: row TYPE zexcel_cell_row.
@ -263,12 +260,6 @@ START-OF-SELECTION.
CREATE OBJECT lo_border_dark.
lo_border_dark-&gt;border_color = zcl_excel_style_color=&gt;c_black.
lo_border_dark-&gt;border_style = zcl_excel_style_border=&gt;c_border_thin.
&quot;Create style with border odd
lo_style_body = lo_excel-&gt;add_new_style( ).
lo_style_body-&gt;fill-&gt;filltype = zcl_excel_style_fill=&gt;c_fill_solid.
lo_style_body-&gt;fill-&gt;fgcolor = zcl_excel_style_color=&gt;c_gray.
lo_style_body-&gt;borders-&gt;allborders = lo_border_dark.
lv_style_body_odd_guid = lo_style_body-&gt;get_guid( ).
&quot;Create style with border even
lo_style_body = lo_excel-&gt;add_new_style( ).
lo_style_body-&gt;fill-&gt;fgcolor = zcl_excel_style_color=&gt;c_yellow.
@ -279,18 +270,6 @@ START-OF-SELECTION.
lo_style_body-&gt;fill-&gt;fgcolor = zcl_excel_style_color=&gt;c_green.
lo_style_body-&gt;borders-&gt;allborders = lo_border_dark.
lv_style_body_green = lo_style_body-&gt;get_guid( ).
&quot;Create style numeric with border odd
lo_style_body = lo_excel-&gt;add_new_style( ).
lo_style_body-&gt;fill-&gt;filltype = zcl_excel_style_fill=&gt;c_fill_solid.
lo_style_body-&gt;fill-&gt;fgcolor = zcl_excel_style_color=&gt;c_gray.
lo_style_body-&gt;borders-&gt;allborders = lo_border_dark.
lo_style_body-&gt;number_format-&gt;format_code = zcl_excel_style_number_format=&gt;c_format_number.
lv_style_body_odd_n_guid = lo_style_body-&gt;get_guid( ).
&quot;Create style numeric with border odd
lo_style_body = lo_excel-&gt;add_new_style( ).
lo_style_body-&gt;borders-&gt;allborders = lo_border_dark.
lo_style_body-&gt;number_format-&gt;format_code = zcl_excel_style_number_format=&gt;c_format_number.
lv_style_body_even_n_guid = lo_style_body-&gt;get_guid( ).
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
@ -474,13 +453,21 @@ START-OF-SELECTION.
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
* Convert to binary
lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
lv_bytecount = XSTRLEN( lv_file ).
&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 = p_path
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
</PROG>

View File

@ -1,10 +1,12 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL12" VARCL="X" SUBC="1" CNAM="BCUSER" CDAT="20100811" UNAM="FEMIA" UDAT="20101217" VERN="000031" RSTAT="T" RMAND="000" RLOAD="E" FIXPT="X" SDATE="20101217" STIME="230524" IDATE="20101217" ITIME="230524" UCCHECK="X">
<PROG NAME="ZDEMO_EXCEL12" VARCL="X" SUBC="1" CNAM="BCUSER" CDAT="20100811" UNAM="BCUSER" UDAT="20101224" VERN="000034" RSTAT="T" RMAND="000" RLOAD="E" FIXPT="X" SDATE="20101224" STIME="110720" IDATE="20101224" ITIME="110720" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="Hide Columns" LENGTH="12 "/>
<textElement ID="R" ENTRY="abap2xlsx Demo: Hide Columns" LENGTH="28 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<programDocumentation/>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL12
*&amp;
@ -16,7 +18,7 @@
REPORT zdemo_excel12.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer type ref to zif_excel_writer,
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.
@ -25,96 +27,103 @@ DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_file_name TYPE string,
lv_file_path TYPE string,
lv_full_path TYPE string,
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 string.
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = p_path
CHANGING selected_folder = 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 ).
p_path = lv_workdir.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
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 p_path.
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; Creates active sheet
CREATE OBJECT lo_excel.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( &apos;Sheet1&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 2 ip_value = &apos;Hello world in AutoSize column&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;C&apos; ip_row = 3 ip_value = &apos;Hello world in a column width size 50&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;D&apos; ip_row = 4 ip_value = &apos;Hello world (hidden column)&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;F&apos; ip_row = 2 ip_value = &apos;Outline column level 0&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;G&apos; ip_row = 2 ip_value = &apos;Outline column level 1&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;H&apos; ip_row = 2 ip_value = &apos;Outline column level 2&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;I&apos; ip_row = 2 ip_value = &apos;Small&apos; ).
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( &apos;Sheet1&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 2 ip_value = &apos;Hello world in AutoSize column&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;C&apos; ip_row = 3 ip_value = &apos;Hello world in a column width size 50&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;D&apos; ip_row = 4 ip_value = &apos;Hello world (hidden column)&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;F&apos; ip_row = 2 ip_value = &apos;Outline column level 0&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;G&apos; ip_row = 2 ip_value = &apos;Outline column level 1&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;H&apos; ip_row = 2 ip_value = &apos;Outline column level 2&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;I&apos; ip_row = 2 ip_value = &apos;Small&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;A&apos; ip_row = 1 ip_value = &apos;Hello world (hidden row)&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;E&apos; ip_row = 5 ip_value = &apos;Hello world in a row height size 20&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 6 ip_value = &apos;Outline row level 0&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 7 ip_value = &apos;Outline row level 1&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 8 ip_value = &apos;Outline row level 2&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;A&apos; ip_row = 1 ip_value = &apos;Hello world (hidden row)&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;E&apos; ip_row = 5 ip_value = &apos;Hello world in a row height size 20&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 6 ip_value = &apos;Outline row level 0&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 7 ip_value = &apos;Outline row level 1&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 8 ip_value = &apos;Outline row level 2&apos; ).
&quot; Column Settings
&quot; Auto size
column_dimension = lo_worksheet-&gt;get_column_dimension( &apos;B&apos; ).
column_dimension-&gt;set_auto_size( abap_true ).
column_dimension = lo_worksheet-&gt;get_column_dimension( &apos;I&apos; ).
column_dimension-&gt;set_auto_size( abap_true ).
&quot; Manual Width
column_dimension = lo_worksheet-&gt;get_column_dimension( &apos;C&apos; ).
column_dimension-&gt;set_width( 50 ).
column_dimension = lo_worksheet-&gt;get_column_dimension( &apos;D&apos; ).
column_dimension-&gt;set_visible( ip_visible = abap_false ).
&quot; Implementation in the Writer is not working yet ===== TODO =====
column_dimension = lo_worksheet-&gt;get_column_dimension( &apos;F&apos; ).
column_dimension-&gt;set_outline_level( 0 ).
column_dimension = lo_worksheet-&gt;get_column_dimension( &apos;G&apos; ).
column_dimension-&gt;set_outline_level( 1 ).
column_dimension = lo_worksheet-&gt;get_column_dimension( &apos;H&apos; ).
column_dimension-&gt;set_outline_level( 2 ).
&quot; Column Settings
&quot; Auto size
column_dimension = lo_worksheet-&gt;get_column_dimension( &apos;B&apos; ).
column_dimension-&gt;set_auto_size( abap_true ).
column_dimension = lo_worksheet-&gt;get_column_dimension( &apos;I&apos; ).
column_dimension-&gt;set_auto_size( abap_true ).
&quot; Manual Width
column_dimension = lo_worksheet-&gt;get_column_dimension( &apos;C&apos; ).
column_dimension-&gt;set_width( 50 ).
column_dimension = lo_worksheet-&gt;get_column_dimension( &apos;D&apos; ).
column_dimension-&gt;set_visible( ip_visible = abap_false ).
&quot; Implementation in the Writer is not working yet ===== TODO =====
column_dimension = lo_worksheet-&gt;get_column_dimension( &apos;F&apos; ).
column_dimension-&gt;set_outline_level( 0 ).
column_dimension = lo_worksheet-&gt;get_column_dimension( &apos;G&apos; ).
column_dimension-&gt;set_outline_level( 1 ).
column_dimension = lo_worksheet-&gt;get_column_dimension( &apos;H&apos; ).
column_dimension-&gt;set_outline_level( 2 ).
row_dimension = lo_worksheet-&gt;get_row_dimension( 1 ).
row_dimension-&gt;set_visible( abap_false ).
row_dimension = lo_worksheet-&gt;get_row_dimension( 5 ).
row_dimension-&gt;set_row_height( 20 ).
&quot; Implementation in the Writer is not working yet ===== TODO =====
row_dimension = lo_worksheet-&gt;get_row_dimension( 6 ).
row_dimension-&gt;set_outline_level( 0 ).
row_dimension = lo_worksheet-&gt;get_row_dimension( 7 ).
row_dimension-&gt;set_outline_level( 1 ).
row_dimension = lo_worksheet-&gt;get_row_dimension( 8 ).
row_dimension-&gt;set_outline_level( 2 ).
row_dimension = lo_worksheet-&gt;get_row_dimension( 1 ).
row_dimension-&gt;set_visible( abap_false ).
row_dimension = lo_worksheet-&gt;get_row_dimension( 5 ).
row_dimension-&gt;set_row_height( 20 ).
&quot; Implementation in the Writer is not working yet ===== TODO =====
row_dimension = lo_worksheet-&gt;get_row_dimension( 6 ).
row_dimension-&gt;set_outline_level( 0 ).
row_dimension = lo_worksheet-&gt;get_row_dimension( 7 ).
row_dimension-&gt;set_outline_level( 1 ).
row_dimension = lo_worksheet-&gt;get_row_dimension( 8 ).
row_dimension-&gt;set_outline_level( 2 ).
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 ).
* Convert to binary
lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
lv_bytecount = xstrlen( lv_file ).
&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 = p_path
&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>
CHANGING data_tab = lt_file_tab ).</source>
</PROG>

View File

@ -1,10 +1,12 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL13" VARCL="X" SUBC="1" CNAM="ATEJADA" CDAT="20100812" UNAM="FEMIA" UDAT="20101220" VERN="000029" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20101220" STIME="215329" IDATE="20101220" ITIME="215329" UCCHECK="X">
<PROG NAME="ZDEMO_EXCEL13" VARCL="X" SUBC="1" CNAM="ATEJADA" CDAT="20100812" UNAM="BCUSER" UDAT="20101224" VERN="000032" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20101224" STIME="110908" IDATE="20101224" ITIME="110908" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Merge cells" LENGTH="27 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<programDocumentation/>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL13
*&amp;
@ -18,8 +20,6 @@ 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,
lo_range TYPE REF TO zcl_excel_range,
lv_style_number_guid TYPE zexcel_cell_style,
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.
@ -28,20 +28,19 @@ DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_file_name TYPE string,
lv_file_path TYPE string,
lv_full_path TYPE string,
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 string.
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = p_path
CHANGING selected_folder = 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 ).
@ -53,7 +52,7 @@ START-OF-SELECTION.
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 p_path.
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
CREATE OBJECT lo_excel.
@ -94,13 +93,21 @@ START-OF-SELECTION.
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
* Convert to binary
lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
lv_bytecount = XSTRLEN( lv_file ).
&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 = p_path
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
</PROG>

View File

@ -1,15 +1,17 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL14" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100817" UNAM="FEMIA" UDAT="20101217" VERN="000045" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20101217" STIME="230806" IDATE="20101217" ITIME="230806" UCCHECK="X">
<PROG NAME="ZDEMO_EXCEL14" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100817" UNAM="BCUSER" UDAT="20101224" VERN="000049" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20101224" STIME="111125" IDATE="20101224" ITIME="111125" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Alignment" LENGTH="25 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<programDocumentation/>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL13
*&amp; Report ZDEMO_EXCEL14
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp; Example by: Alvaro &quot;Blag&quot; Tejada Galindo.
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
@ -49,20 +51,19 @@ DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_file_name TYPE string,
lv_file_path TYPE string,
lv_full_path TYPE string,
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 string.
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = p_path
CHANGING selected_folder = 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 ).
@ -74,7 +75,7 @@ START-OF-SELECTION.
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 p_path.
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
CREATE OBJECT lo_excel.
@ -176,13 +177,21 @@ START-OF-SELECTION.
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
* Convert to binary
lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
lv_bytecount = XSTRLEN( lv_file ).
&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 = p_path
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
</PROG>

View File

@ -1,12 +1,13 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL15" VARCL="X" SUBC="1" CNAM="BCUSER" CDAT="20100820" UNAM="FEMIA" UDAT="20101030" VERN="000021" RSTAT="T" RMAND="000" RLOAD="E" FIXPT="X" SDATE="20101217" STIME="224554" IDATE="20101030" ITIME="234140" UCCHECK="X">
<PROG NAME="ZDEMO_EXCEL15" VARCL="X" SUBC="1" CNAM="BCUSER" CDAT="20100820" UNAM="BCUSER" UDAT="20101224" VERN="000025" RSTAT="T" RMAND="000" RLOAD="E" FIXPT="X" SDATE="20101224" STIME="111627" IDATE="20101224" ITIME="111627" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="ABAP2XLSX Reader Demo" LENGTH="21 "/>
<textElement ID="R" ENTRY="abap2xlsx Demo: Reader" LENGTH="22 "/>
<textElement ID="S" KEY="P_NOOUT" ENTRY=" Hide output" LENGTH="19 "/>
<textElement ID="S" KEY="P_PATH" ENTRY=" Select output path" LENGTH="26 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="24 "/>
</language>
</textPool>
<programDocumentation/>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL15
*&amp;
@ -23,6 +24,9 @@ DATA: excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
reader TYPE REF TO zif_excel_reader.
DATA: ex TYPE REF TO zcx_excel,
msg TYPE string.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
@ -43,13 +47,15 @@ DATA: worksheet TYPE REF TO zcl_excel_worksheet,
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;15_iTabFromReader.xlsx&apos;,
lv_default_input TYPE string VALUE &apos;03_iTab.xlsx&apos;.
PARAMETERS: p_path TYPE string,
PARAMETERS: p_path TYPE zexcel_export_dir,
p_noout TYPE xfeld DEFAULT abap_true.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = p_path
CHANGING selected_folder = p_path ).
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 ).
@ -96,9 +102,17 @@ START-OF-SELECTION.
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( excel ).
* Convert to binary
lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
lv_bytecount = XSTRLEN( lv_file ).
&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
@ -106,6 +120,9 @@ START-OF-SELECTION.
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).
CATCH zcx_excel. &quot; Exceptions for ABAP2XLSX
CATCH zcx_excel INTO ex. &quot; Exceptions for ABAP2XLSX
msg = ex-&gt;get_text( ).
WRITE: / msg.
ENDTRY.</source>
</PROG>

View File

@ -1,12 +1,14 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL16" VARCL="X" SUBC="1" CNAM="VONDRUSKA" CDAT="20100914" UNAM="FEMIA" UDAT="20101217" VERN="000056" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20101217" STIME="230849" IDATE="20101217" ITIME="230849" UCCHECK="X">
<PROG NAME="ZDEMO_EXCEL16" VARCL="X" SUBC="1" CNAM="VONDRUSKA" CDAT="20100914" UNAM="BCUSER" UDAT="20101224" VERN="000059" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20101224" STIME="122147" IDATE="20101224" ITIME="122147" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="Test for excel - drawings" LENGTH="25 "/>
<textElement ID="R" ENTRY="abap2xlsx Demo: Drawings" LENGTH="24 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<programDocumentation/>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZIFE_TEST_EXCEL
*&amp; Report ZDEMO_EXCEL16
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
@ -18,24 +20,25 @@ 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,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime.
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_workdir TYPE string,
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;16_Drawings.xlsx&apos;.
PARAMETERS: p_path TYPE string.
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = p_path
CHANGING selected_folder = 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 ).
@ -47,7 +50,7 @@ START-OF-SELECTION.
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 p_path.
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
@ -87,8 +90,8 @@ START-OF-SELECTION.
error_no_gui = 18
OTHERS = 19.
IF sy-subrc &lt;&gt; 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CALL FUNCTION &apos;SCMS_BINARY_TO_XSTRING&apos;
@ -101,6 +104,10 @@ START-OF-SELECTION.
EXCEPTIONS
failed = 1
OTHERS = 2.
IF sy-subrc &lt;&gt; 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
@ -137,13 +144,21 @@ START-OF-SELECTION.
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
* Convert to binary
lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
lv_bytecount = XSTRLEN( lv_file ).
&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 = p_path
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
</PROG>

View File

@ -1,12 +1,15 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL17" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100921" UNAM="FEMIA" UDAT="20101120" VERN="000022" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20101217" STIME="224554" IDATE="20101120" ITIME="185318" UCCHECK="X">
<PROG NAME="ZDEMO_EXCEL17" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100921" UNAM="BCUSER" UDAT="20101224" VERN="000025" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20101224" STIME="122311" IDATE="20101224" ITIME="122311" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="Sheet Protection" LENGTH="16 "/>
<textElement ID="R" ENTRY="abap2xlsx Demo: Sheet Protection" LENGTH="32 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="24 "/>
<textElement ID="S" KEY="P_PWD" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<programDocumentation/>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZIFE_TEST_EXCEL
*&amp; Report ZDEMO_EXCEL17
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
@ -25,18 +28,20 @@ DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_workdir TYPE string,
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 string,
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.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = p_path
CHANGING selected_folder = 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 ).
@ -48,7 +53,7 @@ START-OF-SELECTION.
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 p_path.
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
CREATE OBJECT lo_excel.
@ -75,13 +80,21 @@ START-OF-SELECTION.
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
* Convert to binary
lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
lv_bytecount = XSTRLEN( lv_file ).
&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 = p_path
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
</PROG>

View File

@ -1,12 +1,14 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL18" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100923" UNAM="FEMIA" UDAT="20101030" VERN="000022" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20101217" STIME="224554" IDATE="20101030" ITIME="200000" UCCHECK="X">
<PROG NAME="ZDEMO_EXCEL18" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100923" UNAM="BCUSER" UDAT="20101224" VERN="000025" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20101224" STIME="122554" IDATE="20101224" ITIME="122554" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Book protection" LENGTH="31 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<programDocumentation/>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZIFE_TEST_EXCEL
*&amp; Report ZDEMO_EXCEL18
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
@ -18,24 +20,25 @@ 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,
lo_style_protection TYPE REF TO zcl_excel_style,
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_workdir TYPE string,
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;18_BookProtection.xlsx&apos;.
PARAMETERS: p_path TYPE string.
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = p_path
CHANGING selected_folder = 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 ).
@ -47,7 +50,7 @@ START-OF-SELECTION.
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 p_path.
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
CREATE OBJECT lo_excel.
@ -57,20 +60,27 @@ START-OF-SELECTION.
lo_excel-&gt;zif_excel_book_protection~lockstructure = zif_excel_book_protection=&gt;c_locked.
lo_excel-&gt;zif_excel_book_protection~lockwindows = zif_excel_book_protection=&gt;c_locked.
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 ).
* Convert to binary
lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
lv_bytecount = XSTRLEN( lv_file ).
&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 = p_path
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
</PROG>

View File

@ -1,12 +1,13 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL19" VARCL="X" SUBC="1" CNAM="BCUSER" CDAT="20101030" UNAM="FEMIA" UDAT="20101217" VERN="000019" RSTAT="T" RMAND="000" RLOAD="E" FIXPT="X" SDATE="20101217" STIME="231401" IDATE="20101217" ITIME="231401" UCCHECK="X">
<PROG NAME="ZDEMO_EXCEL19" VARCL="X" SUBC="1" CNAM="BCUSER" CDAT="20101030" UNAM="BCUSER" UDAT="20101224" VERN="000022" RSTAT="T" RMAND="000" RLOAD="E" FIXPT="X" SDATE="20101224" STIME="122734" IDATE="20101224" ITIME="122734" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Set active sheet" LENGTH="32 "/>
<textElement ID="S" KEY="P_NOOUT" ENTRY=" Hide output" LENGTH="19 "/>
<textElement ID="S" KEY="P_PATH" ENTRY=" Select output path" LENGTH="26 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="26 "/>
</language>
</textPool>
<programDocumentation/>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL19
*&amp;
@ -21,26 +22,26 @@ 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_style_protection TYPE REF TO zcl_excel_style,
lv_style_protection_guid TYPE zexcel_cell_style.
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_workdir TYPE string,
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;19_SetActiveSheet.xlsx&apos;.
PARAMETERS: p_path TYPE string,
PARAMETERS: p_path TYPE zexcel_export_dir,
p_noout TYPE xfeld DEFAULT abap_true.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = p_path
CHANGING selected_folder = 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 ).
@ -52,7 +53,7 @@ START-OF-SELECTION.
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 p_path.
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
CREATE OBJECT lo_excel.
@ -85,13 +86,21 @@ START-OF-SELECTION.
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
* Convert to binary
lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
lv_bytecount = XSTRLEN( lv_file ).
&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 = p_path
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
</PROG>

View File

@ -1,12 +1,14 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL2" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100711" UNAM="FEMIA" UDAT="20101217" VERN="000026" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20101217" STIME="224925" IDATE="20101217" ITIME="224925" UCCHECK="X">
<PROG NAME="ZDEMO_EXCEL2" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100711" UNAM="BCUSER" UDAT="20101224" VERN="000030" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20101224" STIME="104813" IDATE="20101224" ITIME="104813" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="Test Styles for ABAP2XLSX" LENGTH="25 "/>
<textElement ID="R" ENTRY="abap2xlsx Demo: Styles" LENGTH="25 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<programDocumentation/>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZIFE_TEST_EXCEL
*&amp; Report ZDEMO_EXCEL2
*&amp; Test Styles for ABAP2XLSX
*&amp;---------------------------------------------------------------------*
*&amp;
@ -37,20 +39,19 @@ DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_file_name TYPE string,
lv_file_path TYPE string,
lv_full_path TYPE string,
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;.
PARAMETERS: p_path TYPE string.
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = p_path
CHANGING selected_folder = 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 ).
@ -62,7 +63,7 @@ START-OF-SELECTION.
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 p_path.
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
@ -129,12 +130,20 @@ START-OF-SELECTION.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
&quot; Convert to binary
lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
lv_bytecount = XSTRLEN( lv_file ).
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 = p_path
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
</PROG>

View File

@ -1,10 +1,11 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL20" VARCL="X" SUBC="1" CNAM="HUNGHM" CDAT="20101117" UNAM="FEMIA" UDAT="20101120" VERN="000035" RMAND="800" RLOAD="E" FIXPT="X" SDATE="20101217" STIME="224554" IDATE="20101120" ITIME="185935" UCCHECK="X">
<PROG NAME="ZDEMO_EXCEL20" VARCL="X" SUBC="1" CNAM="HUNGHM" CDAT="20101117" UNAM="BCUSER" UDAT="20101218" VERN="000036" RMAND="800" RLOAD="E" FIXPT="X" SDATE="20101224" STIME="102757" IDATE="20101218" ITIME="172118" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Bind ALV" LENGTH="24 "/>
</language>
</textPool>
<programDocumentation/>
<pfstatus>
<pfstatus_sta CODE="ALV_STATUS" MODAL="D" ACTCODE="000004" PFKCODE="000004" BUTCODE="0001" INT_NOTE="Standard for General List Output"/>
<pfstatus_fun CODE="%ML" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Folder" PATH="F"/>

View File

@ -1,10 +1,12 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL21" VARCL="X" SUBC="1" CNAM="BCUSER" CDAT="20101127" UNAM="FEMIA" UDAT="20101217" VERN="000019" RSTAT="T" RMAND="000" RLOAD="E" FIXPT="X" SDATE="20101217" STIME="231608" IDATE="20101217" ITIME="231608" UCCHECK="X">
<PROG NAME="ZDEMO_EXCEL21" VARCL="X" SUBC="1" CNAM="BCUSER" CDAT="20101127" UNAM="BCUSER" UDAT="20101224" VERN="000021" RSTAT="T" RMAND="000" RLOAD="E" FIXPT="X" SDATE="20101224" STIME="123005" IDATE="20101224" ITIME="123005" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Backgound Color Picker" LENGTH="38 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<programDocumentation/>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL21
*&amp;
@ -15,7 +17,8 @@
REPORT zdemo_excel21.
TYPES: BEGIN OF t_color_style,
TYPES:
BEGIN OF t_color_style,
color TYPE zexcel_style_color_argb,
style TYPE zexcel_cell_style,
END OF t_color_style.
@ -53,20 +56,19 @@ DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_file_name TYPE string,
lv_file_path TYPE string,
lv_full_path TYPE string,
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 string.
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = p_path
CHANGING selected_folder = 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 ).
@ -78,7 +80,7 @@ START-OF-SELECTION.
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 p_path.
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
@ -130,13 +132,21 @@ START-OF-SELECTION.
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
* Convert to binary
lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
lv_bytecount = XSTRLEN( lv_file ).
&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 = p_path
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
</PROG>

View File

@ -1,12 +1,14 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL22" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20101220" UNAM="FEMIA" UDAT="20101221" VERN="000018" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20101221" STIME="161716" IDATE="20101221" ITIME="161716" UCCHECK="X">
<PROG NAME="ZDEMO_EXCEL22" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20101220" UNAM="BCUSER" UDAT="20101224" VERN="000022" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20101224" STIME="123216" IDATE="20101224" ITIME="123216" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Export internal table" LENGTH="37 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<programDocumentation/>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZIFE_TEST_EXCEL
*&amp; Report ZDEMO_EXCEL22
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
@ -20,8 +22,7 @@ DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style TYPE REF TO zcl_excel_style,
lo_style_editable TYPE REF TO zcl_excel_style,
lo_data_validation TYPE REF TO zcl_excel_data_validation,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime.
lo_data_validation TYPE REF TO zcl_excel_data_validation.
DATA: lt_field_catalog TYPE zexcel_t_fieldcatalog,
ls_table_settings TYPE zexcel_s_table_settings,
@ -32,9 +33,7 @@ DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_file_name TYPE string,
lv_file_path TYPE string,
lv_full_path TYPE string,
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c,
lv_row TYPE char10.
@ -43,12 +42,13 @@ 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;.
PARAMETERS: p_path TYPE string.
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = p_path
CHANGING selected_folder = 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 ).
@ -60,7 +60,7 @@ START-OF-SELECTION.
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 p_path.
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
@ -114,7 +114,7 @@ START-OF-SELECTION.
WHEN &apos;PRICE&apos;.
&lt;fs_field_catalog&gt;-position = 4.
&lt;fs_field_catalog&gt;-dynpfld = abap_true.
&lt;fs_field_catalog&gt;-style = lo_style_editable-&gt;get_guid( )..
&lt;fs_field_catalog&gt;-style = lo_style_editable-&gt;get_guid( ).
&lt;fs_field_catalog&gt;-totals_function = zcl_excel_table=&gt;totals_function_sum.
WHEN OTHERS.
&lt;fs_field_catalog&gt;-dynpfld = abap_false.
@ -146,13 +146,21 @@ START-OF-SELECTION.
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
* Convert to binary
lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
lv_bytecount = XSTRLEN( lv_file ).
&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 = p_path
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
</PROG>

View File

@ -1,12 +1,14 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL3" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100711" UNAM="FEMIA" UDAT="20101217" VERN="000028" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20101217" STIME="224925" IDATE="20101217" ITIME="224925" UCCHECK="X">
<PROG NAME="ZDEMO_EXCEL3" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100711" UNAM="BCUSER" UDAT="20101224" VERN="000031" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20101224" STIME="104803" IDATE="20101224" ITIME="104803" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Export internal table" LENGTH="37 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<programDocumentation/>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZIFE_TEST_EXCEL
*&amp; Report ZDEMO_EXCEL3
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
@ -26,20 +28,19 @@ DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_file_name TYPE string,
lv_file_path TYPE string,
lv_full_path TYPE string,
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;03_iTab.xlsx&apos;.
PARAMETERS: p_path TYPE string.
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = p_path
CHANGING selected_folder = 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 ).
@ -51,7 +52,7 @@ START-OF-SELECTION.
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 p_path.
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
@ -77,13 +78,21 @@ START-OF-SELECTION.
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
* Convert to binary
lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
lv_bytecount = XSTRLEN( lv_file ).
&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 = p_path
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
</PROG>

View File

@ -1,12 +1,13 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL4" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100711" UNAM="FEMIA" UDAT="20101217" VERN="000023" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20101217" STIME="225005" IDATE="20101217" ITIME="225005" UCCHECK="X">
<PROG NAME="ZDEMO_EXCEL4" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100711" UNAM="BCUSER" UDAT="20101224" VERN="000026" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20101224" STIME="104753" IDATE="20101224" ITIME="104753" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Create XLXS with multiple sheets" LENGTH="48 "/>
</language>
</textPool>
<programDocumentation/>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZIFE_TEST_EXCEL
*&amp; Report ZDEMO_EXCEL4
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
@ -24,20 +25,19 @@ DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_file_name TYPE string,
lv_file_path TYPE string,
lv_full_path TYPE string,
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;04_Sheets.xlsx&apos;.
PARAMETERS: p_path TYPE string.
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = p_path
CHANGING selected_folder = 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 ).
@ -49,7 +49,7 @@ START-OF-SELECTION.
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 p_path.
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
@ -82,13 +82,21 @@ START-OF-SELECTION.
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
* Convert to binary
lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
lv_bytecount = XSTRLEN( lv_file ).
&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 = p_path
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
</PROG>

View File

@ -1,12 +1,13 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL5" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100711" UNAM="FEMIA" UDAT="20101030" VERN="000023" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20101217" STIME="224554" IDATE="20101030" ITIME="200000" UCCHECK="X">
<PROG NAME="ZDEMO_EXCEL5" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100711" UNAM="BCUSER" UDAT="20101224" VERN="000027" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20101224" STIME="105026" IDATE="20101224" ITIME="105026" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Conditinal formating" LENGTH="36 "/>
</language>
</textPool>
<programDocumentation/>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZIFE_TEST_EXCEL
*&amp; Report ZDEMO_EXCEL5
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
@ -24,20 +25,19 @@ DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_file_name TYPE string,
lv_file_path TYPE string,
lv_full_path TYPE string,
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;05_Conditional.xlsx&apos;.
PARAMETERS: p_path TYPE string.
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = p_path
CHANGING selected_folder = 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 ).
@ -49,7 +49,7 @@ START-OF-SELECTION.
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 p_path.
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
CREATE OBJECT lo_excel.
@ -75,13 +75,21 @@ START-OF-SELECTION.
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
* Convert to binary
lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
lv_bytecount = XSTRLEN( lv_file ).
&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 = p_path
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
</PROG>

View File

@ -1,12 +1,14 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL6" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100711" UNAM="FEMIA" UDAT="20101030" VERN="000029" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20101217" STIME="224554" IDATE="20101030" ITIME="200000" UCCHECK="X">
<PROG NAME="ZDEMO_EXCEL6" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100711" UNAM="BCUSER" UDAT="20101224" VERN="000031" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20101224" STIME="104946" IDATE="20101224" ITIME="104946" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Formulas" LENGTH="24 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<programDocumentation/>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZIFE_TEST_EXCEL
*&amp; Report ZDEMO_EXCEL6
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
@ -23,20 +25,19 @@ DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_file_name TYPE string,
lv_file_path TYPE string,
lv_full_path TYPE string,
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;06_Formulas.xlsx&apos;.
PARAMETERS: p_path TYPE string.
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = p_path
CHANGING selected_folder = 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 ).
@ -48,7 +49,7 @@ START-OF-SELECTION.
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 p_path.
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
CREATE OBJECT lo_excel.
@ -65,13 +66,21 @@ START-OF-SELECTION.
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
* Convert to binary
lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
lv_bytecount = XSTRLEN( lv_file ).
&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 = p_path
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
</PROG>

View File

@ -1,12 +1,14 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL7" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100711" UNAM="FEMIA" UDAT="20101030" VERN="000025" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20101217" STIME="224554" IDATE="20101030" ITIME="200001" UCCHECK="X">
<PROG NAME="ZDEMO_EXCEL7" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100711" UNAM="BCUSER" UDAT="20101224" VERN="000028" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20101224" STIME="105126" IDATE="20101224" ITIME="105126" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: All conditional formating possibilities" LENGTH="55 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<programDocumentation/>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZIFE_TEST_EXCEL
*&amp; Report ZDEMO_EXCEL7
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
@ -24,20 +26,19 @@ DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_file_name TYPE string,
lv_file_path TYPE string,
lv_full_path TYPE string,
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 string.
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = p_path
CHANGING selected_folder = 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 ).
@ -49,7 +50,7 @@ START-OF-SELECTION.
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 p_path.
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
CREATE OBJECT lo_excel.
@ -330,13 +331,21 @@ START-OF-SELECTION.
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
* Convert to binary
lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
lv_bytecount = XSTRLEN( lv_file ).
&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 = p_path
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
</PROG>

View File

@ -1,12 +1,14 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL8" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100713" UNAM="FEMIA" UDAT="20101217" VERN="000024" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20101217" STIME="230023" IDATE="20101217" ITIME="230023" UCCHECK="X">
<PROG NAME="ZDEMO_EXCEL8" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100713" UNAM="BCUSER" UDAT="20101224" VERN="000029" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20101224" STIME="105352" IDATE="20101224" ITIME="105352" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Define a range" LENGTH="30 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<programDocumentation/>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZIFE_TEST_EXCEL
*&amp; Report ZDEMO_EXCEL8
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
@ -18,28 +20,26 @@ 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,
lv_style_number_guid TYPE zexcel_cell_style.
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_file_name TYPE string,
lv_file_path TYPE string,
lv_full_path TYPE string,
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_title TYPE ZEXCEL_SHEET_TITLE,
lv_title TYPE zexcel_sheet_title,
lv_file_separator TYPE c.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;08_Range.xlsx&apos;.
PARAMETERS: p_path TYPE string.
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = p_path
CHANGING selected_folder = 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 ).
@ -51,7 +51,7 @@ START-OF-SELECTION.
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 p_path.
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
CREATE OBJECT lo_excel.
@ -77,13 +77,21 @@ START-OF-SELECTION.
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
* Convert to binary
lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
lv_bytecount = XSTRLEN( lv_file ).
&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 = p_path
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
</PROG>

View File

@ -1,12 +1,14 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL9" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100713" UNAM="FEMIA" UDAT="20101217" VERN="000031" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20101217" STIME="230307" IDATE="20101217" ITIME="230307" UCCHECK="X">
<PROG NAME="ZDEMO_EXCEL9" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100713" UNAM="BCUSER" UDAT="20101224" VERN="000034" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20101224" STIME="105525" IDATE="20101224" ITIME="105525" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Data validation (Dropdown list)" LENGTH="47 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<programDocumentation/>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZIFE_TEST_EXCEL
*&amp; Report ZDEMO_EXCEL9
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
@ -19,28 +21,26 @@ 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,
lv_style_number_guid TYPE zexcel_cell_style.
lo_data_validation TYPE REF TO zcl_excel_data_validation.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_file_name TYPE string,
lv_file_path TYPE string,
lv_full_path TYPE string,
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_title TYPE ZEXCEL_SHEET_TITLE,
lv_title TYPE zexcel_sheet_title,
lv_file_separator TYPE c.
CONSTANTS: lv_default_file_name TYPE string VALUE &apos;09_DataValidation.xlsx&apos;.
PARAMETERS: p_path TYPE string.
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = p_path
CHANGING selected_folder = 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 ).
@ -52,9 +52,9 @@ START-OF-SELECTION.
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 p_path.
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
@ -90,13 +90,21 @@ START-OF-SELECTION.
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
* Convert to binary
lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
lv_bytecount = XSTRLEN( lv_file ).
&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 = p_path
filename = lv_full_path
filetype = &apos;BIN&apos;
CHANGING data_tab = lt_file_tab ).</source>
</PROG>