Demo reports have no longer fixed output

git-svn-id: https://subversion.assembla.com/svn/abap2xlsx/trunk@22 b7d68dce-7c3c-4a99-8ce0-9ea847f5d049
This commit is contained in:
Ivan Femia 2010-09-24 13:50:05 +00:00
parent e6f84e7b51
commit 72b99e10da
21 changed files with 1377 additions and 1022 deletions

View File

@ -1,8 +1,9 @@
<?xml version="1.0" encoding="utf-16"?> <?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL" VARCL="X" SUBC="1" CNAM="BCUSER" CDAT="20100817" UNAM="FEMIA" UDAT="20100923" VERN="000018" RSTAT="T" RMAND="000" RLOAD="E" FIXPT="X" SDATE="20100923" STIME="233645" IDATE="20100923" ITIME="233645" UCCHECK="X"> <PROG NAME="ZDEMO_EXCEL" VARCL="X" SUBC="1" CNAM="BCUSER" CDAT="20100817" UNAM="FEMIA" UDAT="20100924" VERN="000023" RSTAT="T" RMAND="000" RLOAD="E" FIXPT="X" SDATE="20100924" STIME="153901" IDATE="20100924" ITIME="153901" UCCHECK="X">
<textPool> <textPool>
<language SPRAS="E"> <language SPRAS="E">
<textElement ID="R" ENTRY="Run all ABAP2XLSX Demo Programs" LENGTH="31 "/> <textElement ID="R" ENTRY="Run all ABAP2XLSX Demo Programs" LENGTH="31 "/>
<textElement ID="S" KEY="P_PATH" ENTRY=" Select output path" LENGTH="26 "/>
</language> </language>
</textPool> </textPool>
<source>*&amp;---------------------------------------------------------------------* <source>*&amp;---------------------------------------------------------------------*
@ -15,23 +16,42 @@
REPORT zdemo_excel. REPORT zdemo_excel.
SUBMIT zdemo_excel1 AND RETURN. &quot; Hello world DATA: lv_workdir TYPE string.
SUBMIT zdemo_excel2 AND RETURN. &quot; Styles
SUBMIT zdemo_excel3 AND RETURN. &quot; iTab binding PARAMETERS: p_path TYPE string.
SUBMIT zdemo_excel4 AND RETURN. &quot; Multi sheets and page setup
SUBMIT zdemo_excel5 AND RETURN. &quot; Conditional formatting AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
SUBMIT zdemo_excel6 AND RETURN. &quot; Formulas
SUBMIT zdemo_excel7 AND RETURN. &quot; Conditional formatting cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = p_path
SUBMIT zdemo_excel8 AND RETURN. &quot; Ranges CHANGING selected_folder = p_path ).
SUBMIT zdemo_excel9 AND RETURN. &quot; Data validation
SUBMIT zdemo_excel10 AND RETURN. &quot; Bind table with field catalog INITIALIZATION.
&quot; zdemo_excel11 is not added because it has a selection screen and cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
&quot; you also need to have business partners maintained in transaction BP p_path = lv_workdir.
SUBMIT zdemo_excel12 AND RETURN. &quot; Column size
SUBMIT zdemo_excel13 AND RETURN. &quot; Merge cell START-OF-SELECTION.
SUBMIT zdemo_excel14 AND RETURN. &quot; Alignment
SUBMIT zdemo_excel15 AND RETURN. &quot; Read Excel and write it back IF p_path IS INITIAL.
SUBMIT zdemo_excel16 AND RETURN. &quot; Read Excel and write it back p_path = lv_workdir.
SUBMIT zdemo_excel17 AND RETURN. &quot; Lock sheet ENDIF.
SUBMIT zdemo_excel18 AND RETURN. &quot; Lock workbook</source>
SUBMIT zdemo_excel1 with p_path = p_path AND RETURN. &quot; Hello world
SUBMIT zdemo_excel2 with p_path = p_path AND RETURN. &quot; Styles
SUBMIT zdemo_excel3 with p_path = p_path AND RETURN. &quot; iTab binding
SUBMIT zdemo_excel4 with p_path = p_path AND RETURN. &quot; Multi sheets and page setup
SUBMIT zdemo_excel5 with p_path = p_path AND RETURN. &quot; Conditional formatting
SUBMIT zdemo_excel6 with p_path = p_path AND RETURN. &quot; Formulas
SUBMIT zdemo_excel7 with p_path = p_path AND RETURN. &quot; Conditional formatting
SUBMIT zdemo_excel8 with p_path = p_path AND RETURN. &quot; Ranges
SUBMIT zdemo_excel9 with p_path = p_path AND RETURN. &quot; Data validation
SUBMIT zdemo_excel10 with p_path = p_path AND RETURN. &quot; Bind table with field catalog
&quot; zdemo_excel11 is not added because it has a selection screen and
&quot; you also need to have business partners maintained in transaction BP
SUBMIT zdemo_excel12 with p_path = p_path AND RETURN. &quot; Column size
SUBMIT zdemo_excel13 with p_path = p_path AND RETURN. &quot; Merge cell
SUBMIT zdemo_excel14 with p_path = p_path AND RETURN. &quot; Alignment
SUBMIT zdemo_excel15 with p_path = p_path AND RETURN. &quot; Read Excel and write it back
SUBMIT zdemo_excel16 with p_path = p_path AND RETURN. &quot; Drawing
SUBMIT zdemo_excel17 with p_path = p_path AND RETURN. &quot; Lock sheet
SUBMIT zdemo_excel18 with p_path = p_path AND RETURN. &quot; Lock workbook</source>
</PROG> </PROG>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-16"?> <?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL1" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100711" UNAM="FEMIA" UDAT="20100904" VERN="000036" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20100905" STIME="163357" IDATE="20100904" ITIME="183249" UCCHECK="X"> <PROG NAME="ZDEMO_EXCEL1" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100711" UNAM="FEMIA" UDAT="20100924" VERN="000062" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20100924" STIME="153901" IDATE="20100924" ITIME="153901" UCCHECK="X">
<textPool> <textPool>
<language SPRAS="E"> <language SPRAS="E">
<textElement ID="R" ENTRY="Test for excel" LENGTH="14 "/> <textElement ID="R" ENTRY="Test for excel" LENGTH="14 "/>
@ -21,36 +21,55 @@ DATA: lo_excel TYPE REF TO zcl_excel,
DATA: lv_file TYPE xstring, DATA: lv_file TYPE xstring,
lv_bytecount TYPE i, lv_bytecount TYPE i,
lt_file_tab TYPE STANDARD TABLE OF solisti1. lt_file_tab TYPE solix_tab.
&quot; Creates active sheet DATA: lv_file_name TYPE string,
CREATE OBJECT lo_excel. lv_file_path TYPE string,
lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
&quot; Get active sheet CONSTANTS: lv_default_file_name TYPE string VALUE &apos;01_HelloWorld.xlsx&apos;.
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;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 ).
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. PARAMETERS: p_path TYPE string.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
&quot; Convert to binary AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos;
EXPORTING
buffer = lv_file
IMPORTING
output_length = lv_bytecount
TABLES
binary_tab = lt_file_tab.
&quot; Save the file cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = p_path
CALL FUNCTION &apos;GUI_DOWNLOAD&apos; CHANGING selected_folder = p_path ).
EXPORTING
bin_filesize = lv_bytecount INITIALIZATION.
filename = &apos;C:\HelloWorld.xlsx&apos; 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.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;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 ).
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; Save the file
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
filename = p_path
filetype = &apos;BIN&apos; filetype = &apos;BIN&apos;
TABLES CHANGING data_tab = lt_file_tab ).</source>
data_tab = lt_file_tab.</source>
</PROG> </PROG>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-16"?> <?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL10" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100719" UNAM="VONDRUSKA" UDAT="20100917" VERN="000058" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20100917" STIME="105913" IDATE="20100917" ITIME="105913" UCCHECK="X"> <PROG NAME="ZDEMO_EXCEL10" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100719" UNAM="FEMIA" UDAT="20100924" VERN="000061" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20100924" STIME="153901" IDATE="20100924" ITIME="153901" UCCHECK="X">
<textPool> <textPool>
<language SPRAS="E"> <language SPRAS="E">
<textElement ID="R" ENTRY="Test for excel" LENGTH="14 "/> <textElement ID="R" ENTRY="Test for excel" LENGTH="14 "/>
@ -16,39 +16,68 @@
REPORT zdemo_excel10. REPORT zdemo_excel10.
DATA: lo_excel TYPE REF TO zcl_excel, 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, lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_conditional2 TYPE REF TO zcl_excel_style_conditional, lo_style_conditional2 TYPE REF TO zcl_excel_style_conditional,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime. 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, DATA: lv_file TYPE xstring,
lv_bytecount TYPE i, lv_bytecount TYPE i,
lt_field_catalog TYPE zexcel_t_fieldcatalog, lt_file_tab TYPE solix_tab.
ls_field_catalog TYPE zexcel_s_fieldcatalog,
ls_table_settings TYPE zexcel_s_table_settings,
lt_file_tab TYPE STANDARD TABLE OF solisti1.
FIELD-SYMBOLS: &lt;fs_field_catalog&gt; TYPE zexcel_s_fieldcatalog. DATA: lv_file_name TYPE string,
lv_file_path TYPE string,
lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
&quot; Creates active sheet CONSTANTS: lv_default_file_name TYPE string VALUE &apos;10_iTabFieldCatalog.xlsx&apos;.
CREATE OBJECT lo_excel.
&quot; Get active sheet PARAMETERS: p_path TYPE string.
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;title = &apos;Internal table&apos;.
&quot;Conditional style AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lo_style_conditional2 = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional2-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset.
lo_style_conditional2-&gt;iconset = zcl_excel_style_conditional=&gt;c_iconset_5arrows.
lo_style_conditional2-&gt;priority = 1.
DATA lt_test TYPE TABLE OF sflight. cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = p_path
SELECT * FROM sflight INTO TABLE lt_test. CHANGING selected_folder = p_path ).
lt_field_catalog = zcl_excel_common=&gt;get_fieldcatalog( ip_table = lt_test ). INITIALIZATION.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
p_path = lv_workdir.
LOOP AT lt_field_catalog ASSIGNING &lt;fs_field_catalog&gt;. 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.
FIELD-SYMBOLS: &lt;fs_field_catalog&gt; TYPE zexcel_s_fieldcatalog.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;title = &apos;Internal table&apos;.
&quot;Conditional style
lo_style_conditional2 = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional2-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset.
lo_style_conditional2-&gt;iconset = zcl_excel_style_conditional=&gt;c_iconset_5arrows.
lo_style_conditional2-&gt;priority = 1.
DATA lt_test TYPE TABLE OF sflight.
SELECT * FROM sflight INTO TABLE lt_test.
lt_field_catalog = zcl_excel_common=&gt;get_fieldcatalog( ip_table = lt_test ).
LOOP AT lt_field_catalog ASSIGNING &lt;fs_field_catalog&gt;.
CASE &lt;fs_field_catalog&gt;-fieldname. CASE &lt;fs_field_catalog&gt;-fieldname.
WHEN &apos;CARRID&apos;. WHEN &apos;CARRID&apos;.
&lt;fs_field_catalog&gt;-position = 3. &lt;fs_field_catalog&gt;-position = 3.
@ -68,35 +97,27 @@ LOOP AT lt_field_catalog ASSIGNING &lt;fs_field_catalog&gt;.
WHEN OTHERS. WHEN OTHERS.
&lt;fs_field_catalog&gt;-dynpfld = abap_false. &lt;fs_field_catalog&gt;-dynpfld = abap_false.
ENDCASE. ENDCASE.
ENDLOOP. ENDLOOP.
ls_table_settings-table_style = zcl_excel_table=&gt;builtinstyle_medium5. ls_table_settings-table_style = zcl_excel_table=&gt;builtinstyle_medium5.
lo_worksheet-&gt;bind_table( ip_table = lt_test lo_worksheet-&gt;bind_table( ip_table = lt_test
is_table_settings = ls_table_settings is_table_settings = ls_table_settings
it_field_catalog = lt_field_catalog ). it_field_catalog = lt_field_catalog ).
column_dimension = lo_worksheet-&gt;get_column_dimension( &apos;D&apos; ). &quot;make date field a bit wider column_dimension = lo_worksheet-&gt;get_column_dimension( &apos;D&apos; ). &quot;make date field a bit wider
column_dimension-&gt;set_width( ip_width = 13 ). column_dimension-&gt;set_width( ip_width = 13 ).
create object lo_excel_writer type zcl_excel_writer_2007. CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ). lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
&quot; Convert to binary * Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos; lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
EXPORTING lv_bytecount = XSTRLEN( lv_file ).
buffer = lv_file
IMPORTING
output_length = lv_bytecount
TABLES
binary_tab = lt_file_tab.
&quot; Save the file &quot; Save the file
CALL FUNCTION &apos;GUI_DOWNLOAD&apos; cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
EXPORTING filename = p_path
bin_filesize = lv_bytecount
filename = &apos;C:\iTabFieldCatalog.xlsx&apos;
filetype = &apos;BIN&apos; filetype = &apos;BIN&apos;
TABLES CHANGING data_tab = lt_file_tab ).</source>
data_tab = lt_file_tab.</source>
</PROG> </PROG>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-16"?> <?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL11" VARCL="X" SUBC="1" CNAM="BCUSER" CDAT="20100809" UNAM="VONDRUSKA" UDAT="20100917" VERN="000041" RSTAT="K" RMAND="000" RLOAD="E" FIXPT="X" SDATE="20100917" STIME="110149" IDATE="20100917" ITIME="110149" UCCHECK="X"> <PROG NAME="ZDEMO_EXCEL11" VARCL="X" SUBC="1" CNAM="BCUSER" CDAT="20100809" UNAM="FEMIA" UDAT="20100924" VERN="000043" RSTAT="K" RMAND="000" RLOAD="E" FIXPT="X" SDATE="20100924" STIME="153901" IDATE="20100924" ITIME="153901" UCCHECK="X">
<textPool> <textPool>
<language SPRAS="E"> <language SPRAS="E">
<textElement ID="R" ENTRY="Export Organisation and Contact Persons using ABAP2XLSX" LENGTH="55 "/> <textElement ID="R" ENTRY="Export Organisation and Contact Persons using ABAP2XLSX" LENGTH="55 "/>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-16"?> <?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL12" VARCL="X" SUBC="1" CNAM="BCUSER" CDAT="20100811" UNAM="VONDRUSKA" UDAT="20100917" VERN="000024" RSTAT="T" RMAND="000" RLOAD="E" FIXPT="X" SDATE="20100917" STIME="110247" IDATE="20100917" ITIME="110247" UCCHECK="X"> <PROG NAME="ZDEMO_EXCEL12" VARCL="X" SUBC="1" CNAM="BCUSER" CDAT="20100811" UNAM="FEMIA" UDAT="20100924" VERN="000027" RSTAT="T" RMAND="000" RLOAD="E" FIXPT="X" SDATE="20100924" STIME="153902" IDATE="20100924" ITIME="153902" UCCHECK="X">
<textPool> <textPool>
<language SPRAS="E"> <language SPRAS="E">
<textElement ID="R" ENTRY="Hide Columns" LENGTH="12 "/> <textElement ID="R" ENTRY="Hide Columns" LENGTH="12 "/>
@ -23,7 +23,35 @@ DATA: lo_excel TYPE REF TO zcl_excel,
DATA: lv_file TYPE xstring, DATA: lv_file TYPE xstring,
lv_bytecount TYPE i, lv_bytecount TYPE i,
lt_file_tab TYPE STANDARD TABLE OF solisti1. lt_file_tab TYPE solix_tab.
DATA: lv_file_name TYPE string,
lv_file_path TYPE string,
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.
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 ).
INITIALIZATION.
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.
&quot; Creates active sheet &quot; Creates active sheet
CREATE OBJECT lo_excel. CREATE OBJECT lo_excel.
@ -75,21 +103,13 @@ row_dimension-&gt;set_outline_level( 2 ).
create object lo_excel_writer type zcl_excel_writer_2007. create object lo_excel_writer type zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ). lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
&quot; Convert to binary * Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos; lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
EXPORTING lv_bytecount = xstrlen( lv_file ).
buffer = lv_file
IMPORTING
output_length = lv_bytecount
TABLES
binary_tab = lt_file_tab.
&quot; Save the file &quot; Save the file
CALL FUNCTION &apos;GUI_DOWNLOAD&apos; cl_gui_frontend_services=&gt;gui_download( exporting bin_filesize = lv_bytecount
EXPORTING filename = p_path
bin_filesize = lv_bytecount
filename = &apos;C:\HideSizeOutlineRowsAndColumns.xlsx&apos;
filetype = &apos;BIN&apos; filetype = &apos;BIN&apos;
TABLES changing data_tab = lt_file_tab ).</source>
data_tab = lt_file_tab.</source>
</PROG> </PROG>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-16"?> <?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL13" VARCL="X" SUBC="1" CNAM="ATEJADA" CDAT="20100812" UNAM="FEMIA" UDAT="20100905" VERN="000018" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20100905" STIME="164207" IDATE="20100905" ITIME="164207" UCCHECK="X"> <PROG NAME="ZDEMO_EXCEL13" VARCL="X" SUBC="1" CNAM="ATEJADA" CDAT="20100812" UNAM="FEMIA" UDAT="20100924" VERN="000022" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20100924" STIME="153902" IDATE="20100924" ITIME="153902" UCCHECK="X">
<textPool> <textPool>
<language SPRAS="E"> <language SPRAS="E">
<textElement ID="R" ENTRY="Test for excel" LENGTH="14 "/> <textElement ID="R" ENTRY="Test for excel" LENGTH="14 "/>
@ -16,62 +16,83 @@
REPORT zdemo_excel13. REPORT zdemo_excel13.
DATA: lo_excel TYPE REF TO zcl_excel, 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, lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_range TYPE REF TO zcl_excel_range, lo_range TYPE REF TO zcl_excel_range,
lv_file TYPE xstring,
lv_style_number_guid TYPE zexcel_cell_style, lv_style_number_guid TYPE zexcel_cell_style,
lv_bytecount TYPE i,
lt_file_tab TYPE STANDARD TABLE OF solisti1,
lv_style_bold_border_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_style_bold_border TYPE REF TO zcl_excel_style,
lo_border_dark TYPE REF TO zcl_excel_style_border. lo_border_dark TYPE REF TO zcl_excel_style_border.
CREATE OBJECT lo_excel. DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
&quot; Get active sheet DATA: lv_file_name TYPE string,
lo_worksheet = lo_excel-&gt;get_active_worksheet( ). lv_file_path TYPE string,
lo_worksheet-&gt;title = &apos;sheet1&apos;. lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
CREATE OBJECT lo_border_dark. CONSTANTS: lv_default_file_name TYPE string VALUE &apos;13_MergedCells.xlsx&apos;.
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.
lo_style_bold_border = lo_excel-&gt;add_new_style( ). PARAMETERS: p_path TYPE string.
lo_style_bold_border-&gt;font-&gt;bold = abap_true.
lo_style_bold_border-&gt;font-&gt;italic = abap_false.
lo_style_bold_border-&gt;font-&gt;color = zcl_excel_style_color=&gt;c_black.
lo_style_bold_border-&gt;alignment-&gt;horizontal = zcl_excel_style_alignment=&gt;c_horizontal_center.
lo_style_bold_border-&gt;borders-&gt;allborders = lo_border_dark.
lv_style_bold_border_guid = lo_style_bold_border-&gt;get_guid( ).
lo_worksheet-&gt;set_cell( ip_row = 2 ip_column = &apos;A&apos; ip_value = &apos;Test&apos; ). AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lo_worksheet-&gt;set_cell( ip_row = 2 ip_column = &apos;B&apos; ip_value = &apos;Banana&apos; ip_style = lv_style_bold_border_guid ). cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = p_path
lo_worksheet-&gt;set_cell( ip_row = 2 ip_column = &apos;C&apos; ip_value = &apos;&apos; ip_style = lv_style_bold_border_guid ). CHANGING selected_folder = p_path ).
lo_worksheet-&gt;set_cell( ip_row = 2 ip_column = &apos;D&apos; ip_value = &apos;&apos; ip_style = lv_style_bold_border_guid ).
lo_worksheet-&gt;set_cell( ip_row = 2 ip_column = &apos;E&apos; ip_value = &apos;&apos; ip_style = lv_style_bold_border_guid ).
lo_worksheet-&gt;set_cell( ip_row = 2 ip_column = &apos;F&apos; ip_value = &apos;&apos; ip_style = lv_style_bold_border_guid ).
lo_worksheet-&gt;set_cell( ip_row = 2 ip_column = &apos;G&apos; ip_value = &apos;&apos; ip_style = lv_style_bold_border_guid ).
lo_worksheet-&gt;set_merge( ip_row = 2 ip_column_start = &apos;B&apos; ip_column_end = &apos;G&apos; ).
create object lo_excel_writer type zcl_excel_writer_2007. INITIALIZATION.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ). cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
p_path = lv_workdir.
&quot;convert to table START-OF-SELECTION.
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos;
EXPORTING IF p_path IS INITIAL.
buffer = lv_file p_path = lv_workdir.
IMPORTING ENDIF.
output_length = lv_bytecount cl_gui_frontend_services=&gt;get_file_separator( CHANGING file_separator = lv_file_separator ).
TABLES CONCATENATE p_path lv_file_separator lv_default_file_name INTO p_path.
binary_tab = lt_file_tab.
&quot;Save the file CREATE OBJECT lo_excel.
CALL FUNCTION &apos;GUI_DOWNLOAD&apos;
EXPORTING &quot; Get active sheet
bin_filesize = lv_bytecount lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
filename = &apos;C:\Merged_Cells.xlsx&apos; lo_worksheet-&gt;title = &apos;sheet1&apos;.
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.
lo_style_bold_border = lo_excel-&gt;add_new_style( ).
lo_style_bold_border-&gt;font-&gt;bold = abap_true.
lo_style_bold_border-&gt;font-&gt;italic = abap_false.
lo_style_bold_border-&gt;font-&gt;color = zcl_excel_style_color=&gt;c_black.
lo_style_bold_border-&gt;alignment-&gt;horizontal = zcl_excel_style_alignment=&gt;c_horizontal_center.
lo_style_bold_border-&gt;borders-&gt;allborders = lo_border_dark.
lv_style_bold_border_guid = lo_style_bold_border-&gt;get_guid( ).
lo_worksheet-&gt;set_cell( ip_row = 2 ip_column = &apos;A&apos; ip_value = &apos;Test&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 2 ip_column = &apos;B&apos; ip_value = &apos;Banana&apos; ip_style = lv_style_bold_border_guid ).
lo_worksheet-&gt;set_cell( ip_row = 2 ip_column = &apos;C&apos; ip_value = &apos;&apos; ip_style = lv_style_bold_border_guid ).
lo_worksheet-&gt;set_cell( ip_row = 2 ip_column = &apos;D&apos; ip_value = &apos;&apos; ip_style = lv_style_bold_border_guid ).
lo_worksheet-&gt;set_cell( ip_row = 2 ip_column = &apos;E&apos; ip_value = &apos;&apos; ip_style = lv_style_bold_border_guid ).
lo_worksheet-&gt;set_cell( ip_row = 2 ip_column = &apos;F&apos; ip_value = &apos;&apos; ip_style = lv_style_bold_border_guid ).
lo_worksheet-&gt;set_cell( ip_row = 2 ip_column = &apos;G&apos; ip_value = &apos;&apos; ip_style = lv_style_bold_border_guid ).
lo_worksheet-&gt;set_merge( ip_row = 2 ip_column_start = &apos;B&apos; ip_column_end = &apos;G&apos; ).
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; Save the file
cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
filename = p_path
filetype = &apos;BIN&apos; filetype = &apos;BIN&apos;
TABLES CHANGING data_tab = lt_file_tab ).</source>
data_tab = lt_file_tab.</source>
</PROG> </PROG>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-16"?> <?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL14" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100817" UNAM="FEMIA" UDAT="20100912" VERN="000038" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20100912" STIME="205336" IDATE="20100912" ITIME="205336" UCCHECK="X"> <PROG NAME="ZDEMO_EXCEL14" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100817" UNAM="FEMIA" UDAT="20100924" VERN="000041" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20100924" STIME="153902" IDATE="20100924" ITIME="153902" UCCHECK="X">
<textPool> <textPool>
<language SPRAS="E"> <language SPRAS="E">
<textElement ID="R" ENTRY="Test for excel" LENGTH="14 "/> <textElement ID="R" ENTRY="Test for excel" LENGTH="14 "/>
@ -18,9 +18,6 @@ REPORT zdemo_excel14.
DATA: lo_excel TYPE REF TO zcl_excel, 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, lo_worksheet TYPE REF TO zcl_excel_worksheet,
lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE STANDARD TABLE OF solisti1,
lo_style_center TYPE REF TO zcl_excel_style, lo_style_center TYPE REF TO zcl_excel_style,
lo_style_right TYPE REF TO zcl_excel_style, lo_style_right TYPE REF TO zcl_excel_style,
lo_style_left TYPE REF TO zcl_excel_style, lo_style_left TYPE REF TO zcl_excel_style,
@ -48,121 +45,144 @@ DATA: lo_excel TYPE REF TO zcl_excel,
DATA: lo_row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi. 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.
CREATE OBJECT lo_excel. DATA: lv_file_name TYPE string,
lv_file_path TYPE string,
lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
&quot; Get active sheet CONSTANTS: lv_default_file_name TYPE string VALUE &apos;14_Alignment.xlsx&apos;.
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;title = &apos;sheet1&apos;.
&quot;Center PARAMETERS: p_path TYPE string.
lo_style_center = lo_excel-&gt;add_new_style( ).
lo_style_center-&gt;alignment-&gt;horizontal = zcl_excel_style_alignment=&gt;c_horizontal_center.
lv_style_center_guid = lo_style_center-&gt;get_guid( ).
&quot;Right
lo_style_right = lo_excel-&gt;add_new_style( ).
lo_style_right-&gt;alignment-&gt;horizontal = zcl_excel_style_alignment=&gt;c_horizontal_right.
lv_style_right_guid = lo_style_right-&gt;get_guid( ).
&quot;Left
lo_style_left = lo_excel-&gt;add_new_style( ).
lo_style_left-&gt;alignment-&gt;horizontal = zcl_excel_style_alignment=&gt;c_horizontal_left.
lv_style_left_guid = lo_style_left-&gt;get_guid( ).
&quot;General
lo_style_general = lo_excel-&gt;add_new_style( ).
lo_style_general-&gt;alignment-&gt;horizontal = zcl_excel_style_alignment=&gt;c_horizontal_general.
lv_style_general_guid = lo_style_general-&gt;get_guid( ).
&quot;Bottom
lo_style_bottom = lo_excel-&gt;add_new_style( ).
lo_style_bottom-&gt;alignment-&gt;vertical = zcl_excel_style_alignment=&gt;c_vertical_bottom.
lv_style_bottom_guid = lo_style_bottom-&gt;get_guid( ).
&quot;Middle
lo_style_middle = lo_excel-&gt;add_new_style( ).
lo_style_middle-&gt;alignment-&gt;vertical = zcl_excel_style_alignment=&gt;c_vertical_center.
lv_style_middle_guid = lo_style_middle-&gt;get_guid( ).
&quot;Top
lo_style_top = lo_excel-&gt;add_new_style( ).
lo_style_top-&gt;alignment-&gt;vertical = zcl_excel_style_alignment=&gt;c_vertical_top.
lv_style_top_guid = lo_style_top-&gt;get_guid( ).
&quot;Justify
lo_style_justify = lo_excel-&gt;add_new_style( ).
lo_style_justify-&gt;alignment-&gt;vertical = zcl_excel_style_alignment=&gt;c_vertical_justify.
lv_style_justify_guid = lo_style_justify-&gt;get_guid( ).
&quot;Shrink AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lo_style_shrink = lo_excel-&gt;add_new_style( ).
lo_style_shrink-&gt;alignment-&gt;shrinktofit = abap_true.
lv_style_shrink_guid = lo_style_shrink-&gt;get_guid( ).
&quot;Indent cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = p_path
lo_style_indent = lo_excel-&gt;add_new_style( ). CHANGING selected_folder = p_path ).
lo_style_indent-&gt;alignment-&gt;indent = 5.
lv_style_indent_guid = lo_style_indent-&gt;get_guid( ).
&quot;Middle / Centered / Wrap INITIALIZATION.
lo_style_mixed = lo_excel-&gt;add_new_style( ). cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
lo_style_mixed-&gt;alignment-&gt;horizontal = zcl_excel_style_alignment=&gt;c_horizontal_center. p_path = lv_workdir.
lo_style_mixed-&gt;alignment-&gt;vertical = zcl_excel_style_alignment=&gt;c_vertical_center.
lo_style_mixed-&gt;alignment-&gt;wraptext = abap_true.
lv_style_mixed_guid = lo_style_mixed-&gt;get_guid( ).
&quot;Center 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. IF p_path IS INITIAL.
lo_style_rotated-&gt;alignment-&gt;vertical = zcl_excel_style_alignment=&gt;c_vertical_center. p_path = lv_workdir.
lo_style_rotated-&gt;alignment-&gt;textrotation = 165. &quot; -75° == 90° + 75° ENDIF.
lv_style_rotated_guid = lo_style_rotated-&gt;get_guid( ). 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.
CREATE OBJECT lo_excel.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;title = &apos;sheet1&apos;.
&quot;Center
lo_style_center = lo_excel-&gt;add_new_style( ).
lo_style_center-&gt;alignment-&gt;horizontal = zcl_excel_style_alignment=&gt;c_horizontal_center.
lv_style_center_guid = lo_style_center-&gt;get_guid( ).
&quot;Right
lo_style_right = lo_excel-&gt;add_new_style( ).
lo_style_right-&gt;alignment-&gt;horizontal = zcl_excel_style_alignment=&gt;c_horizontal_right.
lv_style_right_guid = lo_style_right-&gt;get_guid( ).
&quot;Left
lo_style_left = lo_excel-&gt;add_new_style( ).
lo_style_left-&gt;alignment-&gt;horizontal = zcl_excel_style_alignment=&gt;c_horizontal_left.
lv_style_left_guid = lo_style_left-&gt;get_guid( ).
&quot;General
lo_style_general = lo_excel-&gt;add_new_style( ).
lo_style_general-&gt;alignment-&gt;horizontal = zcl_excel_style_alignment=&gt;c_horizontal_general.
lv_style_general_guid = lo_style_general-&gt;get_guid( ).
&quot;Bottom
lo_style_bottom = lo_excel-&gt;add_new_style( ).
lo_style_bottom-&gt;alignment-&gt;vertical = zcl_excel_style_alignment=&gt;c_vertical_bottom.
lv_style_bottom_guid = lo_style_bottom-&gt;get_guid( ).
&quot;Middle
lo_style_middle = lo_excel-&gt;add_new_style( ).
lo_style_middle-&gt;alignment-&gt;vertical = zcl_excel_style_alignment=&gt;c_vertical_center.
lv_style_middle_guid = lo_style_middle-&gt;get_guid( ).
&quot;Top
lo_style_top = lo_excel-&gt;add_new_style( ).
lo_style_top-&gt;alignment-&gt;vertical = zcl_excel_style_alignment=&gt;c_vertical_top.
lv_style_top_guid = lo_style_top-&gt;get_guid( ).
&quot;Justify
lo_style_justify = lo_excel-&gt;add_new_style( ).
lo_style_justify-&gt;alignment-&gt;vertical = zcl_excel_style_alignment=&gt;c_vertical_justify.
lv_style_justify_guid = lo_style_justify-&gt;get_guid( ).
&quot;Shrink
lo_style_shrink = lo_excel-&gt;add_new_style( ).
lo_style_shrink-&gt;alignment-&gt;shrinktofit = abap_true.
lv_style_shrink_guid = lo_style_shrink-&gt;get_guid( ).
&quot;Indent
lo_style_indent = lo_excel-&gt;add_new_style( ).
lo_style_indent-&gt;alignment-&gt;indent = 5.
lv_style_indent_guid = lo_style_indent-&gt;get_guid( ).
&quot;Middle / Centered / Wrap
lo_style_mixed = lo_excel-&gt;add_new_style( ).
lo_style_mixed-&gt;alignment-&gt;horizontal = zcl_excel_style_alignment=&gt;c_horizontal_center.
lo_style_mixed-&gt;alignment-&gt;vertical = zcl_excel_style_alignment=&gt;c_vertical_center.
lo_style_mixed-&gt;alignment-&gt;wraptext = abap_true.
lv_style_mixed_guid = lo_style_mixed-&gt;get_guid( ).
&quot;Center
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°
lv_style_rotated_guid = lo_style_rotated-&gt;get_guid( ).
&quot; Set row size for first 7 rows to 40 &quot; Set row size for first 7 rows to 40
DO 7 TIMES. DO 7 TIMES.
lo_row_dimension = lo_worksheet-&gt;get_row_dimension( sy-index ). lo_row_dimension = lo_worksheet-&gt;get_row_dimension( sy-index ).
lo_row_dimension-&gt;set_row_height( 40 ). lo_row_dimension-&gt;set_row_height( 40 ).
ENDDO. ENDDO.
&quot;Horizontal alignment &quot;Horizontal alignment
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;B&apos; ip_value = &apos;Centered Text&apos; ip_style = lv_style_center_guid ). lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;B&apos; ip_value = &apos;Centered Text&apos; ip_style = lv_style_center_guid ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;B&apos; ip_value = &apos;Right Text&apos; ip_style = lv_style_right_guid ). lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;B&apos; ip_value = &apos;Right Text&apos; ip_style = lv_style_right_guid ).
lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;B&apos; ip_value = &apos;Left Text&apos; ip_style = lv_style_left_guid ). lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;B&apos; ip_value = &apos;Left Text&apos; ip_style = lv_style_left_guid ).
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;B&apos; ip_value = &apos;General Text&apos; ip_style = lv_style_general_guid ). lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;B&apos; ip_value = &apos;General Text&apos; ip_style = lv_style_general_guid ).
&quot; Shrink &amp; indent &quot; Shrink &amp; indent
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;F&apos; ip_value = &apos;Text shrinked&apos; ip_style = lv_style_shrink_guid ). lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;F&apos; ip_value = &apos;Text shrinked&apos; ip_style = lv_style_shrink_guid ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;F&apos; ip_value = &apos;Text indented&apos; ip_style = lv_style_indent_guid ). lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;F&apos; ip_value = &apos;Text indented&apos; ip_style = lv_style_indent_guid ).
&quot;Vertical alignment &quot;Vertical alignment
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;D&apos; ip_value = &apos;Bottom Text&apos; ip_style = lv_style_bottom_guid ). lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;D&apos; ip_value = &apos;Bottom Text&apos; ip_style = lv_style_bottom_guid ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;D&apos; ip_value = &apos;Middle Text&apos; ip_style = lv_style_middle_guid ). lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;D&apos; ip_value = &apos;Middle Text&apos; ip_style = lv_style_middle_guid ).
lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;D&apos; ip_value = &apos;Top Text&apos; ip_style = lv_style_top_guid ). lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;D&apos; ip_value = &apos;Top Text&apos; ip_style = lv_style_top_guid ).
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;D&apos; ip_value = &apos;Justify Text&apos; ip_style = lv_style_justify_guid ). lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;D&apos; ip_value = &apos;Justify Text&apos; ip_style = lv_style_justify_guid ).
&quot; Wrapped &quot; Wrapped
lo_worksheet-&gt;set_cell( ip_row = 10 ip_column = &apos;B&apos; lo_worksheet-&gt;set_cell( ip_row = 10 ip_column = &apos;B&apos;
ip_value = &apos;This is a wrapped text centered in the middle&apos; ip_value = &apos;This is a wrapped text centered in the middle&apos;
ip_style = lv_style_mixed_guid ). ip_style = lv_style_mixed_guid ).
&quot; Rotated &quot; Rotated
lo_worksheet-&gt;set_cell( ip_row = 10 ip_column = &apos;D&apos; 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 ). ip_style = lv_style_rotated_guid ).
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ). lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
&quot;convert to table * Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos; lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
EXPORTING lv_bytecount = XSTRLEN( lv_file ).
buffer = lv_file
IMPORTING &quot; Save the file
output_length = lv_bytecount cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
TABLES filename = p_path
binary_tab = lt_file_tab.
&quot;Save the file
CALL FUNCTION &apos;GUI_DOWNLOAD&apos;
EXPORTING
bin_filesize = lv_bytecount
filename = &apos;C:\Alignment.xlsx&apos;
filetype = &apos;BIN&apos; filetype = &apos;BIN&apos;
TABLES CHANGING data_tab = lt_file_tab ).</source>
data_tab = lt_file_tab.</source>
</PROG> </PROG>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-16"?> <?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL15" VARCL="X" SUBC="1" CNAM="BCUSER" CDAT="20100820" UNAM="FEMIA" UDAT="20100905" VERN="000007" RSTAT="T" RMAND="000" RLOAD="E" FIXPT="X" SDATE="20100915" STIME="094448" IDATE="20100905" ITIME="164325" UCCHECK="X"> <PROG NAME="ZDEMO_EXCEL15" VARCL="X" SUBC="1" CNAM="BCUSER" CDAT="20100820" UNAM="FEMIA" UDAT="20100924" VERN="000012" RSTAT="T" RMAND="000" RLOAD="E" FIXPT="X" SDATE="20100924" STIME="153902" IDATE="20100924" ITIME="153902" UCCHECK="X">
<textPool> <textPool>
<language SPRAS="E"> <language SPRAS="E">
<textElement ID="R" ENTRY="ABAP2XLSX Reader Demo" LENGTH="21 "/> <textElement ID="R" ENTRY="ABAP2XLSX Reader Demo" LENGTH="21 "/>
@ -21,33 +21,52 @@ DATA: excel TYPE REF TO zcl_excel,
DATA: lv_file TYPE xstring, DATA: lv_file TYPE xstring,
lv_bytecount TYPE i, lv_bytecount TYPE i,
lt_file_tab TYPE STANDARD TABLE OF solisti1. lt_file_tab TYPE solix_tab.
TRY. DATA: lv_workdir TYPE string,
lv_path TYPE string,
lv_file_separator TYPE c.
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.
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 ).
INITIALIZATION.
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.
TRY.
CONCATENATE p_path lv_file_separator lv_default_input INTO lv_path.
CREATE OBJECT reader TYPE zcl_excel_reader_2007. CREATE OBJECT reader TYPE zcl_excel_reader_2007.
excel = reader-&gt;load_file( &apos;C:\iTab.xlsx&apos; ). excel = reader-&gt;load_file( lv_path ).
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( excel ). lv_file = lo_excel_writer-&gt;write_file( excel ).
&quot; Convert to binary * Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos; lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
EXPORTING lv_bytecount = XSTRLEN( lv_file ).
buffer = lv_file
IMPORTING
output_length = lv_bytecount
TABLES
binary_tab = lt_file_tab.
&quot; Save the file &quot; Save the file
CALL FUNCTION &apos;GUI_DOWNLOAD&apos; cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
EXPORTING filename = p_path
bin_filesize = lv_bytecount
filename = &apos;C:\iTabFromReader.xlsx&apos;
filetype = &apos;BIN&apos; filetype = &apos;BIN&apos;
TABLES CHANGING data_tab = lt_file_tab ).
data_tab = lt_file_tab.
CATCH zcx_excel. &quot; Exceptions for ABAP2XLSX CATCH zcx_excel. &quot; Exceptions for ABAP2XLSX
ENDTRY.</source> ENDTRY.</source>
</PROG> </PROG>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-16"?> <?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL16" VARCL="X" SUBC="1" CNAM="VONDRUSKA" CDAT="20100914" UNAM="VONDRUSKA" UDAT="20100917" VERN="000051" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20100917" STIME="082516" IDATE="20100917" ITIME="082516" UCCHECK="X"> <PROG NAME="ZDEMO_EXCEL16" VARCL="X" SUBC="1" CNAM="VONDRUSKA" CDAT="20100914" UNAM="FEMIA" UDAT="20100924" VERN="000054" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20100924" STIME="153902" IDATE="20100924" ITIME="153902" UCCHECK="X">
<textPool> <textPool>
<language SPRAS="E"> <language SPRAS="E">
<textElement ID="R" ENTRY="Test for excel - drawings" LENGTH="25 "/> <textElement ID="R" ENTRY="Test for excel - drawings" LENGTH="25 "/>
@ -23,18 +23,42 @@ DATA: lo_excel TYPE REF TO zcl_excel,
DATA: lv_file TYPE xstring, DATA: lv_file TYPE xstring,
lv_bytecount TYPE i, lv_bytecount TYPE i,
lt_file_tab TYPE STANDARD TABLE OF solisti1. lt_file_tab TYPE solix_tab.
&quot; Creates active sheet DATA: lv_workdir TYPE string,
CREATE OBJECT lo_excel. lv_file_separator TYPE c.
&quot;Load samle image CONSTANTS: lv_default_file_name TYPE string VALUE &apos;16_Drawings.xlsx&apos;.
DATA: lt_bin TYPE solix_tab,
PARAMETERS: p_path TYPE string.
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 ).
INITIALIZATION.
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.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
&quot;Load samle image
DATA: lt_bin TYPE solix_tab,
lv_len TYPE i, lv_len TYPE i,
lv_content TYPE xstring, lv_content TYPE xstring,
ls_key TYPE wwwdatatab. ls_key TYPE wwwdatatab.
CALL METHOD cl_gui_frontend_services=&gt;gui_upload CALL METHOD cl_gui_frontend_services=&gt;gui_upload
EXPORTING EXPORTING
filename = &apos;c:\Program Files\SAP\FrontEnd\SAPgui\wwi\graphics\W_bio.bmp&apos; filename = &apos;c:\Program Files\SAP\FrontEnd\SAPgui\wwi\graphics\W_bio.bmp&apos;
filetype = &apos;BIN&apos; filetype = &apos;BIN&apos;
@ -62,12 +86,12 @@ CALL METHOD cl_gui_frontend_services=&gt;gui_upload
not_supported_by_gui = 17 not_supported_by_gui = 17
error_no_gui = 18 error_no_gui = 18
OTHERS = 19. OTHERS = 19.
IF sy-subrc &lt;&gt; 0. IF sy-subrc &lt;&gt; 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF. ENDIF.
CALL FUNCTION &apos;SCMS_BINARY_TO_XSTRING&apos; CALL FUNCTION &apos;SCMS_BINARY_TO_XSTRING&apos;
EXPORTING EXPORTING
input_length = lv_len input_length = lv_len
IMPORTING IMPORTING
@ -78,56 +102,48 @@ CALL FUNCTION &apos;SCMS_BINARY_TO_XSTRING&apos;
failed = 1 failed = 1
OTHERS = 2. OTHERS = 2.
&quot; Get active sheet &quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ). lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;title = &apos;Sheet1&apos;. lo_worksheet-&gt;title = &apos;Sheet1&apos;.
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 2 ip_value = &apos;Image from web repository (SMW0)&apos; ). lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 2 ip_value = &apos;Image from web repository (SMW0)&apos; ).
&quot; create global drawing, set position and media from web repository &quot; create global drawing, set position and media from web repository
lo_drawing = lo_excel-&gt;add_new_drawing( ). lo_drawing = lo_excel-&gt;add_new_drawing( ).
lo_drawing-&gt;set_position( ip_from_row = 3 lo_drawing-&gt;set_position( ip_from_row = 3
ip_from_col = &apos;B&apos; ). ip_from_col = &apos;B&apos; ).
ls_key-relid = &apos;MI&apos;. ls_key-relid = &apos;MI&apos;.
ls_key-objid = &apos;SAPLOGO.GIF&apos;. ls_key-objid = &apos;SAPLOGO.GIF&apos;.
lo_drawing-&gt;set_media_www( ip_key = ls_key lo_drawing-&gt;set_media_www( ip_key = ls_key
ip_width = 166 ip_width = 166
ip_height = 75 ). ip_height = 75 ).
&quot; assign drawing to the worksheet &quot; assign drawing to the worksheet
lo_worksheet-&gt;add_drawing( lo_drawing ). lo_worksheet-&gt;add_drawing( lo_drawing ).
&quot; another drawing from a XSTRING read from a file &quot; another drawing from a XSTRING read from a file
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 8 ip_value = &apos;Image from a file (c:\Program Files\SAP\FrontEnd\SAPgui\wwi\graphics\W_bio.bmp)&apos; ). lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 8 ip_value = &apos;Image from a file (c:\Program Files\SAP\FrontEnd\SAPgui\wwi\graphics\W_bio.bmp)&apos; ).
lo_drawing = lo_excel-&gt;add_new_drawing( ). lo_drawing = lo_excel-&gt;add_new_drawing( ).
lo_drawing-&gt;set_position( ip_from_row = 9 lo_drawing-&gt;set_position( ip_from_row = 9
ip_from_col = &apos;B&apos; ). ip_from_col = &apos;B&apos; ).
lo_drawing-&gt;set_media( ip_media = lv_content lo_drawing-&gt;set_media( ip_media = lv_content
ip_media_type = &apos;bmp&apos; ip_media_type = &apos;bmp&apos;
ip_width = 83 ip_width = 83
ip_height = 160 ). ip_height = 160 ).
lo_worksheet-&gt;add_drawing( lo_drawing ). lo_worksheet-&gt;add_drawing( lo_drawing ).
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ). lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
&quot; Convert to binary * Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos; lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
EXPORTING lv_bytecount = XSTRLEN( lv_file ).
buffer = lv_file
IMPORTING
output_length = lv_bytecount
TABLES
binary_tab = lt_file_tab.
&quot; Save the file &quot; Save the file
CALL FUNCTION &apos;GUI_DOWNLOAD&apos; cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
EXPORTING filename = p_path
bin_filesize = lv_bytecount
filename = &apos;C:\Drawings.xlsx&apos;
filetype = &apos;BIN&apos; filetype = &apos;BIN&apos;
TABLES CHANGING data_tab = lt_file_tab ).</source>
data_tab = lt_file_tab.</source>
</PROG> </PROG>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-16"?> <?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL17" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100921" UNAM="FEMIA" UDAT="20100922" VERN="000016" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20100922" STIME="001419" IDATE="20100922" ITIME="001419" UCCHECK="X"> <PROG NAME="ZDEMO_EXCEL17" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100921" UNAM="FEMIA" UDAT="20100924" VERN="000018" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20100924" STIME="153902" IDATE="20100924" ITIME="153902" UCCHECK="X">
<textPool> <textPool>
<language SPRAS="E"> <language SPRAS="E">
<textElement ID="R" ENTRY="Test for excel" LENGTH="14 "/> <textElement ID="R" ENTRY="Test for excel" LENGTH="14 "/>
@ -19,46 +19,64 @@ 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, lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_protection TYPE REF TO zcl_excel_style, lo_style_protection TYPE REF TO zcl_excel_style,
lv_style_protection_guid TYPE zexcel_cell_style, lv_style_protection_guid TYPE zexcel_cell_style.
lv_file TYPE xstring,
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i, lv_bytecount TYPE i,
lt_file_tab TYPE STANDARD TABLE OF solisti1. lt_file_tab TYPE solix_tab.
CREATE OBJECT lo_excel. DATA: lv_workdir TYPE string,
lv_file_separator TYPE c.
&quot; Get active sheet CONSTANTS: lv_default_file_name TYPE string VALUE &apos;17_SheetProtection.xlsx&apos;.
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;zif_excel_sheet_protection~protected = zif_excel_sheet_protection=&gt;c_protected.
lo_worksheet-&gt;zif_excel_sheet_protection~password = &apos;DAA7&apos;. &quot;it is the encoded word &quot;secret&quot;
&quot;Center PARAMETERS: p_path TYPE string.
lo_style_protection = lo_excel-&gt;add_new_style( ).
lo_style_protection-&gt;protection-&gt;locked = zcl_excel_style_protection=&gt;c_protection_unlocked.
lv_style_protection_guid = lo_style_protection-&gt;get_guid( ).
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 ). AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;C&apos; ip_value = &apos;This cell is locked as all the others empty cell&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 6 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 = 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. cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = p_path
lv_file = lo_excel_writer-&gt;write_file( lo_excel ). CHANGING selected_folder = p_path ).
&quot;convert to table INITIALIZATION.
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos; cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
EXPORTING p_path = lv_workdir.
buffer = lv_file
IMPORTING START-OF-SELECTION.
output_length = lv_bytecount
TABLES IF p_path IS INITIAL.
binary_tab = lt_file_tab. p_path = lv_workdir.
&quot;Save the file ENDIF.
CALL FUNCTION &apos;GUI_DOWNLOAD&apos; cl_gui_frontend_services=&gt;get_file_separator( CHANGING file_separator = lv_file_separator ).
EXPORTING CONCATENATE p_path lv_file_separator lv_default_file_name INTO p_path.
bin_filesize = lv_bytecount
filename = &apos;C:\Protection.xlsx&apos; CREATE OBJECT lo_excel.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;zif_excel_sheet_protection~protected = zif_excel_sheet_protection=&gt;c_protected.
lo_worksheet-&gt;zif_excel_sheet_protection~password = &apos;DAA7&apos;. &quot;it is the encoded word &quot;secret&quot;
&quot;Center
lo_style_protection = lo_excel-&gt;add_new_style( ).
lo_style_protection-&gt;protection-&gt;locked = zcl_excel_style_protection=&gt;c_protection_unlocked.
lv_style_protection_guid = lo_style_protection-&gt;get_guid( ).
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 ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;C&apos; ip_value = &apos;This cell is locked as all the others empty cell&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 6 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 = 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 ).
* Convert to binary
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
filetype = &apos;BIN&apos; filetype = &apos;BIN&apos;
TABLES CHANGING data_tab = lt_file_tab ).</source>
data_tab = lt_file_tab.</source>
</PROG> </PROG>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-16"?> <?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL18" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100923" UNAM="FEMIA" UDAT="20100923" VERN="000016" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20100923" STIME="233508" IDATE="20100923" ITIME="233508" UCCHECK="X"> <PROG NAME="ZDEMO_EXCEL18" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100923" UNAM="FEMIA" UDAT="20100924" VERN="000019" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20100924" STIME="153902" IDATE="20100924" ITIME="153902" UCCHECK="X">
<textPool> <textPool>
<language SPRAS="E"> <language SPRAS="E">
<textElement ID="R" ENTRY="Test for excel" LENGTH="14 "/> <textElement ID="R" ENTRY="Test for excel" LENGTH="14 "/>
@ -19,40 +19,58 @@ 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, lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_protection TYPE REF TO zcl_excel_style, lo_style_protection TYPE REF TO zcl_excel_style,
lv_style_protection_guid TYPE zexcel_cell_style, lv_style_protection_guid TYPE zexcel_cell_style.
lv_file TYPE xstring,
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i, lv_bytecount TYPE i,
lt_file_tab TYPE STANDARD TABLE OF solisti1. lt_file_tab TYPE solix_tab.
CREATE OBJECT lo_excel. DATA: lv_workdir TYPE string,
lv_file_separator TYPE c.
&quot; Get active sheet CONSTANTS: lv_default_file_name TYPE string VALUE &apos;18_BookProtection.xlsx&apos;.
lo_excel-&gt;zif_excel_book_protection~protected = zif_excel_book_protection=&gt;c_protected.
lo_excel-&gt;zif_excel_book_protection~lockrevision = zif_excel_book_protection=&gt;c_locked. PARAMETERS: p_path TYPE string.
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. 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 ).
INITIALIZATION.
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.
CREATE OBJECT lo_excel.
&quot; Get active sheet
lo_excel-&gt;zif_excel_book_protection~protected = zif_excel_book_protection=&gt;c_protected.
lo_excel-&gt;zif_excel_book_protection~lockrevision = zif_excel_book_protection=&gt;c_locked.
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 = 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 ). 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. CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ). lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
&quot;convert to table * Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos; lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
EXPORTING lv_bytecount = XSTRLEN( lv_file ).
buffer = lv_file
IMPORTING &quot; Save the file
output_length = lv_bytecount cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
TABLES filename = p_path
binary_tab = lt_file_tab.
&quot;Save the file
CALL FUNCTION &apos;GUI_DOWNLOAD&apos;
EXPORTING
bin_filesize = lv_bytecount
filename = &apos;C:\Protection.xlsx&apos;
filetype = &apos;BIN&apos; filetype = &apos;BIN&apos;
TABLES CHANGING data_tab = lt_file_tab ).</source>
data_tab = lt_file_tab.</source>
</PROG> </PROG>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-16"?> <?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL2" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100711" UNAM="FEMIA" UDAT="20100905" VERN="000017" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20100905" STIME="163545" IDATE="20100905" ITIME="163545" UCCHECK="X"> <PROG NAME="ZDEMO_EXCEL2" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100711" UNAM="FEMIA" UDAT="20100924" VERN="000022" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20100924" STIME="153902" IDATE="20100924" ITIME="153902" UCCHECK="X">
<textPool> <textPool>
<language SPRAS="E"> <language SPRAS="E">
<textElement ID="R" ENTRY="Test Styles for ABAP2XLSX" LENGTH="25 "/> <textElement ID="R" ENTRY="Test Styles for ABAP2XLSX" LENGTH="25 "/>
@ -16,7 +16,7 @@
REPORT zdemo_excel2. REPORT zdemo_excel2.
DATA: lo_excel TYPE REF TO zcl_excel, 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, lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_bold TYPE REF TO zcl_excel_style, lo_style_bold TYPE REF TO zcl_excel_style,
lo_style_underline TYPE REF TO zcl_excel_style, lo_style_underline TYPE REF TO zcl_excel_style,
@ -35,83 +35,102 @@ DATA: lv_style_bold_guid TYPE zexcel_cell_style,
DATA: lv_file TYPE xstring, DATA: lv_file TYPE xstring,
lv_bytecount TYPE i, lv_bytecount TYPE i,
lt_file_tab TYPE STANDARD TABLE OF solisti1. lt_file_tab TYPE solix_tab.
&quot; Creates active sheet DATA: lv_file_name TYPE string,
CREATE OBJECT lo_excel. lv_file_path TYPE string,
lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
&quot; Create border object CONSTANTS: lv_default_file_name TYPE string VALUE &apos;02_Styles.xlsx&apos;.
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.
CREATE OBJECT lo_border_light.
lo_border_light-&gt;border_color = zcl_excel_style_color=&gt;c_gray.
lo_border_light-&gt;border_style = zcl_excel_style_border=&gt;c_border_thin.
&quot; Create a bold / italic style
lo_style_bold = lo_excel-&gt;add_new_style( ).
lo_style_bold-&gt;font-&gt;bold = abap_true.
lo_style_bold-&gt;font-&gt;italic = abap_true.
lo_style_bold-&gt;font-&gt;color = zcl_excel_style_color=&gt;c_red.
lv_style_bold_guid = lo_style_bold-&gt;get_guid( ).
&quot; Create an underline double style
lo_style_underline = lo_excel-&gt;add_new_style( ).
lo_style_underline-&gt;font-&gt;underline = abap_true.
lo_style_underline-&gt;font-&gt;underline_mode = zcl_excel_style_font=&gt;c_underline_double.
lv_style_underline_guid = lo_style_underline-&gt;get_guid( ).
&quot; Create filled style yellow
lo_style_filled = lo_excel-&gt;add_new_style( ).
lo_style_filled-&gt;fill-&gt;filltype = zcl_excel_style_fill=&gt;c_fill_solid.
lo_style_filled-&gt;fill-&gt;fgcolor = zcl_excel_style_color=&gt;c_yellow.
lv_style_filled_guid = lo_style_filled-&gt;get_guid( ).
&quot; Create border with button effects
lo_style_button = lo_excel-&gt;add_new_style( ).
lo_style_button-&gt;borders-&gt;right = lo_border_dark.
lo_style_button-&gt;borders-&gt;down = lo_border_dark.
lo_style_button-&gt;borders-&gt;left = lo_border_light.
lo_style_button-&gt;borders-&gt;top = lo_border_light.
lv_style_button_guid = lo_style_button-&gt;get_guid( ).
&quot;Create style with border
lo_style_border = lo_excel-&gt;add_new_style( ).
lo_style_border-&gt;borders-&gt;allborders = lo_border_dark.
lv_style_border_guid = lo_style_border-&gt;get_guid( ).
&quot; Create filled style green
lo_style_filled = lo_excel-&gt;add_new_style( ).
lo_style_filled-&gt;fill-&gt;filltype = zcl_excel_style_fill=&gt;c_fill_solid.
lo_style_filled-&gt;fill-&gt;fgcolor = zcl_excel_style_color=&gt;c_green.
lv_style_filled_green_guid = lo_style_filled-&gt;get_guid( ).
&quot; Get active sheet PARAMETERS: p_path TYPE string.
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;title = &apos;Styles&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;C&apos; ip_row = 3 ip_value = &apos;Bold text&apos; ip_style = lv_style_bold_guid ).
lo_worksheet-&gt;set_cell( ip_column = &apos;D&apos; ip_row = 4 ip_value = &apos;Underlined text&apos; ip_style = lv_style_underline_guid ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 5 ip_value = &apos;Filled text&apos; ip_style = lv_style_filled_guid ).
lo_worksheet-&gt;set_cell( ip_column = &apos;C&apos; ip_row = 6 ip_value = &apos;Borders&apos; ip_style = lv_style_border_guid ).
lo_worksheet-&gt;set_cell( ip_column = &apos;D&apos; ip_row = 7 ip_value = &apos;I&apos;&apos;m not a button :)&apos; ip_style = lv_style_button_guid ).
&quot; Fill the cell and apply one style
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 6 ip_value = &apos;Filled text&apos; ip_style = lv_style_filled_guid ).
&quot; Change the style
lo_worksheet-&gt;set_cell_style( ip_column = &apos;B&apos; ip_row = 6 ip_style = lv_style_filled_green_guid ).
create object lo_excel_writer type zcl_excel_writer_2007. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
&quot; Convert to binary cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = p_path
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos; CHANGING selected_folder = p_path ).
EXPORTING
buffer = lv_file
IMPORTING
output_length = lv_bytecount
TABLES
binary_tab = lt_file_tab.
&quot; Save the file INITIALIZATION.
CALL FUNCTION &apos;GUI_DOWNLOAD&apos; cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
EXPORTING p_path = lv_workdir.
bin_filesize = lv_bytecount
filename = &apos;C:\Styles.xlsx&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 p_path.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
&quot; Create border object
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.
CREATE OBJECT lo_border_light.
lo_border_light-&gt;border_color = zcl_excel_style_color=&gt;c_gray.
lo_border_light-&gt;border_style = zcl_excel_style_border=&gt;c_border_thin.
&quot; Create a bold / italic style
lo_style_bold = lo_excel-&gt;add_new_style( ).
lo_style_bold-&gt;font-&gt;bold = abap_true.
lo_style_bold-&gt;font-&gt;italic = abap_true.
lo_style_bold-&gt;font-&gt;color = zcl_excel_style_color=&gt;c_red.
lv_style_bold_guid = lo_style_bold-&gt;get_guid( ).
&quot; Create an underline double style
lo_style_underline = lo_excel-&gt;add_new_style( ).
lo_style_underline-&gt;font-&gt;underline = abap_true.
lo_style_underline-&gt;font-&gt;underline_mode = zcl_excel_style_font=&gt;c_underline_double.
lv_style_underline_guid = lo_style_underline-&gt;get_guid( ).
&quot; Create filled style yellow
lo_style_filled = lo_excel-&gt;add_new_style( ).
lo_style_filled-&gt;fill-&gt;filltype = zcl_excel_style_fill=&gt;c_fill_solid.
lo_style_filled-&gt;fill-&gt;fgcolor = zcl_excel_style_color=&gt;c_yellow.
lv_style_filled_guid = lo_style_filled-&gt;get_guid( ).
&quot; Create border with button effects
lo_style_button = lo_excel-&gt;add_new_style( ).
lo_style_button-&gt;borders-&gt;right = lo_border_dark.
lo_style_button-&gt;borders-&gt;down = lo_border_dark.
lo_style_button-&gt;borders-&gt;left = lo_border_light.
lo_style_button-&gt;borders-&gt;top = lo_border_light.
lv_style_button_guid = lo_style_button-&gt;get_guid( ).
&quot;Create style with border
lo_style_border = lo_excel-&gt;add_new_style( ).
lo_style_border-&gt;borders-&gt;allborders = lo_border_dark.
lv_style_border_guid = lo_style_border-&gt;get_guid( ).
&quot; Create filled style green
lo_style_filled = lo_excel-&gt;add_new_style( ).
lo_style_filled-&gt;fill-&gt;filltype = zcl_excel_style_fill=&gt;c_fill_solid.
lo_style_filled-&gt;fill-&gt;fgcolor = zcl_excel_style_color=&gt;c_green.
lv_style_filled_green_guid = lo_style_filled-&gt;get_guid( ).
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;title = &apos;Styles&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;C&apos; ip_row = 3 ip_value = &apos;Bold text&apos; ip_style = lv_style_bold_guid ).
lo_worksheet-&gt;set_cell( ip_column = &apos;D&apos; ip_row = 4 ip_value = &apos;Underlined text&apos; ip_style = lv_style_underline_guid ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 5 ip_value = &apos;Filled text&apos; ip_style = lv_style_filled_guid ).
lo_worksheet-&gt;set_cell( ip_column = &apos;C&apos; ip_row = 6 ip_value = &apos;Borders&apos; ip_style = lv_style_border_guid ).
lo_worksheet-&gt;set_cell( ip_column = &apos;D&apos; ip_row = 7 ip_value = &apos;I&apos;&apos;m not a button :)&apos; ip_style = lv_style_button_guid ).
&quot; Fill the cell and apply one style
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 6 ip_value = &apos;Filled text&apos; ip_style = lv_style_filled_guid ).
&quot; Change the style
lo_worksheet-&gt;set_cell_style( ip_column = &apos;B&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 ).
* Convert to binary
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
filetype = &apos;BIN&apos; filetype = &apos;BIN&apos;
TABLES CHANGING data_tab = lt_file_tab ).</source>
data_tab = lt_file_tab.</source>
</PROG> </PROG>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-16"?> <?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL3" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100711" UNAM="FEMIA" UDAT="20100905" VERN="000019" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20100905" STIME="163630" IDATE="20100905" ITIME="163630" UCCHECK="X"> <PROG NAME="ZDEMO_EXCEL3" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100711" UNAM="FEMIA" UDAT="20100924" VERN="000024" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20100924" STIME="153902" IDATE="20100924" ITIME="153902" UCCHECK="X">
<textPool/> <textPool/>
<source>*&amp;---------------------------------------------------------------------* <source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZIFE_TEST_EXCEL *&amp; Report ZIFE_TEST_EXCEL
@ -12,7 +12,7 @@
REPORT zdemo_excel3. REPORT zdemo_excel3.
DATA: lo_excel TYPE REF TO zcl_excel, 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, lo_worksheet TYPE REF TO zcl_excel_worksheet,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime. column_dimension TYPE REF TO zcl_excel_worksheet_columndime.
@ -20,47 +20,66 @@ DATA: ls_table_settings TYPE zexcel_s_table_settings.
DATA: lv_file TYPE xstring, DATA: lv_file TYPE xstring,
lv_bytecount TYPE i, lv_bytecount TYPE i,
lt_file_tab TYPE STANDARD TABLE OF solisti1. lt_file_tab TYPE solix_tab.
&quot; Creates active sheet DATA: lv_file_name TYPE string,
CREATE OBJECT lo_excel. lv_file_path TYPE string,
lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
&quot; Get active sheet CONSTANTS: lv_default_file_name TYPE string VALUE &apos;03_iTab.xlsx&apos;.
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;title = &apos;Internal table&apos;.
DATA lt_test TYPE TABLE OF sflight. PARAMETERS: p_path TYPE string.
SELECT * FROM sflight INTO TABLE lt_test.
ls_table_settings-table_style = zcl_excel_table=&gt;builtinstyle_medium2. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
ls_table_settings-show_row_stripes = abap_true.
lo_worksheet-&gt;bind_table( ip_table = lt_test cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = p_path
CHANGING selected_folder = p_path ).
INITIALIZATION.
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.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;title = &apos;Internal table&apos;.
DATA lt_test TYPE TABLE OF sflight.
SELECT * FROM sflight INTO TABLE lt_test.
ls_table_settings-table_style = zcl_excel_table=&gt;builtinstyle_medium2.
ls_table_settings-show_row_stripes = abap_true.
lo_worksheet-&gt;bind_table( ip_table = lt_test
is_table_settings = ls_table_settings ). is_table_settings = ls_table_settings ).
lo_worksheet-&gt;freeze_panes( ip_num_rows = 3 ). &quot;freeze column headers when scrolling lo_worksheet-&gt;freeze_panes( ip_num_rows = 3 ). &quot;freeze column headers when scrolling
column_dimension = lo_worksheet-&gt;get_column_dimension( &apos;E&apos; ). &quot;make date field a bit wider column_dimension = lo_worksheet-&gt;get_column_dimension( &apos;E&apos; ). &quot;make date field a bit wider
column_dimension-&gt;set_width( 11 ). column_dimension-&gt;set_width( 11 ).
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ). lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
&quot; Convert to binary * Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos; lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
EXPORTING lv_bytecount = XSTRLEN( lv_file ).
buffer = lv_file
IMPORTING
output_length = lv_bytecount
TABLES
binary_tab = lt_file_tab.
&quot; Save the file &quot; Save the file
CALL FUNCTION &apos;GUI_DOWNLOAD&apos; cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
EXPORTING filename = p_path
bin_filesize = lv_bytecount
filename = &apos;C:\iTab.xlsx&apos;
filetype = &apos;BIN&apos; filetype = &apos;BIN&apos;
TABLES CHANGING data_tab = lt_file_tab ).</source>
data_tab = lt_file_tab.</source>
</PROG> </PROG>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-16"?> <?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL4" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100711" UNAM="VONDRUSKA" UDAT="20100921" VERN="000034" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20100921" STIME="073036" IDATE="20100921" ITIME="073036" UCCHECK="X"> <PROG NAME="ZDEMO_EXCEL4" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100711" UNAM="FEMIA" UDAT="20100924" VERN="000040" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20100924" STIME="153902" IDATE="20100924" ITIME="153902" UCCHECK="X">
<textPool> <textPool>
<language SPRAS="E"> <language SPRAS="E">
<textElement ID="R" ENTRY="Test for excel" LENGTH="14 "/> <textElement ID="R" ENTRY="Test for excel" LENGTH="14 "/>
@ -21,50 +21,69 @@ DATA: lo_excel TYPE REF TO zcl_excel,
DATA: lv_file TYPE xstring, DATA: lv_file TYPE xstring,
lv_bytecount TYPE i, lv_bytecount TYPE i,
lt_file_tab TYPE STANDARD TABLE OF solisti1. lt_file_tab TYPE solix_tab.
&quot; Creates active sheet DATA: lv_file_name TYPE string,
CREATE OBJECT lo_excel. lv_file_path TYPE string,
lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
&quot; Get active sheet CONSTANTS: lv_default_file_name TYPE string VALUE &apos;04_Sheets.xlsx&apos;.
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;title = &apos;Sheet1&apos;.
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 2 ip_value = &apos;This is the first sheet&apos; ).
lo_worksheet-&gt;sheet_setup-&gt;set_page_margins( ip_header = &apos;1&apos; ip_footer = &apos;1&apos; ip_unit = &apos;cm&apos; ). PARAMETERS: p_path TYPE string.
lo_worksheet-&gt;sheet_setup-&gt;black_and_white = &apos;X&apos;.
lo_worksheet-&gt;sheet_setup-&gt;fit_to_page = &apos;X&apos;. &quot; you should turn this on to activate fit_to_height and fit_to_width AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lo_worksheet-&gt;sheet_setup-&gt;fit_to_height = 0. &quot; used only if ip_fit_to_page = &apos;X&apos;
lo_worksheet-&gt;sheet_setup-&gt;fit_to_width = 2. &quot; used only if ip_fit_to_page = &apos;X&apos; cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = p_path
lo_worksheet-&gt;sheet_setup-&gt;orientation = zcl_excel_sheet_setup=&gt;c_orientation_landscape. CHANGING selected_folder = p_path ).
lo_worksheet-&gt;sheet_setup-&gt;page_order = zcl_excel_sheet_setup=&gt;c_ord_downthenover.
lo_worksheet-&gt;sheet_setup-&gt;paper_size = zcl_excel_sheet_setup=&gt;c_papersize_a4. INITIALIZATION.
lo_worksheet-&gt;sheet_setup-&gt;scale = 80. &quot; used only if ip_fit_to_page = SPACE 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.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;title = &apos;Sheet1&apos;.
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 2 ip_value = &apos;This is the first sheet&apos; ).
lo_worksheet-&gt;sheet_setup-&gt;set_page_margins( ip_header = &apos;1&apos; ip_footer = &apos;1&apos; ip_unit = &apos;cm&apos; ).
lo_worksheet-&gt;sheet_setup-&gt;black_and_white = &apos;X&apos;.
lo_worksheet-&gt;sheet_setup-&gt;fit_to_page = &apos;X&apos;. &quot; you should turn this on to activate fit_to_height and fit_to_width
lo_worksheet-&gt;sheet_setup-&gt;fit_to_height = 0. &quot; used only if ip_fit_to_page = &apos;X&apos;
lo_worksheet-&gt;sheet_setup-&gt;fit_to_width = 2. &quot; used only if ip_fit_to_page = &apos;X&apos;
lo_worksheet-&gt;sheet_setup-&gt;orientation = zcl_excel_sheet_setup=&gt;c_orientation_landscape.
lo_worksheet-&gt;sheet_setup-&gt;page_order = zcl_excel_sheet_setup=&gt;c_ord_downthenover.
lo_worksheet-&gt;sheet_setup-&gt;paper_size = zcl_excel_sheet_setup=&gt;c_papersize_a4.
lo_worksheet-&gt;sheet_setup-&gt;scale = 80. &quot; used only if ip_fit_to_page = SPACE
lo_worksheet = lo_excel-&gt;add_new_worksheet( ). lo_worksheet = lo_excel-&gt;add_new_worksheet( ).
lo_worksheet-&gt;title = &apos;Sheet2&apos;. lo_worksheet-&gt;title = &apos;Sheet2&apos;.
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 2 ip_value = &apos;This is the second sheet&apos; ). lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 2 ip_value = &apos;This is the second sheet&apos; ).
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ). lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
&quot; Convert to binary * Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos; lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
EXPORTING lv_bytecount = XSTRLEN( lv_file ).
buffer = lv_file
IMPORTING
output_length = lv_bytecount
TABLES
binary_tab = lt_file_tab.
&quot; Save the file &quot; Save the file
CALL FUNCTION &apos;GUI_DOWNLOAD&apos; cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
EXPORTING filename = p_path
bin_filesize = lv_bytecount
filename = &apos;C:\Sheets.xlsx&apos;
filetype = &apos;BIN&apos; filetype = &apos;BIN&apos;
TABLES CHANGING data_tab = lt_file_tab ).</source>
data_tab = lt_file_tab.</source>
</PROG> </PROG>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-16"?> <?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL5" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100711" UNAM="FEMIA" UDAT="20100905" VERN="000015" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20100905" STIME="163754" IDATE="20100905" ITIME="163754" UCCHECK="X"> <PROG NAME="ZDEMO_EXCEL5" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100711" UNAM="FEMIA" UDAT="20100924" VERN="000020" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20100924" STIME="153902" IDATE="20100924" ITIME="153902" UCCHECK="X">
<textPool> <textPool>
<language SPRAS="E"> <language SPRAS="E">
<textElement ID="R" ENTRY="Test for excel" LENGTH="14 "/> <textElement ID="R" ENTRY="Test for excel" LENGTH="14 "/>
@ -16,51 +16,72 @@
REPORT zdemo_excel5. REPORT zdemo_excel5.
DATA: lo_excel TYPE REF TO zcl_excel, 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, lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_conditional TYPE REF TO zcl_excel_style_conditional, lo_style_conditional TYPE REF TO zcl_excel_style_conditional.
lv_file TYPE xstring,
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i, lv_bytecount TYPE i,
lt_file_tab TYPE STANDARD TABLE OF solisti1. lt_file_tab TYPE solix_tab.
CREATE OBJECT lo_excel. DATA: lv_file_name TYPE string,
lv_file_path TYPE string,
lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
&quot; Get active sheet CONSTANTS: lv_default_file_name TYPE string VALUE &apos;05_Conditional.xlsx&apos;.
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ). PARAMETERS: p_path TYPE string.
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset.
lo_style_conditional-&gt;iconset = zcl_excel_style_conditional=&gt;c_iconset_3trafficlights2. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lo_style_conditional-&gt;priority = 1.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;C&apos; cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = p_path
CHANGING selected_folder = p_path ).
INITIALIZATION.
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.
CREATE OBJECT lo_excel.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset.
lo_style_conditional-&gt;iconset = zcl_excel_style_conditional=&gt;c_iconset_3trafficlights2.
lo_style_conditional-&gt;priority = 1.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;C&apos;
ip_start_row = 4 ip_start_row = 4
ip_stop_column = &apos;C&apos; ip_stop_column = &apos;C&apos;
ip_stop_row = 8 ). ip_stop_row = 8 ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;C&apos; ip_value = 100 ). lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;C&apos; ip_value = 100 ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;C&apos; ip_value = 1000 ). lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;C&apos; ip_value = 1000 ).
lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;C&apos; ip_value = 150 ). lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;C&apos; ip_value = 150 ).
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;C&apos; ip_value = 10 ). lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;C&apos; ip_value = 10 ).
lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;C&apos; ip_value = 500 ). lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;C&apos; ip_value = 500 ).
create object lo_excel_writer type zcl_excel_writer_2007. CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ). lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
&quot;convert to table * Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos; lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
EXPORTING lv_bytecount = XSTRLEN( lv_file ).
buffer = lv_file
IMPORTING &quot; Save the file
output_length = lv_bytecount cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
TABLES filename = p_path
binary_tab = lt_file_tab.
&quot;Save the file
CALL FUNCTION &apos;GUI_DOWNLOAD&apos;
EXPORTING
bin_filesize = lv_bytecount
filename = &apos;C:\CondFormatting.xlsx&apos;
filetype = &apos;BIN&apos; filetype = &apos;BIN&apos;
TABLES CHANGING data_tab = lt_file_tab ).</source>
data_tab = lt_file_tab.</source>
</PROG> </PROG>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-16"?> <?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL6" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100711" UNAM="FEMIA" UDAT="20100905" VERN="000021" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20100905" STIME="163817" IDATE="20100905" ITIME="163817" UCCHECK="X"> <PROG NAME="ZDEMO_EXCEL6" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100711" UNAM="FEMIA" UDAT="20100924" VERN="000026" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20100924" STIME="153902" IDATE="20100924" ITIME="153902" UCCHECK="X">
<textPool> <textPool>
<language SPRAS="E"> <language SPRAS="E">
<textElement ID="R" ENTRY="Test for excel" LENGTH="14 "/> <textElement ID="R" ENTRY="Test for excel" LENGTH="14 "/>
@ -16,41 +16,62 @@
REPORT zdemo_excel6. REPORT zdemo_excel6.
DATA: lo_excel TYPE REF TO zcl_excel, 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, lo_worksheet TYPE REF TO zcl_excel_worksheet.
lv_file TYPE xstring,
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i, lv_bytecount TYPE i,
lt_file_tab TYPE STANDARD TABLE OF solisti1. lt_file_tab TYPE solix_tab.
CREATE OBJECT lo_excel. DATA: lv_file_name TYPE string,
lv_file_path TYPE string,
lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
&quot; Get active sheet CONSTANTS: lv_default_file_name TYPE string VALUE &apos;06_Formulas.xlsx&apos;.
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;C&apos; ip_value = 100 ). PARAMETERS: p_path TYPE string.
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;C&apos; ip_value = 1000 ).
lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;C&apos; ip_value = 150 ).
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;C&apos; ip_value = -10 ).
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. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
&quot;convert to table cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = p_path
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos; CHANGING selected_folder = p_path ).
EXPORTING
buffer = lv_file INITIALIZATION.
IMPORTING cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
output_length = lv_bytecount p_path = lv_workdir.
TABLES
binary_tab = lt_file_tab. START-OF-SELECTION.
&quot;Save the file
CALL FUNCTION &apos;GUI_DOWNLOAD&apos; IF p_path IS INITIAL.
EXPORTING p_path = lv_workdir.
bin_filesize = lv_bytecount ENDIF.
filename = &apos;C:\Formula.xlsx&apos; 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.
CREATE OBJECT lo_excel.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;C&apos; ip_value = 100 ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;C&apos; ip_value = 1000 ).
lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;C&apos; ip_value = 150 ).
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;C&apos; ip_value = -10 ).
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 ).
* Convert to binary
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
filetype = &apos;BIN&apos; filetype = &apos;BIN&apos;
TABLES CHANGING data_tab = lt_file_tab ).</source>
data_tab = lt_file_tab.</source>
</PROG> </PROG>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-16"?> <?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL7" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100711" UNAM="FEMIA" UDAT="20100905" VERN="000017" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20100905" STIME="163844" IDATE="20100905" ITIME="163844" UCCHECK="X"> <PROG NAME="ZDEMO_EXCEL7" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100711" UNAM="FEMIA" UDAT="20100924" VERN="000022" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20100924" STIME="153902" IDATE="20100924" ITIME="153902" UCCHECK="X">
<textPool> <textPool>
<language SPRAS="E"> <language SPRAS="E">
<textElement ID="R" ENTRY="Test for excel" LENGTH="14 "/> <textElement ID="R" ENTRY="Test for excel" LENGTH="14 "/>
@ -16,306 +16,327 @@
REPORT zdemo_excel7. REPORT zdemo_excel7.
DATA: lo_excel TYPE REF TO zcl_excel, 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, lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_conditional TYPE REF TO zcl_excel_style_conditional, lo_style_conditional TYPE REF TO zcl_excel_style_conditional.
lv_file TYPE xstring,
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i, lv_bytecount TYPE i,
lt_file_tab TYPE STANDARD TABLE OF solisti1. lt_file_tab TYPE solix_tab.
CREATE OBJECT lo_excel. DATA: lv_file_name TYPE string,
lv_file_path TYPE string,
lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
&quot; Get active sheet CONSTANTS: lv_default_file_name TYPE string VALUE &apos;07_ConditionalAll.xlsx&apos;.
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ). PARAMETERS: p_path TYPE string.
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset.
lo_style_conditional-&gt;iconset = zcl_excel_style_conditional=&gt;c_iconset_3arrows. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lo_style_conditional-&gt;priority = 1.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;B&apos; cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = p_path
CHANGING selected_folder = p_path ).
INITIALIZATION.
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.
CREATE OBJECT lo_excel.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset.
lo_style_conditional-&gt;iconset = zcl_excel_style_conditional=&gt;c_iconset_3arrows.
lo_style_conditional-&gt;priority = 1.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;B&apos;
ip_start_row = 5 ip_start_row = 5
ip_stop_column = &apos;B&apos; ip_stop_column = &apos;B&apos;
ip_stop_row = 9 ). ip_stop_row = 9 ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;B&apos; ip_value = &apos;C_ICONSET_3ARROWS&apos; ). lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;B&apos; ip_value = &apos;C_ICONSET_3ARROWS&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;B&apos; ip_value = 10 ). lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;B&apos; ip_value = 10 ).
lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;B&apos; ip_value = 20 ). lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;B&apos; ip_value = 20 ).
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;B&apos; ip_value = 30 ). lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;B&apos; ip_value = 30 ).
lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;B&apos; ip_value = 40 ). lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;B&apos; ip_value = 40 ).
lo_worksheet-&gt;set_cell( ip_row = 9 ip_column = &apos;B&apos; ip_value = 50 ). lo_worksheet-&gt;set_cell( ip_row = 9 ip_column = &apos;B&apos; ip_value = 50 ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ). lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset. lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset.
lo_style_conditional-&gt;iconset = zcl_excel_style_conditional=&gt;c_iconset_3arrowsgray. lo_style_conditional-&gt;iconset = zcl_excel_style_conditional=&gt;c_iconset_3arrowsgray.
lo_style_conditional-&gt;priority = 1. lo_style_conditional-&gt;priority = 1.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;C&apos; lo_style_conditional-&gt;set_range( ip_start_column = &apos;C&apos;
ip_start_row = 5 ip_start_row = 5
ip_stop_column = &apos;C&apos; ip_stop_column = &apos;C&apos;
ip_stop_row = 9 ). ip_stop_row = 9 ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;C&apos; ip_value = &apos;C_ICONSET_3ARROWSGRAY&apos; ). lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;C&apos; ip_value = &apos;C_ICONSET_3ARROWSGRAY&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;C&apos; ip_value = 10 ). lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;C&apos; ip_value = 10 ).
lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;C&apos; ip_value = 20 ). lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;C&apos; ip_value = 20 ).
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;C&apos; ip_value = 30 ). lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;C&apos; ip_value = 30 ).
lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;C&apos; ip_value = 40 ). lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;C&apos; ip_value = 40 ).
lo_worksheet-&gt;set_cell( ip_row = 9 ip_column = &apos;C&apos; ip_value = 50 ). lo_worksheet-&gt;set_cell( ip_row = 9 ip_column = &apos;C&apos; ip_value = 50 ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ). lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset. lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset.
lo_style_conditional-&gt;iconset = zcl_excel_style_conditional=&gt;c_iconset_3flags. lo_style_conditional-&gt;iconset = zcl_excel_style_conditional=&gt;c_iconset_3flags.
lo_style_conditional-&gt;priority = 1. lo_style_conditional-&gt;priority = 1.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;D&apos; lo_style_conditional-&gt;set_range( ip_start_column = &apos;D&apos;
ip_start_row = 5 ip_start_row = 5
ip_stop_column = &apos;D&apos; ip_stop_column = &apos;D&apos;
ip_stop_row = 9 ). ip_stop_row = 9 ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;D&apos; ip_value = &apos;C_ICONSET_3FLAGS&apos; ). lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;D&apos; ip_value = &apos;C_ICONSET_3FLAGS&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;D&apos; ip_value = 10 ). lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;D&apos; ip_value = 10 ).
lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;D&apos; ip_value = 20 ). lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;D&apos; ip_value = 20 ).
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;D&apos; ip_value = 30 ). lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;D&apos; ip_value = 30 ).
lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;D&apos; ip_value = 40 ). lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;D&apos; ip_value = 40 ).
lo_worksheet-&gt;set_cell( ip_row = 9 ip_column = &apos;D&apos; ip_value = 50 ). lo_worksheet-&gt;set_cell( ip_row = 9 ip_column = &apos;D&apos; ip_value = 50 ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ). lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset. lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset.
lo_style_conditional-&gt;iconset = zcl_excel_style_conditional=&gt;c_iconset_3trafficlights. lo_style_conditional-&gt;iconset = zcl_excel_style_conditional=&gt;c_iconset_3trafficlights.
lo_style_conditional-&gt;priority = 1. lo_style_conditional-&gt;priority = 1.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;E&apos; lo_style_conditional-&gt;set_range( ip_start_column = &apos;E&apos;
ip_start_row = 5 ip_start_row = 5
ip_stop_column = &apos;E&apos; ip_stop_column = &apos;E&apos;
ip_stop_row = 9 ). ip_stop_row = 9 ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;E&apos; ip_value = &apos;C_ICONSET_3TRAFFICLIGHTS&apos; ). lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;E&apos; ip_value = &apos;C_ICONSET_3TRAFFICLIGHTS&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;E&apos; ip_value = 10 ). lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;E&apos; ip_value = 10 ).
lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;E&apos; ip_value = 20 ). lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;E&apos; ip_value = 20 ).
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;E&apos; ip_value = 30 ). lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;E&apos; ip_value = 30 ).
lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;E&apos; ip_value = 40 ). lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;E&apos; ip_value = 40 ).
lo_worksheet-&gt;set_cell( ip_row = 9 ip_column = &apos;E&apos; ip_value = 50 ). lo_worksheet-&gt;set_cell( ip_row = 9 ip_column = &apos;E&apos; ip_value = 50 ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ). lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset. lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset.
lo_style_conditional-&gt;iconset = zcl_excel_style_conditional=&gt;c_iconset_3trafficlights2. lo_style_conditional-&gt;iconset = zcl_excel_style_conditional=&gt;c_iconset_3trafficlights2.
lo_style_conditional-&gt;priority = 1. lo_style_conditional-&gt;priority = 1.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;F&apos; lo_style_conditional-&gt;set_range( ip_start_column = &apos;F&apos;
ip_start_row = 5 ip_start_row = 5
ip_stop_column = &apos;F&apos; ip_stop_column = &apos;F&apos;
ip_stop_row = 9 ). ip_stop_row = 9 ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;F&apos; ip_value = &apos;C_ICONSET_3TRAFFICLIGHTS2&apos; ). lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;F&apos; ip_value = &apos;C_ICONSET_3TRAFFICLIGHTS2&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;F&apos; ip_value = 10 ). lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;F&apos; ip_value = 10 ).
lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;F&apos; ip_value = 20 ). lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;F&apos; ip_value = 20 ).
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;F&apos; ip_value = 30 ). lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;F&apos; ip_value = 30 ).
lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;F&apos; ip_value = 40 ). lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;F&apos; ip_value = 40 ).
lo_worksheet-&gt;set_cell( ip_row = 9 ip_column = &apos;F&apos; ip_value = 50 ). lo_worksheet-&gt;set_cell( ip_row = 9 ip_column = &apos;F&apos; ip_value = 50 ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ). lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset. lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset.
lo_style_conditional-&gt;iconset = zcl_excel_style_conditional=&gt;c_iconset_3signs. lo_style_conditional-&gt;iconset = zcl_excel_style_conditional=&gt;c_iconset_3signs.
lo_style_conditional-&gt;priority = 1. lo_style_conditional-&gt;priority = 1.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;G&apos; lo_style_conditional-&gt;set_range( ip_start_column = &apos;G&apos;
ip_start_row = 5 ip_start_row = 5
ip_stop_column = &apos;G&apos; ip_stop_column = &apos;G&apos;
ip_stop_row = 9 ). ip_stop_row = 9 ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;G&apos; ip_value = &apos;C_ICONSET_3SIGNS&apos; ). lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;G&apos; ip_value = &apos;C_ICONSET_3SIGNS&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;G&apos; ip_value = 10 ). lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;G&apos; ip_value = 10 ).
lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;G&apos; ip_value = 20 ). lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;G&apos; ip_value = 20 ).
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;G&apos; ip_value = 30 ). lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;G&apos; ip_value = 30 ).
lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;G&apos; ip_value = 40 ). lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;G&apos; ip_value = 40 ).
lo_worksheet-&gt;set_cell( ip_row = 9 ip_column = &apos;G&apos; ip_value = 50 ). lo_worksheet-&gt;set_cell( ip_row = 9 ip_column = &apos;G&apos; ip_value = 50 ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ). lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset. lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset.
lo_style_conditional-&gt;iconset = zcl_excel_style_conditional=&gt;c_iconset_3symbols. lo_style_conditional-&gt;iconset = zcl_excel_style_conditional=&gt;c_iconset_3symbols.
lo_style_conditional-&gt;priority = 1. lo_style_conditional-&gt;priority = 1.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;H&apos; lo_style_conditional-&gt;set_range( ip_start_column = &apos;H&apos;
ip_start_row = 5 ip_start_row = 5
ip_stop_column = &apos;H&apos; ip_stop_column = &apos;H&apos;
ip_stop_row = 9 ). ip_stop_row = 9 ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;H&apos; ip_value = &apos;C_ICONSET_3SYMBOLS&apos; ). lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;H&apos; ip_value = &apos;C_ICONSET_3SYMBOLS&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;H&apos; ip_value = 10 ). lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;H&apos; ip_value = 10 ).
lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;H&apos; ip_value = 20 ). lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;H&apos; ip_value = 20 ).
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;H&apos; ip_value = 30 ). lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;H&apos; ip_value = 30 ).
lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;H&apos; ip_value = 40 ). lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;H&apos; ip_value = 40 ).
lo_worksheet-&gt;set_cell( ip_row = 9 ip_column = &apos;H&apos; ip_value = 50 ). lo_worksheet-&gt;set_cell( ip_row = 9 ip_column = &apos;H&apos; ip_value = 50 ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ). lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset. lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset.
lo_style_conditional-&gt;iconset = zcl_excel_style_conditional=&gt;c_iconset_3symbols2. lo_style_conditional-&gt;iconset = zcl_excel_style_conditional=&gt;c_iconset_3symbols2.
lo_style_conditional-&gt;priority = 1. lo_style_conditional-&gt;priority = 1.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;I&apos; lo_style_conditional-&gt;set_range( ip_start_column = &apos;I&apos;
ip_start_row = 5 ip_start_row = 5
ip_stop_column = &apos;I&apos; ip_stop_column = &apos;I&apos;
ip_stop_row = 9 ). ip_stop_row = 9 ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;I&apos; ip_value = &apos;C_ICONSET_3SYMBOLS2&apos; ). lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;I&apos; ip_value = &apos;C_ICONSET_3SYMBOLS2&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;I&apos; ip_value = 10 ). lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;I&apos; ip_value = 10 ).
lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;I&apos; ip_value = 20 ). lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;I&apos; ip_value = 20 ).
lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;I&apos; ip_value = 30 ). lo_worksheet-&gt;set_cell( ip_row = 7 ip_column = &apos;I&apos; ip_value = 30 ).
lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;I&apos; ip_value = 40 ). lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;I&apos; ip_value = 40 ).
lo_worksheet-&gt;set_cell( ip_row = 9 ip_column = &apos;I&apos; ip_value = 50 ). lo_worksheet-&gt;set_cell( ip_row = 9 ip_column = &apos;I&apos; ip_value = 50 ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ). lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset. lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset.
lo_style_conditional-&gt;iconset = zcl_excel_style_conditional=&gt;c_iconset_4arrows. lo_style_conditional-&gt;iconset = zcl_excel_style_conditional=&gt;c_iconset_4arrows.
lo_style_conditional-&gt;priority = 1. lo_style_conditional-&gt;priority = 1.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;B&apos; lo_style_conditional-&gt;set_range( ip_start_column = &apos;B&apos;
ip_start_row = 12 ip_start_row = 12
ip_stop_column = &apos;B&apos; ip_stop_column = &apos;B&apos;
ip_stop_row = 16 ). ip_stop_row = 16 ).
lo_worksheet-&gt;set_cell( ip_row = 11 ip_column = &apos;B&apos; ip_value = &apos;C_ICONSET_4ARROWS&apos; ). lo_worksheet-&gt;set_cell( ip_row = 11 ip_column = &apos;B&apos; ip_value = &apos;C_ICONSET_4ARROWS&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 12 ip_column = &apos;B&apos; ip_value = 10 ). lo_worksheet-&gt;set_cell( ip_row = 12 ip_column = &apos;B&apos; ip_value = 10 ).
lo_worksheet-&gt;set_cell( ip_row = 13 ip_column = &apos;B&apos; ip_value = 20 ). lo_worksheet-&gt;set_cell( ip_row = 13 ip_column = &apos;B&apos; ip_value = 20 ).
lo_worksheet-&gt;set_cell( ip_row = 14 ip_column = &apos;B&apos; ip_value = 30 ). lo_worksheet-&gt;set_cell( ip_row = 14 ip_column = &apos;B&apos; ip_value = 30 ).
lo_worksheet-&gt;set_cell( ip_row = 15 ip_column = &apos;B&apos; ip_value = 40 ). lo_worksheet-&gt;set_cell( ip_row = 15 ip_column = &apos;B&apos; ip_value = 40 ).
lo_worksheet-&gt;set_cell( ip_row = 16 ip_column = &apos;B&apos; ip_value = 50 ). lo_worksheet-&gt;set_cell( ip_row = 16 ip_column = &apos;B&apos; ip_value = 50 ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ). lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset. lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset.
lo_style_conditional-&gt;iconset = zcl_excel_style_conditional=&gt;c_iconset_4arrowsgray. lo_style_conditional-&gt;iconset = zcl_excel_style_conditional=&gt;c_iconset_4arrowsgray.
lo_style_conditional-&gt;priority = 1. lo_style_conditional-&gt;priority = 1.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;C&apos; lo_style_conditional-&gt;set_range( ip_start_column = &apos;C&apos;
ip_start_row = 12 ip_start_row = 12
ip_stop_column = &apos;C&apos; ip_stop_column = &apos;C&apos;
ip_stop_row = 16 ). ip_stop_row = 16 ).
lo_worksheet-&gt;set_cell( ip_row = 11 ip_column = &apos;C&apos; ip_value = &apos;C_ICONSET_4ARROWSGRAY&apos; ). lo_worksheet-&gt;set_cell( ip_row = 11 ip_column = &apos;C&apos; ip_value = &apos;C_ICONSET_4ARROWSGRAY&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 12 ip_column = &apos;C&apos; ip_value = 10 ). lo_worksheet-&gt;set_cell( ip_row = 12 ip_column = &apos;C&apos; ip_value = 10 ).
lo_worksheet-&gt;set_cell( ip_row = 13 ip_column = &apos;C&apos; ip_value = 20 ). lo_worksheet-&gt;set_cell( ip_row = 13 ip_column = &apos;C&apos; ip_value = 20 ).
lo_worksheet-&gt;set_cell( ip_row = 14 ip_column = &apos;C&apos; ip_value = 30 ). lo_worksheet-&gt;set_cell( ip_row = 14 ip_column = &apos;C&apos; ip_value = 30 ).
lo_worksheet-&gt;set_cell( ip_row = 15 ip_column = &apos;C&apos; ip_value = 40 ). lo_worksheet-&gt;set_cell( ip_row = 15 ip_column = &apos;C&apos; ip_value = 40 ).
lo_worksheet-&gt;set_cell( ip_row = 16 ip_column = &apos;C&apos; ip_value = 50 ). lo_worksheet-&gt;set_cell( ip_row = 16 ip_column = &apos;C&apos; ip_value = 50 ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ). lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset. lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset.
lo_style_conditional-&gt;iconset = zcl_excel_style_conditional=&gt;c_iconset_4redtoblack. lo_style_conditional-&gt;iconset = zcl_excel_style_conditional=&gt;c_iconset_4redtoblack.
lo_style_conditional-&gt;priority = 1. lo_style_conditional-&gt;priority = 1.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;D&apos; lo_style_conditional-&gt;set_range( ip_start_column = &apos;D&apos;
ip_start_row = 12 ip_start_row = 12
ip_stop_column = &apos;D&apos; ip_stop_column = &apos;D&apos;
ip_stop_row = 16 ). ip_stop_row = 16 ).
lo_worksheet-&gt;set_cell( ip_row = 11 ip_column = &apos;D&apos; ip_value = &apos;C_ICONSET_4REDTOBLACK&apos; ). lo_worksheet-&gt;set_cell( ip_row = 11 ip_column = &apos;D&apos; ip_value = &apos;C_ICONSET_4REDTOBLACK&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 12 ip_column = &apos;D&apos; ip_value = 10 ). lo_worksheet-&gt;set_cell( ip_row = 12 ip_column = &apos;D&apos; ip_value = 10 ).
lo_worksheet-&gt;set_cell( ip_row = 13 ip_column = &apos;D&apos; ip_value = 20 ). lo_worksheet-&gt;set_cell( ip_row = 13 ip_column = &apos;D&apos; ip_value = 20 ).
lo_worksheet-&gt;set_cell( ip_row = 14 ip_column = &apos;D&apos; ip_value = 30 ). lo_worksheet-&gt;set_cell( ip_row = 14 ip_column = &apos;D&apos; ip_value = 30 ).
lo_worksheet-&gt;set_cell( ip_row = 15 ip_column = &apos;D&apos; ip_value = 40 ). lo_worksheet-&gt;set_cell( ip_row = 15 ip_column = &apos;D&apos; ip_value = 40 ).
lo_worksheet-&gt;set_cell( ip_row = 16 ip_column = &apos;D&apos; ip_value = 50 ). lo_worksheet-&gt;set_cell( ip_row = 16 ip_column = &apos;D&apos; ip_value = 50 ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ). lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset. lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset.
lo_style_conditional-&gt;iconset = zcl_excel_style_conditional=&gt;c_iconset_4rating. lo_style_conditional-&gt;iconset = zcl_excel_style_conditional=&gt;c_iconset_4rating.
lo_style_conditional-&gt;priority = 1. lo_style_conditional-&gt;priority = 1.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;E&apos; lo_style_conditional-&gt;set_range( ip_start_column = &apos;E&apos;
ip_start_row = 12 ip_start_row = 12
ip_stop_column = &apos;E&apos; ip_stop_column = &apos;E&apos;
ip_stop_row = 16 ). ip_stop_row = 16 ).
lo_worksheet-&gt;set_cell( ip_row = 11 ip_column = &apos;E&apos; ip_value = &apos;C_ICONSET_4RATING&apos; ). lo_worksheet-&gt;set_cell( ip_row = 11 ip_column = &apos;E&apos; ip_value = &apos;C_ICONSET_4RATING&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 12 ip_column = &apos;E&apos; ip_value = 10 ). lo_worksheet-&gt;set_cell( ip_row = 12 ip_column = &apos;E&apos; ip_value = 10 ).
lo_worksheet-&gt;set_cell( ip_row = 13 ip_column = &apos;E&apos; ip_value = 20 ). lo_worksheet-&gt;set_cell( ip_row = 13 ip_column = &apos;E&apos; ip_value = 20 ).
lo_worksheet-&gt;set_cell( ip_row = 14 ip_column = &apos;E&apos; ip_value = 30 ). lo_worksheet-&gt;set_cell( ip_row = 14 ip_column = &apos;E&apos; ip_value = 30 ).
lo_worksheet-&gt;set_cell( ip_row = 15 ip_column = &apos;E&apos; ip_value = 40 ). lo_worksheet-&gt;set_cell( ip_row = 15 ip_column = &apos;E&apos; ip_value = 40 ).
lo_worksheet-&gt;set_cell( ip_row = 16 ip_column = &apos;E&apos; ip_value = 50 ). lo_worksheet-&gt;set_cell( ip_row = 16 ip_column = &apos;E&apos; ip_value = 50 ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ). lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset. lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset.
lo_style_conditional-&gt;iconset = zcl_excel_style_conditional=&gt;c_iconset_4trafficlights. lo_style_conditional-&gt;iconset = zcl_excel_style_conditional=&gt;c_iconset_4trafficlights.
lo_style_conditional-&gt;priority = 1. lo_style_conditional-&gt;priority = 1.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;F&apos; lo_style_conditional-&gt;set_range( ip_start_column = &apos;F&apos;
ip_start_row = 12 ip_start_row = 12
ip_stop_column = &apos;F&apos; ip_stop_column = &apos;F&apos;
ip_stop_row = 16 ). ip_stop_row = 16 ).
lo_worksheet-&gt;set_cell( ip_row = 11 ip_column = &apos;F&apos; ip_value = &apos;C_ICONSET_4TRAFFICLIGHTS&apos; ). lo_worksheet-&gt;set_cell( ip_row = 11 ip_column = &apos;F&apos; ip_value = &apos;C_ICONSET_4TRAFFICLIGHTS&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 12 ip_column = &apos;F&apos; ip_value = 10 ). lo_worksheet-&gt;set_cell( ip_row = 12 ip_column = &apos;F&apos; ip_value = 10 ).
lo_worksheet-&gt;set_cell( ip_row = 13 ip_column = &apos;F&apos; ip_value = 20 ). lo_worksheet-&gt;set_cell( ip_row = 13 ip_column = &apos;F&apos; ip_value = 20 ).
lo_worksheet-&gt;set_cell( ip_row = 14 ip_column = &apos;F&apos; ip_value = 30 ). lo_worksheet-&gt;set_cell( ip_row = 14 ip_column = &apos;F&apos; ip_value = 30 ).
lo_worksheet-&gt;set_cell( ip_row = 15 ip_column = &apos;F&apos; ip_value = 40 ). lo_worksheet-&gt;set_cell( ip_row = 15 ip_column = &apos;F&apos; ip_value = 40 ).
lo_worksheet-&gt;set_cell( ip_row = 16 ip_column = &apos;F&apos; ip_value = 50 ). lo_worksheet-&gt;set_cell( ip_row = 16 ip_column = &apos;F&apos; ip_value = 50 ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ). lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset. lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset.
lo_style_conditional-&gt;iconset = zcl_excel_style_conditional=&gt;c_iconset_5arrows. lo_style_conditional-&gt;iconset = zcl_excel_style_conditional=&gt;c_iconset_5arrows.
lo_style_conditional-&gt;priority = 1. lo_style_conditional-&gt;priority = 1.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;B&apos; lo_style_conditional-&gt;set_range( ip_start_column = &apos;B&apos;
ip_start_row = 19 ip_start_row = 19
ip_stop_column = &apos;B&apos; ip_stop_column = &apos;B&apos;
ip_stop_row = 23 ). ip_stop_row = 23 ).
lo_worksheet-&gt;set_cell( ip_row = 18 ip_column = &apos;B&apos; ip_value = &apos;C_ICONSET_5ARROWS&apos; ). lo_worksheet-&gt;set_cell( ip_row = 18 ip_column = &apos;B&apos; ip_value = &apos;C_ICONSET_5ARROWS&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 19 ip_column = &apos;B&apos; ip_value = 10 ). lo_worksheet-&gt;set_cell( ip_row = 19 ip_column = &apos;B&apos; ip_value = 10 ).
lo_worksheet-&gt;set_cell( ip_row = 20 ip_column = &apos;B&apos; ip_value = 20 ). lo_worksheet-&gt;set_cell( ip_row = 20 ip_column = &apos;B&apos; ip_value = 20 ).
lo_worksheet-&gt;set_cell( ip_row = 21 ip_column = &apos;B&apos; ip_value = 30 ). lo_worksheet-&gt;set_cell( ip_row = 21 ip_column = &apos;B&apos; ip_value = 30 ).
lo_worksheet-&gt;set_cell( ip_row = 22 ip_column = &apos;B&apos; ip_value = 40 ). lo_worksheet-&gt;set_cell( ip_row = 22 ip_column = &apos;B&apos; ip_value = 40 ).
lo_worksheet-&gt;set_cell( ip_row = 23 ip_column = &apos;B&apos; ip_value = 50 ). lo_worksheet-&gt;set_cell( ip_row = 23 ip_column = &apos;B&apos; ip_value = 50 ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ). lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset. lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset.
lo_style_conditional-&gt;iconset = zcl_excel_style_conditional=&gt;c_iconset_5arrowsgray. lo_style_conditional-&gt;iconset = zcl_excel_style_conditional=&gt;c_iconset_5arrowsgray.
lo_style_conditional-&gt;priority = 1. lo_style_conditional-&gt;priority = 1.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;C&apos; lo_style_conditional-&gt;set_range( ip_start_column = &apos;C&apos;
ip_start_row = 19 ip_start_row = 19
ip_stop_column = &apos;C&apos; ip_stop_column = &apos;C&apos;
ip_stop_row = 23 ). ip_stop_row = 23 ).
lo_worksheet-&gt;set_cell( ip_row = 18 ip_column = &apos;C&apos; ip_value = &apos;C_ICONSET_5ARROWSGRAY&apos; ). lo_worksheet-&gt;set_cell( ip_row = 18 ip_column = &apos;C&apos; ip_value = &apos;C_ICONSET_5ARROWSGRAY&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 19 ip_column = &apos;C&apos; ip_value = 10 ). lo_worksheet-&gt;set_cell( ip_row = 19 ip_column = &apos;C&apos; ip_value = 10 ).
lo_worksheet-&gt;set_cell( ip_row = 20 ip_column = &apos;C&apos; ip_value = 20 ). lo_worksheet-&gt;set_cell( ip_row = 20 ip_column = &apos;C&apos; ip_value = 20 ).
lo_worksheet-&gt;set_cell( ip_row = 21 ip_column = &apos;C&apos; ip_value = 30 ). lo_worksheet-&gt;set_cell( ip_row = 21 ip_column = &apos;C&apos; ip_value = 30 ).
lo_worksheet-&gt;set_cell( ip_row = 22 ip_column = &apos;C&apos; ip_value = 40 ). lo_worksheet-&gt;set_cell( ip_row = 22 ip_column = &apos;C&apos; ip_value = 40 ).
lo_worksheet-&gt;set_cell( ip_row = 23 ip_column = &apos;C&apos; ip_value = 50 ). lo_worksheet-&gt;set_cell( ip_row = 23 ip_column = &apos;C&apos; ip_value = 50 ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ). lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset. lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset.
lo_style_conditional-&gt;iconset = zcl_excel_style_conditional=&gt;c_iconset_5rating. lo_style_conditional-&gt;iconset = zcl_excel_style_conditional=&gt;c_iconset_5rating.
lo_style_conditional-&gt;priority = 1. lo_style_conditional-&gt;priority = 1.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;D&apos; lo_style_conditional-&gt;set_range( ip_start_column = &apos;D&apos;
ip_start_row = 19 ip_start_row = 19
ip_stop_column = &apos;D&apos; ip_stop_column = &apos;D&apos;
ip_stop_row = 23 ). ip_stop_row = 23 ).
lo_worksheet-&gt;set_cell( ip_row = 18 ip_column = &apos;D&apos; ip_value = &apos;C_ICONSET_5RATING&apos; ). lo_worksheet-&gt;set_cell( ip_row = 18 ip_column = &apos;D&apos; ip_value = &apos;C_ICONSET_5RATING&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 19 ip_column = &apos;D&apos; ip_value = 10 ). lo_worksheet-&gt;set_cell( ip_row = 19 ip_column = &apos;D&apos; ip_value = 10 ).
lo_worksheet-&gt;set_cell( ip_row = 20 ip_column = &apos;D&apos; ip_value = 20 ). lo_worksheet-&gt;set_cell( ip_row = 20 ip_column = &apos;D&apos; ip_value = 20 ).
lo_worksheet-&gt;set_cell( ip_row = 21 ip_column = &apos;D&apos; ip_value = 30 ). lo_worksheet-&gt;set_cell( ip_row = 21 ip_column = &apos;D&apos; ip_value = 30 ).
lo_worksheet-&gt;set_cell( ip_row = 22 ip_column = &apos;D&apos; ip_value = 40 ). lo_worksheet-&gt;set_cell( ip_row = 22 ip_column = &apos;D&apos; ip_value = 40 ).
lo_worksheet-&gt;set_cell( ip_row = 23 ip_column = &apos;D&apos; ip_value = 50 ). lo_worksheet-&gt;set_cell( ip_row = 23 ip_column = &apos;D&apos; ip_value = 50 ).
lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ). lo_style_conditional = lo_worksheet-&gt;add_new_conditional_style( ).
lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset. lo_style_conditional-&gt;rule = zcl_excel_style_conditional=&gt;c_rule_iconset.
lo_style_conditional-&gt;iconset = zcl_excel_style_conditional=&gt;c_iconset_5quarters. lo_style_conditional-&gt;iconset = zcl_excel_style_conditional=&gt;c_iconset_5quarters.
lo_style_conditional-&gt;priority = 1. lo_style_conditional-&gt;priority = 1.
lo_style_conditional-&gt;set_range( ip_start_column = &apos;E&apos; lo_style_conditional-&gt;set_range( ip_start_column = &apos;E&apos;
ip_start_row = 19 ip_start_row = 19
ip_stop_column = &apos;E&apos; ip_stop_column = &apos;E&apos;
ip_stop_row = 23 ). ip_stop_row = 23 ).
lo_worksheet-&gt;set_cell( ip_row = 18 ip_column = &apos;E&apos; ip_value = &apos;C_ICONSET_5QUARTERS&apos; ). lo_worksheet-&gt;set_cell( ip_row = 18 ip_column = &apos;E&apos; ip_value = &apos;C_ICONSET_5QUARTERS&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 19 ip_column = &apos;E&apos; ip_value = 10 ). lo_worksheet-&gt;set_cell( ip_row = 19 ip_column = &apos;E&apos; ip_value = 10 ).
lo_worksheet-&gt;set_cell( ip_row = 20 ip_column = &apos;E&apos; ip_value = 20 ). lo_worksheet-&gt;set_cell( ip_row = 20 ip_column = &apos;E&apos; ip_value = 20 ).
lo_worksheet-&gt;set_cell( ip_row = 21 ip_column = &apos;E&apos; ip_value = 30 ). lo_worksheet-&gt;set_cell( ip_row = 21 ip_column = &apos;E&apos; ip_value = 30 ).
lo_worksheet-&gt;set_cell( ip_row = 22 ip_column = &apos;E&apos; ip_value = 40 ). 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 ). 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. CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ). lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
&quot;convert to table * Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos; lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
EXPORTING lv_bytecount = XSTRLEN( lv_file ).
buffer = lv_file
IMPORTING &quot; Save the file
output_length = lv_bytecount cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
TABLES filename = p_path
binary_tab = lt_file_tab.
&quot;Save the file
CALL FUNCTION &apos;GUI_DOWNLOAD&apos;
EXPORTING
bin_filesize = lv_bytecount
filename = &apos;C:\Iconset.xlsx&apos;
filetype = &apos;BIN&apos; filetype = &apos;BIN&apos;
TABLES CHANGING data_tab = lt_file_tab ).</source>
data_tab = lt_file_tab.</source>
</PROG> </PROG>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-16"?> <?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL8" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100713" UNAM="FEMIA" UDAT="20100905" VERN="000016" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20100905" STIME="163905" IDATE="20100905" ITIME="163905" UCCHECK="X"> <PROG NAME="ZDEMO_EXCEL8" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100713" UNAM="FEMIA" UDAT="20100924" VERN="000020" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20100924" STIME="153902" IDATE="20100924" ITIME="153902" UCCHECK="X">
<textPool> <textPool>
<language SPRAS="E"> <language SPRAS="E">
<textElement ID="R" ENTRY="Test for excel" LENGTH="14 "/> <textElement ID="R" ENTRY="Test for excel" LENGTH="14 "/>
@ -16,51 +16,72 @@
REPORT zdemo_excel8. REPORT zdemo_excel8.
DATA: lo_excel TYPE REF TO zcl_excel, 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, lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_range TYPE REF TO zcl_excel_range, lo_range TYPE REF TO zcl_excel_range,
lv_file TYPE xstring, lv_style_number_guid TYPE zexcel_cell_style.
lv_style_number_guid TYPE zexcel_cell_style,
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i, lv_bytecount TYPE i,
lt_file_tab TYPE STANDARD TABLE OF solisti1. lt_file_tab TYPE solix_tab.
CREATE OBJECT lo_excel. DATA: lv_file_name TYPE string,
lv_file_path TYPE string,
lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
&quot; Get active sheet CONSTANTS: lv_default_file_name TYPE string VALUE &apos;08_Range.xlsx&apos;.
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;title = &apos;sheet1&apos;. PARAMETERS: p_path TYPE string.
lo_range = lo_excel-&gt;add_new_range( ).
lo_range-&gt;name = &apos;range&apos;. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lo_range-&gt;set_value( ip_sheet_name = lo_worksheet-&gt;title
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = p_path
CHANGING selected_folder = p_path ).
INITIALIZATION.
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.
CREATE OBJECT lo_excel.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;title = &apos;sheet1&apos;.
lo_range = lo_excel-&gt;add_new_range( ).
lo_range-&gt;name = &apos;range&apos;.
lo_range-&gt;set_value( ip_sheet_name = lo_worksheet-&gt;title
ip_start_column = &apos;C&apos; ip_start_column = &apos;C&apos;
ip_start_row = 4 ip_start_row = 4
ip_stop_column = &apos;C&apos; ip_stop_column = &apos;C&apos;
ip_stop_row = 8 ). ip_stop_row = 8 ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;C&apos; ip_value = &apos;Apple&apos; ). lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;C&apos; ip_value = &apos;Apple&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;C&apos; ip_value = &apos;Banana&apos; ). lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;C&apos; ip_value = &apos;Banana&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;C&apos; ip_value = &apos;Blueberry&apos; ). lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;C&apos; ip_value = &apos;Blueberry&apos; ).
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 = 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; ). 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. CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ). lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
&quot;convert to table * Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos; lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
EXPORTING lv_bytecount = XSTRLEN( lv_file ).
buffer = lv_file
IMPORTING &quot; Save the file
output_length = lv_bytecount cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
TABLES filename = p_path
binary_tab = lt_file_tab.
&quot;Save the file
CALL FUNCTION &apos;GUI_DOWNLOAD&apos;
EXPORTING
bin_filesize = lv_bytecount
filename = &apos;C:\Range.xlsx&apos;
filetype = &apos;BIN&apos; filetype = &apos;BIN&apos;
TABLES CHANGING data_tab = lt_file_tab ).</source>
data_tab = lt_file_tab.</source>
</PROG> </PROG>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-16"?> <?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL9" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100713" UNAM="FEMIA" UDAT="20100905" VERN="000017" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20100905" STIME="163927" IDATE="20100905" ITIME="163927" UCCHECK="X"> <PROG NAME="ZDEMO_EXCEL9" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100713" UNAM="FEMIA" UDAT="20100924" VERN="000021" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20100924" STIME="153902" IDATE="20100924" ITIME="153902" UCCHECK="X">
<textPool> <textPool>
<language SPRAS="E"> <language SPRAS="E">
<textElement ID="R" ENTRY="Test for excel" LENGTH="14 "/> <textElement ID="R" ENTRY="Test for excel" LENGTH="14 "/>
@ -16,58 +16,80 @@
REPORT zdemo_excel9. REPORT zdemo_excel9.
DATA: lo_excel TYPE REF TO zcl_excel, 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, lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_range TYPE REF TO zcl_excel_range, lo_range TYPE REF TO zcl_excel_range,
lo_data_validation TYPE REF TO zcl_excel_data_validation, lo_data_validation TYPE REF TO zcl_excel_data_validation,
lv_file TYPE xstring, lv_style_number_guid TYPE zexcel_cell_style.
lv_style_number_guid TYPE zexcel_cell_style,
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i, lv_bytecount TYPE i,
lt_file_tab TYPE STANDARD TABLE OF solisti1. lt_file_tab TYPE solix_tab.
CREATE OBJECT lo_excel. DATA: lv_file_name TYPE string,
lv_file_path TYPE string,
lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
&quot; Get active sheet CONSTANTS: lv_default_file_name TYPE string VALUE &apos;09_DataValidation.xlsx&apos;.
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;title = &apos;sheet1&apos;. PARAMETERS: p_path TYPE string.
lo_range = lo_excel-&gt;add_new_range( ).
lo_range-&gt;name = &apos;range&apos;. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lo_range-&gt;set_value( ip_sheet_name = lo_worksheet-&gt;title
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = p_path
CHANGING selected_folder = p_path ).
INITIALIZATION.
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.
CREATE OBJECT lo_excel.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;title = &apos;sheet1&apos;.
lo_range = lo_excel-&gt;add_new_range( ).
lo_range-&gt;name = &apos;range&apos;.
lo_range-&gt;set_value( ip_sheet_name = lo_worksheet-&gt;title
ip_start_column = &apos;C&apos; ip_start_column = &apos;C&apos;
ip_start_row = 4 ip_start_row = 4
ip_stop_column = &apos;C&apos; ip_stop_column = &apos;C&apos;
ip_stop_row = 8 ). ip_stop_row = 8 ).
lo_data_validation = lo_worksheet-&gt;add_new_data_validation( ). lo_data_validation = lo_worksheet-&gt;add_new_data_validation( ).
lo_data_validation-&gt;value = lo_range-&gt;name. lo_data_validation-&gt;value = lo_range-&gt;name.
lo_data_validation-&gt;cell_row = 4. lo_data_validation-&gt;cell_row = 4.
lo_data_validation-&gt;cell_column = &apos;A&apos;. lo_data_validation-&gt;cell_column = &apos;A&apos;.
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;A&apos; ip_value = &apos;Select a value&apos; ). lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;A&apos; ip_value = &apos;Select a value&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;C&apos; ip_value = &apos;Apple&apos; ). lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;C&apos; ip_value = &apos;Apple&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;C&apos; ip_value = &apos;Banana&apos; ). lo_worksheet-&gt;set_cell( ip_row = 5 ip_column = &apos;C&apos; ip_value = &apos;Banana&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;C&apos; ip_value = &apos;Blueberry&apos; ). lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;C&apos; ip_value = &apos;Blueberry&apos; ).
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 = 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; ). 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. CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ). lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
&quot;convert to table * Convert to binary
CALL FUNCTION &apos;SCMS_XSTRING_TO_BINARY&apos; lt_file_tab = cl_bcs_convert=&gt;xstring_to_solix( iv_xstring = lv_file ).
EXPORTING lv_bytecount = XSTRLEN( lv_file ).
buffer = lv_file
IMPORTING &quot; Save the file
output_length = lv_bytecount cl_gui_frontend_services=&gt;gui_download( EXPORTING bin_filesize = lv_bytecount
TABLES filename = p_path
binary_tab = lt_file_tab.
&quot;Save the file
CALL FUNCTION &apos;GUI_DOWNLOAD&apos;
EXPORTING
bin_filesize = lv_bytecount
filename = &apos;C:\DataValidation.xlsx&apos;
filetype = &apos;BIN&apos; filetype = &apos;BIN&apos;
TABLES CHANGING data_tab = lt_file_tab ).</source>
data_tab = lt_file_tab.</source>
</PROG> </PROG>

View File

@ -1,5 +1,5 @@
abap2xlsx" abap2xlsx
Copyright (c) 2010 - 2011 Plinky.it Copyright (c) 2010 - 2011 Plinky.it
@ -12,7 +12,7 @@
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
@category ABAP xlsx Manager @category ABAP xlsx Manager
@package ZABAP2XLSX @package ZA2X
@author Ivan Femia @author Ivan Femia
@company Techedge SpA @company Techedge SpA
@homepage http://www.plinky.it/software @homepage http://www.plinky.it/software

View File

@ -1 +1 @@
Check out the Installation Guide at http://code.google.com/p/abap2xlsx/wiki/InstallationGuide Check out the Installation Guide at http://wiki.sdn.sap.com/wiki/display/ABAP/Installation+Guide