Fixed issue #91, great job by Rene Turnheim

git-svn-id: https://subversion.assembla.com/svn/abap2xlsx/trunk@250 b7d68dce-7c3c-4a99-8ce0-9ea847f5d049
This commit is contained in:
Ivan Femia 2012-01-20 20:33:22 +00:00
parent 011b88692b
commit 6d0a0eb44f
12 changed files with 6355 additions and 3828 deletions

View File

@ -0,0 +1,834 @@
<?xml version="1.0" encoding="utf-16"?>
<CLAS CLSNAME="ZCL_EXCEL_CONVERTER" VERSION="1" LANGU="E" DESCRIPT="Salv converter" UUID="4F03DF55DA5D00BFE1008000C008015A" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" AUTHOR="RTURNHEIM" CREATEDON="20120106" CHANGEDBY="FEMIA" CHANGEDON="20120120" CHGDANYON="00000000" CLSCCINCL="X" FIXPT="X" UNICODE="X" R3RELEASE="702" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<types CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="T_RELATIONSHIP" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="1 " AUTHOR="FEMIA" CREATEDON="20120108" CHANGEDBY="FEMIA" CHANGEDON="20120120" TYPTYPE="4" SRCROW1="6 " SRCCOLUMN1="4 " SRCROW2="10 " SRCCOLUMN2="29 " R3RELEASE="702" TYPESRC_LENG="154 " TYPESRC="BEGIN OF t_relationship,
id TYPE string,
type TYPE string,
target TYPE string,
END OF t_relationship
"/>
<types CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="T_FILEVERSION" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="2 " AUTHOR="FEMIA" CREATEDON="20120108" CHANGEDBY="FEMIA" CHANGEDON="20120120" TYPTYPE="4" SRCROW1="12 " SRCCOLUMN1="4 " SRCROW2="18 " SRCCOLUMN2="26 " R3RELEASE="702" TYPESRC_LENG="254 " TYPESRC="BEGIN OF t_fileversion,
appname TYPE string,
lastedited TYPE string,
lowestedited TYPE string,
rupbuild TYPE string,
codename TYPE string,
END OF t_fileversion
"/>
<types CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="T_SHEET" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="3 " AUTHOR="FEMIA" CREATEDON="20120108" CHANGEDBY="FEMIA" CHANGEDON="20120120" TYPTYPE="4" SRCROW1="20 " SRCCOLUMN1="4 " SRCROW2="24 " SRCCOLUMN2="22 " R3RELEASE="702" TYPESRC_LENG="152 " TYPESRC="BEGIN OF t_sheet,
name TYPE string,
sheetid TYPE string,
id TYPE string,
END OF t_sheet
"/>
<types CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="T_WORKBOOKPR" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="4 " AUTHOR="FEMIA" CREATEDON="20120108" CHANGEDBY="FEMIA" CHANGEDON="20120120" TYPTYPE="4" SRCROW1="26 " SRCCOLUMN1="4 " SRCROW2="29 " SRCCOLUMN2="27 " R3RELEASE="702" TYPESRC_LENG="150 " TYPESRC="BEGIN OF t_workbookpr,
codename TYPE string,
defaultthemeversion TYPE string,
END OF t_workbookpr
"/>
<types CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="T_SHEETPR" VERSION="1" LANGU="E" EXPOSURE="1" STATE="1" EDITORDER="5 " AUTHOR="FEMIA" CREATEDON="20120108" CHANGEDBY="FEMIA" CHANGEDON="20120120" TYPTYPE="4" SRCROW1="31 " SRCCOLUMN1="4 " SRCROW2="33 " SRCCOLUMN2="24 " R3RELEASE="702" TYPESRC_LENG="96 " TYPESRC="BEGIN OF t_sheetpr,
codename TYPE string,
END OF t_sheetpr
"/>
<publicSection>class ZCL_EXCEL_CONVERTER definition
public
create public .
*&quot;* public components of class ZCL_EXCEL_CONVERTER
*&quot;* do not include other source files here!!!
public section.
type-pools ABAP .
class-methods CLASS_CONSTRUCTOR .
methods CONVERT
importing
!IO_ALV type ref to OBJECT optional
!IT_TABLE type STANDARD TABLE
!I_ROW_INT type I default 1
!I_COLUMN_INT type I default 1
!I_TABLE type FLAG optional
!I_STYLE_TABLE type ZEXCEL_TABLE_STYLE optional
!IO_WORKSHEET type ref to ZCL_EXCEL_WORKSHEET optional
changing
!CO_EXCEL type ref to ZCL_EXCEL optional
raising
ZCX_EXCEL .
methods GET_FILE
exporting
!E_BYTECOUNT type I
!ET_FILE type SOLIX_TAB
!E_FILE type XSTRING .
methods OPEN_FILE .
methods WRITE_FILE
importing
!I_PATH type STRING optional .</publicSection>
<protectedSection>*&quot;* protected components of class ZCL_EXCEL_CONVERTER
*&quot;* do not include other source files here!!!
protected section.
types:
BEGIN OF t_relationship,
id TYPE string,
type TYPE string,
target TYPE string,
END OF t_relationship .
types:
BEGIN OF t_fileversion,
appname TYPE string,
lastedited TYPE string,
lowestedited TYPE string,
rupbuild TYPE string,
codename TYPE string,
END OF t_fileversion .
types:
BEGIN OF t_sheet,
name TYPE string,
sheetid TYPE string,
id TYPE string,
END OF t_sheet .
types:
BEGIN OF t_workbookpr,
codename TYPE string,
defaultthemeversion TYPE string,
END OF t_workbookpr .
types:
BEGIN OF t_sheetpr,
codename TYPE string,
END OF t_sheetpr .
data W_ROW_INT type ZEXCEL_CELL_ROW value 1. &quot;#EC NOTEXT .
data W_COL_INT type ZEXCEL_CELL_COLUMN value 1. &quot;#EC NOTEXT .</protectedSection>
<privateSection>*&quot;* private components of class ZCL_EXCEL_CONVERTER
*&quot;* do not include other source files here!!!
private section.
data wo_excel type ref to zcl_excel .
data wo_worksheet type ref to zcl_excel_worksheet .
data wo_data type ref to data .
data wt_fieldcatalog type zexcel_t_converter_fcat .
data ws_layout type zexcel_s_converter_layo .
class-data wt_objects type tt_alv_types .
data w_fcount type numc3 .
methods bind_table
importing
!i_style_table type zexcel_table_style .
methods bind_cells
raising
zcx_excel .
methods create_formular_total
importing
!i_row_int type zexcel_cell_row
!i_column type zexcel_cell_column_alpha
!i_totals_function type zexcel_table_totals_function
returning
value(r_formula) type string .
methods create_style_hdr
importing
!i_alignment type zexcel_alignment optional
returning
value(r_style) type zexcel_cell_style .
methods create_style_normal
importing
!i_alignment type zexcel_alignment optional
!i_inttype type inttype optional
returning
value(r_style) type zexcel_cell_style .
methods create_style_stripped
importing
!i_alignment type zexcel_alignment optional
!i_inttype type inttype optional
returning
value(r_style) type zexcel_cell_style .
methods create_style_total
importing
!i_alignment type zexcel_alignment optional
!i_inttype type inttype optional
returning
value(r_style) type zexcel_cell_style .
methods create_path
returning
value(r_path) type string .
methods create_table
importing
!it_table type standard table .
methods create_worksheet
importing
!i_table type flag default &apos;X&apos;
!i_style_table type zexcel_table_style .
methods execute_converter
importing
!io_object type ref to object
!it_table type standard table
raising
zcx_excel .
methods set_fieldcatalog .</privateSection>
<localImplementation>*&quot;* local class implementation for public class
*&quot;* use this source file for the implementation part of
*&quot;* local helper classes</localImplementation>
<localTypes>*&quot;* use this source file for any type declarations (class
*&quot;* definitions, interfaces or data types) you need for method
*&quot;* implementation or private method&apos;s signature
types: begin of ts_alv_types,
seoclass type SEOCLSNAME,
clsname type seoclsname,
end of ts_alv_types,
tt_alv_types type hashed table of ts_alv_types with unique key seoclass.</localTypes>
<localMacros>*&quot;* use this source file for any macro definitions you need
*&quot;* in the implementation part of the class</localMacros>
<typeUsage CLSNAME="ZCL_EXCEL_CONVERTER" TYPEGROUP="ABAP" VERSION="1" TPUTYPE="0" EXPLICIT="X"/>
<typeUsage CLSNAME="ZCL_EXCEL_CONVERTER" TYPEGROUP="SLIS" VERSION="1" TPUTYPE="0" IMPLICIT="X"/>
<typeUsage CLSNAME="ZCL_EXCEL_CONVERTER" TYPEGROUP="SOI" VERSION="1" TPUTYPE="0" IMPLICIT="X"/>
<forwardDeclaration>ABAP</forwardDeclaration>
<forwardDeclaration>SLIS</forwardDeclaration>
<forwardDeclaration>SOI</forwardDeclaration>
<attribute CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="WO_DATA" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="3 " AUTHOR="FEMIA" CREATEDON="20120108" CHANGEDBY="FEMIA" CHANGEDON="20120120" ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="DATA" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="702" TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="WO_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Excel creator" EXPOSURE="0" STATE="1" EDITORDER="1 " AUTHOR="FEMIA" CREATEDON="20120108" CHANGEDBY="FEMIA" CHANGEDON="20120120" ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="702" TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="WO_WORKSHEET" VERSION="1" LANGU="E" DESCRIPT="Worksheet" EXPOSURE="0" STATE="1" EDITORDER="2 " AUTHOR="FEMIA" CREATEDON="20120108" CHANGEDBY="FEMIA" CHANGEDON="20120120" ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEET" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="702" TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="WS_LAYOUT" VERSION="1" LANGU="E" DESCRIPT="Converter settings for table" EXPOSURE="0" STATE="1" EDITORDER="5 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_S_CONVERTER_LAYO" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="702" TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="WT_FIELDCATALOG" VERSION="1" LANGU="E" DESCRIPT="Conter table for tabel fields" EXPOSURE="0" STATE="1" EDITORDER="4 " AUTHOR="FEMIA" CREATEDON="20120108" CHANGEDBY="FEMIA" CHANGEDON="20120120" ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_T_CONVERTER_FCAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="702" TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="WT_OBJECTS" VERSION="1" LANGU="E" DESCRIPT="ALV object list" EXPOSURE="0" STATE="1" EDITORDER="6 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" ATTDECLTYP="1" ATTEXPVIRT="0" TYPTYPE="1" TYPE="TT_ALV_TYPES" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="702" TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="W_COL_INT" VERSION="1" LANGU="E" DESCRIPT="Cell Column" EXPOSURE="1" STATE="1" EDITORDER="2 " AUTHOR="FEMIA" CREATEDON="20120108" CHANGEDBY="FEMIA" CHANGEDON="20120120" ATTDECLTYP="0" ATTVALUE="1" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="702" TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="W_FCOUNT" VERSION="1" LANGU="E" DESCRIPT="Two digit number" EXPOSURE="0" STATE="1" EDITORDER="7 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="NUMC3" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="702" TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="W_ROW_INT" VERSION="1" LANGU="E" DESCRIPT="Cell Row" EXPOSURE="1" STATE="1" EDITORDER="1 " AUTHOR="FEMIA" CREATEDON="20120108" CHANGEDBY="FEMIA" CHANGEDON="20120120" ATTDECLTYP="0" ATTVALUE="1" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="702" TYPESRC_LENG="0 "/>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="BIND_CELLS" VERSION="1" LANGU="E" DESCRIPT="Create table with set cell method" EXPOSURE="0" STATE="1" EDITORDER="2 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" R3RELEASE="702" BCMTDCAT="00" BCMTDSYN="0">
<exception CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="BIND_CELLS" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120"/>
<source>method BIND_CELLS.
data: lo_tabdescr type ref to cl_abap_structdescr,
lo_data type ref to data,
l_row_header type zexcel_cell_row value &apos;2&apos;,
l_col_header type zexcel_cell_column_alpha value &apos;B&apos;,
l_row_int type zexcel_cell_row,
l_col_int type zexcel_cell_column,
l_col_alpha type zexcel_cell_column_alpha,
l_cell_value type zexcel_cell_value,
l_hdr type zexcel_cell_style,
l_stripped type zexcel_cell_style,
l_normal type zexcel_cell_style,
l_total type zexcel_cell_style,
l_s_color type abap_bool,
i_num_columns type i,
lo_col_dim type ref to zcl_excel_worksheet_columndime,
l_formula type zexcel_cell_formula.
field-symbols: &lt;fs_stab&gt; type any,
&lt;fs_tab&gt; type any table,
&lt;fs_sfcat&gt; type zexcel_s_converter_fcat,
&lt;fs_fldval&gt; type any,
&lt;fs_cell_value&gt; type zexcel_cell_value.
assign wo_data-&gt;* to &lt;fs_tab&gt; .
l_col_int = w_col_int.
l_row_int = w_row_int.
* First lets check if we fiedl catalog ready or we need conversion from table.
if wt_fieldcatalog is initial.
set_fieldcatalog( ).
endif.
clear ws_layout.
* It is better to loop column by column
loop at wt_fieldcatalog assigning &lt;fs_sfcat&gt;.
* Default stype with alignment and format
l_hdr = create_style_hdr( i_alignment = &lt;fs_sfcat&gt;-alignment ).
if ws_layout-is_stripped = abap_true.
l_stripped = create_style_stripped( i_alignment = &lt;fs_sfcat&gt;-alignment
i_inttype = &lt;fs_sfcat&gt;-inttype ).
endif.
l_normal = create_style_normal( i_alignment = &lt;fs_sfcat&gt;-alignment
i_inttype = &lt;fs_sfcat&gt;-inttype ).
l_total = create_style_total( i_alignment = &lt;fs_sfcat&gt;-alignment
i_inttype = &lt;fs_sfcat&gt;-inttype ).
* Freeze panes
if &lt;fs_sfcat&gt;-fix_column = abap_true.
add 1 to i_num_columns.
endif.
l_s_color = abap_true.
l_col_alpha = zcl_excel_common=&gt;convert_column2alpha( l_col_int ).
&quot; First of all write column header
l_cell_value = &lt;fs_sfcat&gt;-scrtext_m.
wo_worksheet-&gt;set_cell( ip_column = l_col_alpha
ip_row = l_row_int
ip_value = l_cell_value
ip_abap_type = cl_abap_typedescr=&gt;typekind_string
ip_style = l_hdr ).
add 1 to l_row_int.
loop at &lt;fs_tab&gt; assigning &lt;fs_stab&gt;.
* Now the cell values
assign component &lt;fs_sfcat&gt;-columnname of structure &lt;fs_stab&gt; to &lt;fs_fldval&gt;.
if ws_layout-is_stripped = abap_true and l_s_color = abap_true.
wo_worksheet-&gt;set_cell( ip_column = l_col_alpha
ip_row = l_row_int
ip_value = &lt;fs_fldval&gt;
ip_abap_type = &lt;fs_sfcat&gt;-inttype
ip_style = l_stripped ).
clear l_s_color.
else.
wo_worksheet-&gt;set_cell( ip_column = l_col_alpha
ip_row = l_row_int
ip_value = &lt;fs_fldval&gt;
ip_abap_type = &lt;fs_sfcat&gt;-inttype
ip_style = l_normal ).
l_s_color = abap_true.
endif.
add 1 to l_row_int.
endloop.
* Now let&apos;s check for optimized
if &lt;fs_sfcat&gt;-is_optimized = abap_true.
lo_col_dim = wo_worksheet-&gt;get_column_dimension( ip_column = l_col_alpha ).
lo_col_dim-&gt;set_auto_size( ip_auto_size = abap_true ) .
endif.
* Now let&apos;s check for visible
if &lt;fs_sfcat&gt;-is_visible = abap_false.
lo_col_dim = wo_worksheet-&gt;get_column_dimension( ip_column = l_col_alpha ).
lo_col_dim-&gt;set_visible( ip_visible = abap_false ) .
endif.
* Now let&apos;s check for total
if &lt;fs_sfcat&gt;-totals_function is not initial.
l_row_int = l_row_int - 1.
l_formula = create_formular_total( i_row_int = l_row_int
i_column = l_col_alpha
i_totals_function = &lt;fs_sfcat&gt;-totals_function ).
add 1 to l_row_int.
wo_worksheet-&gt;set_cell( ip_column = l_col_alpha
ip_row = l_row_int
ip_formula = l_formula
ip_style = l_total ).
endif.
l_row_int = w_row_int.
add 1 to l_col_int.
endloop.
* Check for freeze panes
if ws_layout-is_fixed = abap_true.
if i_num_columns = 0.
i_num_columns = w_col_int.
endif.
wo_worksheet-&gt;freeze_panes( exporting ip_num_columns = i_num_columns
ip_num_rows = w_row_int ) .
endif.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="BIND_TABLE" VERSION="1" LANGU="E" DESCRIPT="Create table with bind table method" EXPOSURE="0" STATE="1" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" MTDTYPE="0" MTDDECLTYP="0" R3RELEASE="702" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="BIND_TABLE" SCONAME="I_STYLE_TABLE" VERSION="1" LANGU="E" DESCRIPT="Name of the table style" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_TABLE_STYLE"/>
<source>method BIND_TABLE.
data: lt_field_catalog type zexcel_t_fieldcatalog,
ls_field_catalog type zexcel_s_fieldcatalog,
ls_fcat type zexcel_s_converter_fcat,
ls_settings type zexcel_s_table_settings,
l_line type i.
field-symbols: &lt;fs_tab&gt; type any table.
assign wo_data-&gt;* to &lt;fs_tab&gt; .
if wt_fieldcatalog is initial.
set_fieldcatalog( ) .
endif.
ls_settings-table_style = i_style_table.
ls_settings-top_left_column = zcl_excel_common=&gt;convert_column2alpha( ip_column = w_col_int ).
ls_settings-top_left_row = w_row_int.
ls_settings-show_row_stripes = ws_layout-is_stripped.
describe table wt_fieldcatalog lines l_line.
l_line = l_line + 1 + w_col_int.
ls_settings-bottom_right_column = zcl_excel_common=&gt;convert_column2alpha( ip_column = l_line ).
describe table &lt;fs_tab&gt; lines l_line.
ls_settings-bottom_right_row = l_line + 1 + w_row_int.
sort wt_fieldcatalog by position.
loop at wt_fieldcatalog into ls_fcat.
move-corresponding ls_fcat to ls_field_catalog.
ls_field_catalog-dynpfld = abap_true.
insert ls_field_catalog into table lt_field_catalog.
endloop.
wo_worksheet-&gt;bind_table(
exporting
ip_table = &lt;fs_tab&gt;
it_field_catalog = lt_field_catalog
is_table_settings = ls_settings
importing
es_table_settings = ls_settings
).
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CLASS_CONSTRUCTOR" VERSION="1" LANGU="E" DESCRIPT="CLASS_CONSTRUCTOR" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" MTDTYPE="2" MTDDECLTYP="1" R3RELEASE="702" BCMTDCAT="00" BCMTDSYN="0">
<source>method CLASS_CONSTRUCTOR.
data: ls_objects type ts_alv_types.
* Object CL_GUI_ALV_GRID
ls_objects-seoclass = &apos;CL_GUI_ALV_GRID&apos;.
ls_objects-clsname = &apos;ZCL_EXCEL_CONVERTER_ALV_GRID&apos;.
insert ls_objects into table wt_objects.
* Object CL_SALV_TABLE
ls_objects-seoclass = &apos;CL_SALV_TABLE&apos;.
ls_objects-clsname = &apos;ZCL_EXCEL_CONVERTER_SALV_TABLE&apos;.
insert ls_objects into table wt_objects.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CONVERT" VERSION="1" LANGU="E" DESCRIPT="Convert" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" R3RELEASE="702" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CONVERT" SCONAME="IO_ALV" VERSION="1" LANGU="E" DESCRIPT="ALV List Viewer" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="OBJECT" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CONVERT" SCONAME="IT_TABLE" VERSION="1" LANGU="E" DESCRIPT="Data table" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STANDARD TABLE"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CONVERT" SCONAME="I_ROW_INT" VERSION="1" LANGU="E" DESCRIPT="Top edge of data block" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="I" PARVALUE="1" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CONVERT" SCONAME="I_COLUMN_INT" VERSION="1" LANGU="E" DESCRIPT="Left-hand edge of data block" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="I" PARVALUE="1" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CONVERT" SCONAME="I_TABLE" VERSION="1" LANGU="E" DESCRIPT="Create as TABLE in workbook" CMPTYPE="1" MTDTYPE="0" EDITORDER="5 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="FLAG" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CONVERT" SCONAME="I_STYLE_TABLE" VERSION="1" LANGU="E" DESCRIPT="Name of the table style" CMPTYPE="1" MTDTYPE="0" EDITORDER="6 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_TABLE_STYLE" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CONVERT" SCONAME="IO_WORKSHEET" VERSION="1" LANGU="E" DESCRIPT="Worksheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="7 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEET" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CONVERT" SCONAME="CO_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Excel creator" CMPTYPE="1" MTDTYPE="0" EDITORDER="8 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" PARDECLTYP="2" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL" PAROPTIONL="X"/>
<exception CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CONVERT" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120"/>
<source>method CONVERT.
try.
execute_converter( io_object = io_alv
it_table = it_table ) .
endtry.
if io_worksheet is supplied and io_worksheet is bound.
wo_worksheet = io_worksheet.
endif.
if co_excel is supplied.
if co_excel is not bound.
create object co_excel.
co_excel-&gt;zif_excel_book_properties~creator = sy-uname.
endif.
wo_excel = co_excel.
endif.
* Move table to data object and clean it up
if wt_fieldcatalog is not initial.
create_table( it_table = it_table ).
else.
get reference of it_table into wo_data.
endif.
if wo_excel is not bound.
create object wo_excel.
wo_excel-&gt;zif_excel_book_properties~creator = sy-uname.
endif.
if wo_worksheet is not bound.
&quot; Get active sheet
wo_worksheet = wo_excel-&gt;get_active_worksheet( ).
wo_worksheet-&gt;set_title( ip_title = &apos;Sheet1&apos;(001) ).
endif.
w_row_int = i_row_int.
w_col_int = i_column_int.
create_worksheet( i_table = i_table
i_style_table = i_style_table ) .
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_FORMULAR_TOTAL" VERSION="1" LANGU="E" DESCRIPT="Create formular for column total" EXPOSURE="0" STATE="1" EDITORDER="3 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120108" CHANGEDBY="FEMIA" CHANGEDON="20120120" MTDTYPE="0" MTDDECLTYP="0" R3RELEASE="702" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_FORMULAR_TOTAL" SCONAME="I_ROW_INT" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120108" CHANGEDBY="FEMIA" CHANGEDON="20120120" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_FORMULAR_TOTAL" SCONAME="I_COLUMN" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120108" CHANGEDBY="FEMIA" CHANGEDON="20120120" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN_ALPHA"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_FORMULAR_TOTAL" SCONAME="I_TOTALS_FUNCTION" VERSION="1" LANGU="E" DESCRIPT="Totals function for table column (xml ST_TotalsRowFunction)" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120108" CHANGEDBY="FEMIA" CHANGEDON="20120120" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_TABLE_TOTALS_FUNCTION"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_FORMULAR_TOTAL" SCONAME="R_FORMULA" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120108" CHANGEDBY="FEMIA" CHANGEDON="20120120" PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="STRING"/>
<source>method CREATE_FORMULAR_TOTAL.
data: l_row_alpha type string,
l_row_e_alpha type string.
l_row_alpha = w_row_int.
l_row_e_alpha = i_row_int.
concatenate i_totals_function &apos;(&apos; i_column l_row_alpha &apos;:&apos; i_column l_row_e_alpha &apos;)&apos; into r_formula.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_PATH" VERSION="1" LANGU="E" DESCRIPT="Create file path for download" EXPOSURE="0" STATE="1" EDITORDER="8 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" MTDTYPE="0" MTDDECLTYP="0" R3RELEASE="702" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_PATH" SCONAME="R_PATH" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="STRING"/>
<source>method CREATE_PATH.
data: l_sep type c .
clear r_path.
&quot; Save the file
cl_gui_frontend_services=&gt;get_sapgui_workdir(
changing
sapworkdir = r_path
* exceptions
* get_sapworkdir_failed = 1
* cntl_error = 2
* error_no_gui = 3
* not_supported_by_gui = 4
).
if sy-subrc &lt;&gt; 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
add 1 to w_fcount.
*-obtain file separator character---------------------------------------
call method cl_gui_frontend_services=&gt;get_file_separator
changing
file_separator = l_sep
exceptions
cntl_error = 1
error_no_gui = 2
not_supported_by_gui = 3
others = 4.
if sy-subrc &lt;&gt; 0.
l_sep = &apos;&apos;.
endif.
concatenate r_path l_sep &apos;Excel_&apos; w_fcount &apos;.xlsx&apos; into r_path.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_STYLE_HDR" VERSION="1" LANGU="E" DESCRIPT="Create header style" EXPOSURE="0" STATE="1" EDITORDER="4 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120108" CHANGEDBY="FEMIA" CHANGEDON="20120120" MTDTYPE="0" MTDDECLTYP="0" R3RELEASE="702" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_STYLE_HDR" SCONAME="I_ALIGNMENT" VERSION="1" LANGU="E" DESCRIPT="Alignment" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120108" CHANGEDBY="FEMIA" CHANGEDON="20120120" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_ALIGNMENT" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_STYLE_HDR" SCONAME="R_STYLE" VERSION="1" LANGU="E" DESCRIPT="Style identifier" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_STYLE"/>
<source>method CREATE_STYLE_HDR.
data: lo_style type ref to zcl_excel_style.
lo_style = wo_excel-&gt;add_new_style( ).
lo_style-&gt;font-&gt;bold = abap_true.
lo_style-&gt;font-&gt;color-rgb = zcl_excel_style_color=&gt;c_white.
lo_style-&gt;fill-&gt;filltype = zcl_excel_style_fill=&gt;c_fill_solid.
lo_style-&gt;fill-&gt;fgcolor-rgb = &apos;FF4F81BD&apos;.
if i_alignment is supplied and i_alignment is not initial.
lo_style-&gt;alignment-&gt;horizontal = i_alignment.
endif.
r_style = lo_style-&gt;get_guid( ) .
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_STYLE_NORMAL" VERSION="1" LANGU="E" DESCRIPT="Create line style for stripped" EXPOSURE="0" STATE="1" EDITORDER="5 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" MTDTYPE="0" MTDDECLTYP="0" R3RELEASE="702" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_STYLE_NORMAL" SCONAME="I_ALIGNMENT" VERSION="1" LANGU="E" DESCRIPT="Alignment" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_ALIGNMENT" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_STYLE_NORMAL" SCONAME="I_INTTYPE" VERSION="1" LANGU="E" DESCRIPT="ABAP data type (C,D,N,...)" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="INTTYPE" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_STYLE_NORMAL" SCONAME="R_STYLE" VERSION="1" LANGU="E" DESCRIPT="Style identifier" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_STYLE"/>
<source>method CREATE_STYLE_NORMAL.
data: lo_style type ref to zcl_excel_style.
lo_style = wo_excel-&gt;add_new_style( ).
if i_alignment is supplied and i_alignment is not initial.
lo_style-&gt;alignment-&gt;horizontal = i_alignment.
endif.
if i_inttype is supplied and i_inttype is not initial.
case i_inttype.
when cl_abap_typedescr=&gt;typekind_date.
lo_style-&gt;number_format-&gt;format_code = wo_worksheet-&gt;get_default_excel_date_format( ).
when cl_abap_typedescr=&gt;typekind_time.
lo_style-&gt;number_format-&gt;format_code = zcl_excel_style_number_format=&gt;c_format_date_time6.
endcase.
endif.
r_style = lo_style-&gt;get_guid( ) .
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_STYLE_STRIPPED" VERSION="1" LANGU="E" DESCRIPT="Create line style for stripped" EXPOSURE="0" STATE="1" EDITORDER="6 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120108" CHANGEDBY="FEMIA" CHANGEDON="20120120" MTDTYPE="0" MTDDECLTYP="0" R3RELEASE="702" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_STYLE_STRIPPED" SCONAME="I_ALIGNMENT" VERSION="1" LANGU="E" DESCRIPT="Alignment" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120108" CHANGEDBY="FEMIA" CHANGEDON="20120120" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_ALIGNMENT" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_STYLE_STRIPPED" SCONAME="I_INTTYPE" VERSION="1" LANGU="E" DESCRIPT="ABAP data type (C,D,N,...)" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="INTTYPE" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_STYLE_STRIPPED" SCONAME="R_STYLE" VERSION="1" LANGU="E" DESCRIPT="Style identifier" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_STYLE"/>
<source>method CREATE_STYLE_STRIPPED.
data: lo_style type ref to zcl_excel_style.
lo_style = wo_excel-&gt;add_new_style( ).
lo_style-&gt;fill-&gt;filltype = zcl_excel_style_fill=&gt;c_fill_solid.
lo_style-&gt;fill-&gt;fgcolor-rgb = &apos;FFDBE5F1&apos;.
if i_alignment is supplied and i_alignment is not initial.
lo_style-&gt;alignment-&gt;horizontal = i_alignment.
endif.
if i_inttype is supplied and i_inttype is not initial.
case i_inttype.
when cl_abap_typedescr=&gt;typekind_date.
lo_style-&gt;number_format-&gt;format_code = wo_worksheet-&gt;get_default_excel_date_format( ).
when cl_abap_typedescr=&gt;typekind_time.
lo_style-&gt;number_format-&gt;format_code = zcl_excel_style_number_format=&gt;c_format_date_time6.
endcase.
endif.
r_style = lo_style-&gt;get_guid( ) .
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_STYLE_TOTAL" VERSION="1" LANGU="E" DESCRIPT="Create totals style" EXPOSURE="0" STATE="1" EDITORDER="7 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120108" CHANGEDBY="FEMIA" CHANGEDON="20120120" MTDTYPE="0" MTDDECLTYP="0" R3RELEASE="702" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_STYLE_TOTAL" SCONAME="I_ALIGNMENT" VERSION="1" LANGU="E" DESCRIPT="Alignment" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120108" CHANGEDBY="FEMIA" CHANGEDON="20120120" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_ALIGNMENT" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_STYLE_TOTAL" SCONAME="I_INTTYPE" VERSION="1" LANGU="E" DESCRIPT="ABAP data type (C,D,N,...)" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="INTTYPE" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_STYLE_TOTAL" SCONAME="R_STYLE" VERSION="1" LANGU="E" DESCRIPT="Globally Unique Identifier" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_STYLE"/>
<source>method CREATE_STYLE_TOTAL.
data: lo_style type ref to zcl_excel_style.
lo_style = wo_excel-&gt;add_new_style( ).
create object lo_style-&gt;borders-&gt;top.
lo_style-&gt;borders-&gt;top-&gt;border_style = zcl_excel_style_border=&gt;c_border_thin.
lo_style-&gt;borders-&gt;top-&gt;border_color-rgb = zcl_excel_style_color=&gt;c_black.
create object lo_style-&gt;borders-&gt;right.
lo_style-&gt;borders-&gt;right-&gt;border_style = zcl_excel_style_border=&gt;c_border_none.
lo_style-&gt;borders-&gt;right-&gt;border_color-rgb = zcl_excel_style_color=&gt;c_black.
create object lo_style-&gt;borders-&gt;down.
lo_style-&gt;borders-&gt;down-&gt;border_style = zcl_excel_style_border=&gt;c_border_double.
lo_style-&gt;borders-&gt;down-&gt;border_color-rgb = zcl_excel_style_color=&gt;c_black.
create object lo_style-&gt;borders-&gt;left.
lo_style-&gt;borders-&gt;left-&gt;border_style = zcl_excel_style_border=&gt;c_border_none.
lo_style-&gt;borders-&gt;left-&gt;border_color-rgb = zcl_excel_style_color=&gt;c_black.
if i_alignment is supplied and i_alignment is not initial.
lo_style-&gt;alignment-&gt;horizontal = i_alignment.
endif.
if i_inttype is supplied and i_inttype is not initial.
case i_inttype.
when cl_abap_typedescr=&gt;typekind_date.
lo_style-&gt;number_format-&gt;format_code = wo_worksheet-&gt;get_default_excel_date_format( ).
when cl_abap_typedescr=&gt;typekind_time.
lo_style-&gt;number_format-&gt;format_code = zcl_excel_style_number_format=&gt;c_format_date_time6.
endcase.
endif.
r_style = lo_style-&gt;get_guid( ) .
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_TABLE" VERSION="1" LANGU="E" DESCRIPT="Create table based on fieldcatalog" EXPOSURE="0" STATE="1" EDITORDER="9 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120108" CHANGEDBY="FEMIA" CHANGEDON="20120120" MTDTYPE="0" MTDDECLTYP="0" R3RELEASE="702" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_TABLE" SCONAME="IT_TABLE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120108" CHANGEDBY="FEMIA" CHANGEDON="20120120" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STANDARD TABLE"/>
<source>method CREATE_TABLE.
data: lo_data type ref to data.
data: lo_addit type ref to cl_abap_elemdescr,
lt_components_tab type cl_abap_structdescr=&gt;component_table,
ls_components type abap_componentdescr,
lo_table type ref to cl_abap_tabledescr,
lo_struc type ref to cl_abap_structdescr.
field-symbols: &lt;fs_scat&gt; type zexcel_s_converter_fcat,
&lt;fs_stab&gt; type any,
&lt;fs_ttab&gt; type standard table,
&lt;fs&gt; type any.
sort wt_fieldcatalog by position.
read table it_table assigning &lt;fs_stab&gt; index 1.
if sy-subrc eq 0 .
loop at wt_fieldcatalog assigning &lt;fs_scat&gt;.
assign component &lt;fs_scat&gt;-columnname of structure &lt;fs_stab&gt; to &lt;fs&gt;.
if sy-subrc = 0.
ls_components-name = &lt;fs_scat&gt;-columnname.
lo_addit ?= cl_abap_typedescr=&gt;describe_by_data( &lt;fs&gt; ).
ls_components-type = lo_addit .
insert ls_components into table lt_components_tab.
endif.
endloop.
&quot;create new line type
lo_struc = cl_abap_structdescr=&gt;create( lt_components_tab ).
lo_table = cl_abap_tabledescr=&gt;create( lo_struc ).
create data wo_data type handle lo_table.
create data lo_data type handle lo_struc.
assign wo_data-&gt;* to &lt;fs_ttab&gt;.
assign lo_data-&gt;* to &lt;fs_stab&gt;.
loop at it_table assigning &lt;fs&gt;.
clear &lt;fs_stab&gt;.
move-corresponding &lt;fs&gt; to &lt;fs_stab&gt;.
append &lt;fs_stab&gt; to &lt;fs_ttab&gt;.
endloop.
endif.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_WORKSHEET" VERSION="1" LANGU="E" DESCRIPT="Create table in worksheet" EXPOSURE="0" STATE="1" EDITORDER="10 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120108" CHANGEDBY="FEMIA" CHANGEDON="20120120" MTDTYPE="0" MTDDECLTYP="0" R3RELEASE="702" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_WORKSHEET" SCONAME="I_TABLE" VERSION="1" LANGU="E" DESCRIPT="Create as TABLE in workbook" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="FLAG" PARVALUE="&apos;X&apos;" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="CREATE_WORKSHEET" SCONAME="I_STYLE_TABLE" VERSION="1" LANGU="E" DESCRIPT="Name of the table style" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_TABLE_STYLE"/>
<source>method CREATE_WORKSHEET.
if wo_data is bound and wo_worksheet is bound.
if i_table = abap_true.
bind_table( i_style_table = i_style_table ) .
else.
bind_cells( ) .
endif.
endif.
wo_worksheet-&gt;zif_excel_sheet_properties~zoomscale = 100.
wo_worksheet-&gt;zif_excel_sheet_properties~zoomscale_normal = 100.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="EXECUTE_CONVERTER" VERSION="1" LANGU="E" DESCRIPT="Execute the converter based on object provided" EXPOSURE="0" STATE="1" EDITORDER="11 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" R3RELEASE="702" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="EXECUTE_CONVERTER" SCONAME="IO_OBJECT" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="OBJECT"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="EXECUTE_CONVERTER" SCONAME="IT_TABLE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STANDARD TABLE"/>
<exception CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="EXECUTE_CONVERTER" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120"/>
<source>method EXECUTE_CONVERTER.
data: lt_fieldcatalog type zexcel_t_fieldcatalog,
ls_fieldcatalog type zexcel_s_converter_fcat,
lo_if type ref to zif_excel_converter,
ls_types type ts_alv_types,
lo_addit type ref to cl_abap_classdescr.
if io_object is bound.
try.
lo_addit ?= cl_abap_typedescr=&gt;describe_by_object_ref( io_object ).
catch cx_sy_move_cast_error.
raise exception type zcx_excel.
endtry.
ls_types-seoclass = lo_addit-&gt;get_relative_name( ).
read table wt_objects into ls_types with table key seoclass = ls_types-seoclass.
if sy-subrc = 0.
create object lo_if type (ls_types-clsname).
try.
lo_if-&gt;create_fieldcatalog(
exporting
io_object = io_object
it_table = it_table
importing
es_layout = ws_layout
et_fieldcatalog = wt_fieldcatalog
).
endtry.
else.
raise exception type zcx_excel.
endif.
else.
refresh wt_fieldcatalog.
endif.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="GET_FILE" VERSION="1" LANGU="E" DESCRIPT="Create excel file" EXPOSURE="2" STATE="1" EDITORDER="3 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" MTDTYPE="0" MTDDECLTYP="0" R3RELEASE="702" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="GET_FILE" SCONAME="E_BYTECOUNT" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="I"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="GET_FILE" SCONAME="ET_FILE" VERSION="1" LANGU="E" DESCRIPT="GBT: SOLIX as Table Type" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="SOLIX_TAB"/>
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="GET_FILE" SCONAME="E_FILE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="XSTRING"/>
<source>method GET_FILE.
data: lo_excel_writer type ref to zif_excel_writer,
lo_excel type ref to zcl_excel.
data: ls_seoclass type seoclass.
if wo_excel is bound.
create object lo_excel_writer type zcl_excel_writer_2007.
e_file = lo_excel_writer-&gt;write_file( wo_excel ).
select single * into ls_seoclass
from seoclass
where clsname = &apos;CL_BCS_CONVERT&apos;.
if sy-subrc = 0.
call method (ls_seoclass-clsname)=&gt;xstring_to_solix
exporting
iv_xstring = e_file
receiving
et_solix = et_file.
e_bytecount = xstrlen( e_file ).
else.
&quot; Convert to binary
call function &apos;SCMS_XSTRING_TO_BINARY&apos;
exporting
buffer = e_file
importing
output_length = e_bytecount
tables
binary_tab = et_file.
endif.
endif.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="OPEN_FILE" VERSION="1" LANGU="E" DESCRIPT="Open excel file" EXPOSURE="2" STATE="1" EDITORDER="4 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" MTDTYPE="0" MTDDECLTYP="0" R3RELEASE="702" BCMTDCAT="00" BCMTDSYN="0">
<source>method OPEN_FILE.
data: l_bytecount type i,
lt_file type solix_tab,
l_dir type string,
l_sep type c.
field-symbols: &lt;fs_data&gt; type any table.
assign wo_data-&gt;* to &lt;fs_data&gt;.
* catch zcx_excel .
*endtry.
if wo_excel is bound.
get_file( importing e_bytecount = l_bytecount
et_file = lt_file ) .
l_dir = create_path( ) .
cl_gui_frontend_services=&gt;gui_download( exporting bin_filesize = l_bytecount
filename = l_dir
filetype = &apos;BIN&apos;
changing data_tab = lt_file ).
cl_gui_frontend_services=&gt;execute(
exporting
document = l_dir
* application =
* parameter =
* default_directory =
* maximized =
* minimized =
* synchronous =
* operation = &apos;OPEN&apos;
exceptions
cntl_error = 1
error_no_gui = 2
bad_parameter = 3
file_not_found = 4
path_not_found = 5
file_extension_unknown = 6
error_execute_failed = 7
synchronous_failed = 8
not_supported_by_gui = 9
).
if sy-subrc &lt;&gt; 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
endif.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="SET_FIELDCATALOG" VERSION="1" LANGU="E" DESCRIPT="Set fieldcatalog from table" EXPOSURE="0" STATE="1" EDITORDER="12 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" MTDTYPE="0" MTDDECLTYP="0" R3RELEASE="702" BCMTDCAT="00" BCMTDSYN="0">
<source>method SET_FIELDCATALOG.
data: lt_fieldcat type zexcel_t_fieldcatalog,
ls_fieldcat type zexcel_s_fieldcatalog,
ls_fcat type zexcel_s_converter_fcat.
field-symbols: &lt;fs_tab&gt; type any table.
assign wo_data-&gt;* to &lt;fs_tab&gt; .
lt_fieldcat = zcl_excel_common=&gt;get_fieldcatalog( ip_table = &lt;fs_tab&gt; ).
loop at lt_fieldcat into ls_fieldcat.
move-corresponding ls_fieldcat to ls_fcat.
insert ls_fcat into table wt_fieldcatalog.
endloop.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="WRITE_FILE" VERSION="1" LANGU="E" DESCRIPT="Write excel file" EXPOSURE="2" STATE="1" EDITORDER="5 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" MTDTYPE="0" MTDDECLTYP="0" R3RELEASE="702" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_CONVERTER" CMPNAME="WRITE_FILE" SCONAME="I_PATH" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING" PAROPTIONL="X"/>
<source>method WRITE_FILE.
data: l_bytecount type i,
lt_file type solix_tab,
l_dir type string.
field-symbols: &lt;fs_data&gt; type any table.
assign wo_data-&gt;* to &lt;fs_data&gt;.
* catch zcx_excel .
*endtry.
if wo_excel is bound.
get_file( importing e_bytecount = l_bytecount
et_file = lt_file ) .
if i_path is initial.
l_dir = create_path( ) .
else.
l_dir = i_path.
endif.
cl_gui_frontend_services=&gt;gui_download( exporting bin_filesize = l_bytecount
filename = l_dir
filetype = &apos;BIN&apos;
changing data_tab = lt_file ).
endif.
endmethod.</source>
</method>
</CLAS>

View File

@ -0,0 +1,208 @@
<?xml version="1.0" encoding="utf-16"?>
<CLAS CLSNAME="ZCL_EXCEL_CONVERTER_ALV_GRID" VERSION="1" LANGU="E" DESCRIPT="SALV converter" UUID="4F037FA9DF490087E1008000C008015A" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" AUTHOR="RTURNHEIM" CREATEDON="20120106" CHANGEDBY="FEMIA" CHANGEDON="20120120" CHGDANYON="00000000" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" R3RELEASE="702" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<implementing CLSNAME="ZCL_EXCEL_CONVERTER_ALV_GRID" REFCLSNAME="ZIF_EXCEL_CONVERTER" VERSION="1" EXPOSURE="2" STATE="1" AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" RELTYPE="1" EDITORDER="0 "/>
<publicSection>class ZCL_EXCEL_CONVERTER_ALV_GRID definition
public
final
create public .
*&quot;* public components of class ZCL_EXCEL_CONVERTER_ALV_GRID
*&quot;* do not include other source files here!!!
public section.
interfaces ZIF_EXCEL_CONVERTER .
aliases CAN_CONVERT_OBJECT
for ZIF_EXCEL_CONVERTER~CAN_CONVERT_OBJECT .
aliases CREATE_FIELDCATALOG
for ZIF_EXCEL_CONVERTER~CREATE_FIELDCATALOG .</publicSection>
<protectedSection>*&quot;* protected components of class ZCL_EXCEL_CONVERTER_ALV_GRID
*&quot;* do not include other source files here!!!
protected section.</protectedSection>
<privateSection>*&quot;* private components of class ZCL_EXCEL_CONVERTER_ALV_GRID
*&quot;* do not include other source files here!!!
private section.</privateSection>
<localImplementation>*&quot;* local class implementation for public class
*&quot;* use this source file for the implementation part of
*&quot;* local helper classes</localImplementation>
<localTypes>*&quot;* use this source file for any type declarations (class
*&quot;* definitions, interfaces or data types) you need for method
*&quot;* implementation or private method&apos;s signature</localTypes>
<localMacros>*&quot;* use this source file for any macro definitions you need
*&quot;* in the implementation part of the class</localMacros>
<interfaceMethod CLSNAME="ZCL_EXCEL_CONVERTER_ALV_GRID" CPDNAME="ZIF_EXCEL_CONVERTER~CAN_CONVERT_OBJECT">
<source>method ZIF_EXCEL_CONVERTER~CAN_CONVERT_OBJECT.
data: lo_alv type REF TO cl_gui_alv_grid.
try.
lo_alv ?= io_object.
catch cx_sy_move_cast_error .
raise exception type zcx_excel.
endtry.
endmethod.</source>
</interfaceMethod>
<interfaceMethod CLSNAME="ZCL_EXCEL_CONVERTER_ALV_GRID" CPDNAME="ZIF_EXCEL_CONVERTER~CREATE_FIELDCATALOG">
<source>method ZIF_EXCEL_CONVERTER~CREATE_FIELDCATALOG.
data: lo_alv type ref to cl_gui_alv_grid.
data: ls_converter_fcat type zexcel_s_converter_fcat,
lt_fcat type lvc_t_fcat,
ls_fcat type lvc_s_fcat,
ls_layout type lvc_s_layo.
field-symbols: &lt;fs_stable&gt; type any.
try.
can_convert_object( io_object = io_object ).
endtry.
lo_alv ?= io_object.
clear: es_layout,
et_fieldcatalog.
if lo_alv is bound.
lo_alv-&gt;get_frontend_fieldcatalog( importing et_fieldcatalog = lt_fcat ).
lo_alv-&gt;get_frontend_layout( importing es_layout = ls_layout ).
if ls_layout-zebra is not initial.
es_layout-is_stripped = abap_true.
endif.
if ls_layout-no_keyfix is initial or
ls_layout-no_keyfix = &apos;0&apos;.
es_layout-is_fixed = abap_true.
endif.
loop at lt_fcat into ls_fcat.
clear ls_converter_fcat.
if ls_fcat-tech = abap_false.
ls_converter_fcat-tabname = ls_fcat-tabname.
ls_converter_fcat-fieldname = ls_fcat-fieldname .
ls_converter_fcat-columnname = ls_fcat-fieldname .
ls_converter_fcat-position = ls_fcat-col_pos.
ls_converter_fcat-inttype = ls_fcat-inttype.
ls_converter_fcat-scrtext_s = ls_fcat-scrtext_s .
ls_converter_fcat-scrtext_m = ls_fcat-scrtext_m .
ls_converter_fcat-scrtext_l = ls_fcat-scrtext_l.
if ls_fcat-do_sum is not initial.
ls_converter_fcat-totals_function = zcl_excel_table=&gt;totals_function_sum.
endif.
ls_converter_fcat-fix_column = ls_fcat-fix_column.
if ls_layout-cwidth_opt is initial.
if ls_fcat-col_opt is not initial.
ls_converter_fcat-is_optimized = abap_true.
endif.
else.
ls_converter_fcat-is_optimized = abap_true.
endif.
if ls_fcat-no_out is not initial.
clear ls_converter_fcat-is_visible.
else.
ls_converter_fcat-is_visible = abap_true.
endif.
case ls_fcat-just.
when &apos;R&apos;.
ls_converter_fcat-alignment = zcl_excel_style_alignment=&gt;c_horizontal_right.
when &apos;L&apos;.
ls_converter_fcat-alignment = zcl_excel_style_alignment=&gt;c_horizontal_left.
when &apos;C&apos;.
ls_converter_fcat-alignment = zcl_excel_style_alignment=&gt;c_horizontal_center.
when others.
clear ls_converter_fcat-alignment.
endcase.
append ls_converter_fcat to et_fieldcatalog.
endif.
endloop.
endif.
endmethod.</source>
</interfaceMethod>
<method CLSNAME="ZCL_EXCEL_CONVERTER_ALV_GRID" CMPNAME="CAN_CONVERT_OBJECT" VERSION="1" LANGU="E" ALIAS="X" EXPOSURE="2" STATE="1" EDITORDER="0 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" MTDTYPE="0" MTDDECLTYP="0" REFCLSNAME="ZIF_EXCEL_CONVERTER" REFCMPNAME="CAN_CONVERT_OBJECT" R3RELEASE="702" BCMTDCAT="00" BCMTDSYN="0">
<parameter VERSION="0" CMPTYPE="0" MTDTYPE="0" EDITORDER="0 " DISPID="0 " CREATEDON="00000000" CHANGEDON="00000000" PARDECLTYP="0" PARPASSTYP="0" TYPTYPE="0"/>
<exception CLSNAME="ZIF_EXCEL_CONVERTER" CMPNAME="CAN_CONVERT_OBJECT" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDON="00000000"/>
<source>method ZIF_EXCEL_CONVERTER~CAN_CONVERT_OBJECT.
data: lo_alv type REF TO cl_gui_alv_grid.
try.
lo_alv ?= io_object.
catch cx_sy_move_cast_error .
raise exception type zcx_excel.
endtry.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER_ALV_GRID" CMPNAME="CREATE_FIELDCATALOG" VERSION="1" LANGU="E" ALIAS="X" EXPOSURE="2" STATE="1" EDITORDER="0 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" MTDTYPE="0" MTDDECLTYP="0" REFCLSNAME="ZIF_EXCEL_CONVERTER" REFCMPNAME="CREATE_FIELDCATALOG" R3RELEASE="702" BCMTDCAT="00" BCMTDSYN="0">
<parameter VERSION="0" CMPTYPE="0" MTDTYPE="0" EDITORDER="0 " DISPID="0 " CREATEDON="00000000" CHANGEDON="00000000" PARDECLTYP="0" PARPASSTYP="0" TYPTYPE="0"/>
<parameter VERSION="0" CMPTYPE="0" MTDTYPE="0" EDITORDER="0 " DISPID="0 " CREATEDON="00000000" CHANGEDON="00000000" PARDECLTYP="0" PARPASSTYP="0" TYPTYPE="0"/>
<parameter VERSION="0" CMPTYPE="0" MTDTYPE="0" EDITORDER="0 " DISPID="0 " CREATEDON="00000000" CHANGEDON="00000000" PARDECLTYP="0" PARPASSTYP="0" TYPTYPE="0"/>
<parameter VERSION="0" CMPTYPE="0" MTDTYPE="0" EDITORDER="0 " DISPID="0 " CREATEDON="00000000" CHANGEDON="00000000" PARDECLTYP="0" PARPASSTYP="0" TYPTYPE="0"/>
<exception CLSNAME="ZIF_EXCEL_CONVERTER" CMPNAME="CREATE_FIELDCATALOG" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDON="00000000"/>
<source>method ZIF_EXCEL_CONVERTER~CREATE_FIELDCATALOG.
data: lo_alv type ref to cl_gui_alv_grid.
data: ls_converter_fcat type zexcel_s_converter_fcat,
lt_fcat type lvc_t_fcat,
ls_fcat type lvc_s_fcat,
ls_layout type lvc_s_layo.
field-symbols: &lt;fs_stable&gt; type any.
try.
can_convert_object( io_object = io_object ).
endtry.
lo_alv ?= io_object.
clear: es_layout,
et_fieldcatalog.
if lo_alv is bound.
lo_alv-&gt;get_frontend_fieldcatalog( importing et_fieldcatalog = lt_fcat ).
lo_alv-&gt;get_frontend_layout( importing es_layout = ls_layout ).
if ls_layout-zebra is not initial.
es_layout-is_stripped = abap_true.
endif.
if ls_layout-no_keyfix is initial or
ls_layout-no_keyfix = &apos;0&apos;.
es_layout-is_fixed = abap_true.
endif.
loop at lt_fcat into ls_fcat.
clear ls_converter_fcat.
if ls_fcat-tech = abap_false.
ls_converter_fcat-tabname = ls_fcat-tabname.
ls_converter_fcat-fieldname = ls_fcat-fieldname .
ls_converter_fcat-columnname = ls_fcat-fieldname .
ls_converter_fcat-position = ls_fcat-col_pos.
ls_converter_fcat-inttype = ls_fcat-inttype.
ls_converter_fcat-scrtext_s = ls_fcat-scrtext_s .
ls_converter_fcat-scrtext_m = ls_fcat-scrtext_m .
ls_converter_fcat-scrtext_l = ls_fcat-scrtext_l.
if ls_fcat-do_sum is not initial.
ls_converter_fcat-totals_function = zcl_excel_table=&gt;totals_function_sum.
endif.
ls_converter_fcat-fix_column = ls_fcat-fix_column.
if ls_layout-cwidth_opt is initial.
if ls_fcat-col_opt is not initial.
ls_converter_fcat-is_optimized = abap_true.
endif.
else.
ls_converter_fcat-is_optimized = abap_true.
endif.
if ls_fcat-no_out is not initial.
clear ls_converter_fcat-is_visible.
else.
ls_converter_fcat-is_visible = abap_true.
endif.
case ls_fcat-just.
when &apos;R&apos;.
ls_converter_fcat-alignment = zcl_excel_style_alignment=&gt;c_horizontal_right.
when &apos;L&apos;.
ls_converter_fcat-alignment = zcl_excel_style_alignment=&gt;c_horizontal_left.
when &apos;C&apos;.
ls_converter_fcat-alignment = zcl_excel_style_alignment=&gt;c_horizontal_center.
when others.
clear ls_converter_fcat-alignment.
endcase.
append ls_converter_fcat to et_fieldcatalog.
endif.
endloop.
endif.
endmethod.</source>
</method>
</CLAS>

View File

@ -0,0 +1,286 @@
<?xml version="1.0" encoding="utf-16"?>
<CLAS CLSNAME="ZCL_EXCEL_CONVERTER_SALV_TABLE" VERSION="1" LANGU="E" DESCRIPT="SALV converter" UUID="4F03DFB5DA5D00BFE1008000C008015A" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" AUTHOR="RTURNHEIM" CREATEDON="20120106" CHANGEDBY="FEMIA" CHANGEDON="20120120" CHGDANYON="00000000" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" R3RELEASE="702" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<implementing CLSNAME="ZCL_EXCEL_CONVERTER_SALV_TABLE" REFCLSNAME="ZIF_EXCEL_CONVERTER" VERSION="1" EXPOSURE="2" STATE="1" AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" RELTYPE="1" EDITORDER="0 "/>
<publicSection>class ZCL_EXCEL_CONVERTER_SALV_TABLE definition
public
final
create public .
*&quot;* public components of class ZCL_EXCEL_CONVERTER_SALV_TABLE
*&quot;* do not include other source files here!!!
public section.
interfaces ZIF_EXCEL_CONVERTER .
aliases CAN_CONVERT_OBJECT
for ZIF_EXCEL_CONVERTER~CAN_CONVERT_OBJECT .
aliases CREATE_FIELDCATALOG
for ZIF_EXCEL_CONVERTER~CREATE_FIELDCATALOG .</publicSection>
<protectedSection>*&quot;* protected components of class ZCL_EXCEL_CONVERTER_SALV_TABLE
*&quot;* do not include other source files here!!!
protected section.</protectedSection>
<privateSection>*&quot;* private components of class ZCL_EXCEL_CONVERTER_SALV_TABLE
*&quot;* do not include other source files here!!!
private section.</privateSection>
<localImplementation>*&quot;* local class implementation for public class
*&quot;* use this source file for the implementation part of
*&quot;* local helper classes</localImplementation>
<localTypes>*&quot;* use this source file for any type declarations (class
*&quot;* definitions, interfaces or data types) you need for method
*&quot;* implementation or private method&apos;s signature</localTypes>
<localMacros>*&quot;* use this source file for any macro definitions you need
*&quot;* in the implementation part of the class</localMacros>
<interfaceMethod CLSNAME="ZCL_EXCEL_CONVERTER_SALV_TABLE" CPDNAME="ZIF_EXCEL_CONVERTER~CAN_CONVERT_OBJECT">
<source>method ZIF_EXCEL_CONVERTER~CAN_CONVERT_OBJECT.
data: lo_salv type ref to cl_salv_table.
try.
lo_salv ?= io_object.
catch cx_sy_move_cast_error .
raise exception type zcx_excel.
endtry.
endmethod.</source>
</interfaceMethod>
<interfaceMethod CLSNAME="ZCL_EXCEL_CONVERTER_SALV_TABLE" CPDNAME="ZIF_EXCEL_CONVERTER~CREATE_FIELDCATALOG">
<source>method ZIF_EXCEL_CONVERTER~CREATE_FIELDCATALOG.
data: lo_salv type ref to cl_salv_table.
data: lo_columns type ref to cl_salv_columns_table,
lo_column type ref to cl_salv_column_table,
lo_aggregations type ref to cl_salv_aggregations,
lo_aggregation type ref to cl_salv_aggregation,
lo_sorts type ref to cl_salv_sorts,
lo_sort type ref to cl_salv_sort,
lo_display type ref to cl_salv_display_settings,
l_agre type salv_de_aggregation,
lt_column type salv_t_column_ref,
ls_column type salv_s_column_ref,
ls_fieldcatalog type zexcel_s_converter_fcat,
ls_ref type salv_s_ddic_reference,
l_alignment type salv_de_alignment,
l_fix type sap_bool,
l_optimized type sap_bool.
field-symbols: &lt;fs_stable&gt; type any.
try.
can_convert_object( io_object = io_object ).
endtry.
lo_salv ?= io_object.
clear: es_layout,
et_fieldcatalog.
if lo_salv is bound.
lo_columns = lo_salv-&gt;get_columns( ).
lt_column = lo_columns-&gt;get( ) .
lo_aggregations = lo_salv-&gt;get_aggregations( ) .
lo_display = lo_salv-&gt;get_display_settings( ) .
es_layout-is_stripped = lo_display-&gt;is_striped_pattern( ) .
l_optimized = lo_columns-&gt;is_optimized( ).
loop at lt_column into ls_column.
clear ls_fieldcatalog.
if ls_column-r_column-&gt;is_technical( ) = abap_false.
try.
lo_column ?= lo_columns-&gt;get_column( columnname = ls_column-columnname ).
catch cx_salv_not_found.
raise exception type zcx_excel.
endtry.
ls_ref = ls_column-r_column-&gt;get_ddic_reference( ).
ls_fieldcatalog-tabname = ls_ref-table.
ls_fieldcatalog-fieldname = ls_ref-field.
ls_fieldcatalog-columnname = ls_column-columnname.
try.
ls_fieldcatalog-position = lo_columns-&gt;get_column_position( columnname = ls_column-columnname ).
catch cx_salv_not_found.
raise exception type zcx_excel.
endtry.
ls_fieldcatalog-inttype = ls_column-r_column-&gt;get_ddic_inttype( ).
ls_fieldcatalog-scrtext_s = ls_column-r_column-&gt;get_short_text( ) .
ls_fieldcatalog-scrtext_m = ls_column-r_column-&gt;get_medium_text( ) .
ls_fieldcatalog-scrtext_l = ls_column-r_column-&gt;get_long_text( ).
try.
lo_aggregation = lo_aggregations-&gt;get_aggregation( columnname = ls_column-columnname ) .
catch cx_salv_not_found.
clear lo_aggregation.
endtry.
if lo_aggregation is bound.
l_agre = lo_aggregation-&gt;get( ).
case l_agre.
when if_salv_c_aggregation=&gt;total. &quot; Total
ls_fieldcatalog-totals_function = zcl_excel_table=&gt;totals_function_sum.
when if_salv_c_aggregation=&gt;minimum. &quot; Minimum
ls_fieldcatalog-totals_function = zcl_excel_table=&gt;totals_function_min.
when if_salv_c_aggregation=&gt;maximum. &quot; Maximum
ls_fieldcatalog-totals_function = zcl_excel_table=&gt;totals_function_max.
when if_salv_c_aggregation=&gt;average. &quot; Mean Value
ls_fieldcatalog-totals_function = zcl_excel_table=&gt;totals_function_average.
when others.
clear ls_fieldcatalog-totals_function.
endcase.
endif.
ls_fieldcatalog-is_visible = ls_column-r_column-&gt;is_visible( ).
ls_fieldcatalog-fix_column = lo_column-&gt;is_key( ).
l_fix = lo_column-&gt;is_key_presence_required( ).
if l_optimized = &apos;1&apos; or l_optimized = abap_true.
ls_fieldcatalog-is_optimized = abap_true.
else.
l_optimized = ls_column-r_column-&gt;is_optimized( ).
if l_optimized = &apos;1&apos; or l_optimized = abap_true.
ls_fieldcatalog-is_optimized = abap_true.
endif.
endif.
l_alignment = ls_column-r_column-&gt;get_alignment( ) .
case l_alignment.
when if_salv_c_alignment=&gt;left. &quot; Align left
ls_fieldcatalog-alignment = zcl_excel_style_alignment=&gt;c_horizontal_left.
when if_salv_c_alignment=&gt;right. &quot; Align right
ls_fieldcatalog-alignment = zcl_excel_style_alignment=&gt;c_horizontal_right.
when if_salv_c_alignment=&gt;centered. &quot; Centered
ls_fieldcatalog-alignment = zcl_excel_style_alignment=&gt;c_horizontal_center.
when others.
clear ls_fieldcatalog-alignment.
endcase.
append ls_fieldcatalog to et_fieldcatalog.
endif.
endloop.
if l_fix is not initial.
es_layout-is_fixed = abap_true.
endif.
endif.
endmethod.</source>
</interfaceMethod>
<method CLSNAME="ZCL_EXCEL_CONVERTER_SALV_TABLE" CMPNAME="CAN_CONVERT_OBJECT" VERSION="1" LANGU="E" ALIAS="X" EXPOSURE="2" STATE="1" EDITORDER="0 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" MTDTYPE="0" MTDDECLTYP="0" REFCLSNAME="ZIF_EXCEL_CONVERTER" REFCMPNAME="CAN_CONVERT_OBJECT" R3RELEASE="702" BCMTDCAT="00" BCMTDSYN="0">
<parameter VERSION="0" CMPTYPE="0" MTDTYPE="0" EDITORDER="0 " DISPID="0 " CREATEDON="00000000" CHANGEDON="00000000" PARDECLTYP="0" PARPASSTYP="0" TYPTYPE="0"/>
<exception CLSNAME="ZIF_EXCEL_CONVERTER" CMPNAME="CAN_CONVERT_OBJECT" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDON="00000000"/>
<source>method ZIF_EXCEL_CONVERTER~CAN_CONVERT_OBJECT.
data: lo_salv type ref to cl_salv_table.
try.
lo_salv ?= io_object.
catch cx_sy_move_cast_error .
raise exception type zcx_excel.
endtry.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_CONVERTER_SALV_TABLE" CMPNAME="CREATE_FIELDCATALOG" VERSION="1" LANGU="E" ALIAS="X" EXPOSURE="2" STATE="1" EDITORDER="0 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" MTDTYPE="0" MTDDECLTYP="0" REFCLSNAME="ZIF_EXCEL_CONVERTER" REFCMPNAME="CREATE_FIELDCATALOG" R3RELEASE="702" BCMTDCAT="00" BCMTDSYN="0">
<parameter VERSION="0" CMPTYPE="0" MTDTYPE="0" EDITORDER="0 " DISPID="0 " CREATEDON="00000000" CHANGEDON="00000000" PARDECLTYP="0" PARPASSTYP="0" TYPTYPE="0"/>
<parameter VERSION="0" CMPTYPE="0" MTDTYPE="0" EDITORDER="0 " DISPID="0 " CREATEDON="00000000" CHANGEDON="00000000" PARDECLTYP="0" PARPASSTYP="0" TYPTYPE="0"/>
<parameter VERSION="0" CMPTYPE="0" MTDTYPE="0" EDITORDER="0 " DISPID="0 " CREATEDON="00000000" CHANGEDON="00000000" PARDECLTYP="0" PARPASSTYP="0" TYPTYPE="0"/>
<parameter VERSION="0" CMPTYPE="0" MTDTYPE="0" EDITORDER="0 " DISPID="0 " CREATEDON="00000000" CHANGEDON="00000000" PARDECLTYP="0" PARPASSTYP="0" TYPTYPE="0"/>
<exception CLSNAME="ZIF_EXCEL_CONVERTER" CMPNAME="CREATE_FIELDCATALOG" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDON="00000000"/>
<source>method ZIF_EXCEL_CONVERTER~CREATE_FIELDCATALOG.
data: lo_salv type ref to cl_salv_table.
data: lo_columns type ref to cl_salv_columns_table,
lo_column type ref to cl_salv_column_table,
lo_aggregations type ref to cl_salv_aggregations,
lo_aggregation type ref to cl_salv_aggregation,
lo_sorts type ref to cl_salv_sorts,
lo_sort type ref to cl_salv_sort,
lo_display type ref to cl_salv_display_settings,
l_agre type salv_de_aggregation,
lt_column type salv_t_column_ref,
ls_column type salv_s_column_ref,
ls_fieldcatalog type zexcel_s_converter_fcat,
ls_ref type salv_s_ddic_reference,
l_alignment type salv_de_alignment,
l_fix type sap_bool,
l_optimized type sap_bool.
field-symbols: &lt;fs_stable&gt; type any.
try.
can_convert_object( io_object = io_object ).
endtry.
lo_salv ?= io_object.
clear: es_layout,
et_fieldcatalog.
if lo_salv is bound.
lo_columns = lo_salv-&gt;get_columns( ).
lt_column = lo_columns-&gt;get( ) .
lo_aggregations = lo_salv-&gt;get_aggregations( ) .
lo_display = lo_salv-&gt;get_display_settings( ) .
es_layout-is_stripped = lo_display-&gt;is_striped_pattern( ) .
l_optimized = lo_columns-&gt;is_optimized( ).
loop at lt_column into ls_column.
clear ls_fieldcatalog.
if ls_column-r_column-&gt;is_technical( ) = abap_false.
try.
lo_column ?= lo_columns-&gt;get_column( columnname = ls_column-columnname ).
catch cx_salv_not_found.
raise exception type zcx_excel.
endtry.
ls_ref = ls_column-r_column-&gt;get_ddic_reference( ).
ls_fieldcatalog-tabname = ls_ref-table.
ls_fieldcatalog-fieldname = ls_ref-field.
ls_fieldcatalog-columnname = ls_column-columnname.
try.
ls_fieldcatalog-position = lo_columns-&gt;get_column_position( columnname = ls_column-columnname ).
catch cx_salv_not_found.
raise exception type zcx_excel.
endtry.
ls_fieldcatalog-inttype = ls_column-r_column-&gt;get_ddic_inttype( ).
ls_fieldcatalog-scrtext_s = ls_column-r_column-&gt;get_short_text( ) .
ls_fieldcatalog-scrtext_m = ls_column-r_column-&gt;get_medium_text( ) .
ls_fieldcatalog-scrtext_l = ls_column-r_column-&gt;get_long_text( ).
try.
lo_aggregation = lo_aggregations-&gt;get_aggregation( columnname = ls_column-columnname ) .
catch cx_salv_not_found.
clear lo_aggregation.
endtry.
if lo_aggregation is bound.
l_agre = lo_aggregation-&gt;get( ).
case l_agre.
when if_salv_c_aggregation=&gt;total. &quot; Total
ls_fieldcatalog-totals_function = zcl_excel_table=&gt;totals_function_sum.
when if_salv_c_aggregation=&gt;minimum. &quot; Minimum
ls_fieldcatalog-totals_function = zcl_excel_table=&gt;totals_function_min.
when if_salv_c_aggregation=&gt;maximum. &quot; Maximum
ls_fieldcatalog-totals_function = zcl_excel_table=&gt;totals_function_max.
when if_salv_c_aggregation=&gt;average. &quot; Mean Value
ls_fieldcatalog-totals_function = zcl_excel_table=&gt;totals_function_average.
when others.
clear ls_fieldcatalog-totals_function.
endcase.
endif.
ls_fieldcatalog-is_visible = ls_column-r_column-&gt;is_visible( ).
ls_fieldcatalog-fix_column = lo_column-&gt;is_key( ).
l_fix = lo_column-&gt;is_key_presence_required( ).
if l_optimized = &apos;1&apos; or l_optimized = abap_true.
ls_fieldcatalog-is_optimized = abap_true.
else.
l_optimized = ls_column-r_column-&gt;is_optimized( ).
if l_optimized = &apos;1&apos; or l_optimized = abap_true.
ls_fieldcatalog-is_optimized = abap_true.
endif.
endif.
l_alignment = ls_column-r_column-&gt;get_alignment( ) .
case l_alignment.
when if_salv_c_alignment=&gt;left. &quot; Align left
ls_fieldcatalog-alignment = zcl_excel_style_alignment=&gt;c_horizontal_left.
when if_salv_c_alignment=&gt;right. &quot; Align right
ls_fieldcatalog-alignment = zcl_excel_style_alignment=&gt;c_horizontal_right.
when if_salv_c_alignment=&gt;centered. &quot; Centered
ls_fieldcatalog-alignment = zcl_excel_style_alignment=&gt;c_horizontal_center.
when others.
clear ls_fieldcatalog-alignment.
endcase.
append ls_fieldcatalog to et_fieldcatalog.
endif.
endloop.
if l_fix is not initial.
es_layout-is_fixed = abap_true.
endif.
endif.
endmethod.</source>
</method>
</CLAS>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-16"?>
<INTF CLSNAME="ZIF_EXCEL_CONVERTER" VERSION="1" LANGU="E" DESCRIPT="Converter Interface" UUID="0202322174CD1EE190F48086DDFC58B2" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" AUTHOR="RTURNHEIM" CREATEDON="20120102" CHANGEDON="00000000" CHGDANYON="00000000" UNICODE="X" R3RELEASE="702">
<method CLSNAME="ZIF_EXCEL_CONVERTER" CMPNAME="CAN_CONVERT_OBJECT" VERSION="1" LANGU="E" DESCRIPT="Can the object be handled?" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDON="00000000" MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" R3RELEASE="702" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZIF_EXCEL_CONVERTER" CMPNAME="CAN_CONVERT_OBJECT" SCONAME="IO_OBJECT" VERSION="1" LANGU="E" DESCRIPT="ALV object" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDON="00000000" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="OBJECT"/>
<exception CLSNAME="ZIF_EXCEL_CONVERTER" CMPNAME="CAN_CONVERT_OBJECT" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDON="00000000"/>
</method>
<method CLSNAME="ZIF_EXCEL_CONVERTER" CMPNAME="CREATE_FIELDCATALOG" VERSION="1" LANGU="E" DESCRIPT="Create FIELDCATALOG for table" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDON="00000000" MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" R3RELEASE="702" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZIF_EXCEL_CONVERTER" CMPNAME="CREATE_FIELDCATALOG" SCONAME="IO_OBJECT" VERSION="1" LANGU="E" DESCRIPT="ALV object" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDON="00000000" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="OBJECT"/>
<parameter CLSNAME="ZIF_EXCEL_CONVERTER" CMPNAME="CREATE_FIELDCATALOG" SCONAME="IT_TABLE" VERSION="1" LANGU="E" DESCRIPT="ALV data table" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDON="00000000" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STANDARD TABLE"/>
<parameter CLSNAME="ZIF_EXCEL_CONVERTER" CMPNAME="CREATE_FIELDCATALOG" SCONAME="ES_LAYOUT" VERSION="1" LANGU="E" DESCRIPT="Converter settings for table" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDON="00000000" PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_CONVERTER_LAYO"/>
<parameter CLSNAME="ZIF_EXCEL_CONVERTER" CMPNAME="CREATE_FIELDCATALOG" SCONAME="ET_FIELDCATALOG" VERSION="1" LANGU="E" DESCRIPT="Conter table for tabel fields" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDON="00000000" PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_T_CONVERTER_FCAT"/>
<exception CLSNAME="ZIF_EXCEL_CONVERTER" CMPNAME="CREATE_FIELDCATALOG" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDON="00000000"/>
</method>
</INTF>

View File

@ -1,75 +1,75 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL" VARCL="X" SUBC="1" CNAM="BCUSER" CDAT="20100817" UNAM="DEVELOPER" UDAT="20120103" VERN="000054" RSTAT="T" RMAND="000" RLOAD="E" FIXPT="X" SDATE="20120103" STIME="183556" IDATE="20120103" ITIME="183556" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="Run all ABAP2XLSX Demo Programs" LENGTH="31 "/>
<textElement ID="S" KEY="P_PATH" ENTRY=" Select output path" LENGTH="26 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_excel.
DATA: lv_workdir TYPE string.
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lv_workdir = p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = lv_workdir
CHANGING selected_folder = lv_workdir ).
p_path = lv_workdir.
INITIALIZATION.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
cl_gui_cfw=&gt;flush( ).
p_path = lv_workdir.
START-OF-SELECTION.
IF p_path IS INITIAL.
p_path = lv_workdir.
ENDIF.
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, page setup and sheet properties
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_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
SUBMIT zdemo_excel19 WITH p_path = p_path AND RETURN. &quot; Set active sheet
&quot; zdemo_excel20 is not added because it uses ALV and cannot be processed
SUBMIT zdemo_excel21 WITH p_path = p_path AND RETURN. &quot; Color Picker
SUBMIT zdemo_excel22 WITH p_path = p_path AND RETURN. &quot; Bind table with field catalog &amp; sheet style
SUBMIT zdemo_excel23 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: Multiple sheets with and w/o grid lines, print options
SUBMIT zdemo_excel24 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: Multiple sheets with different default date formats
SUBMIT zdemo_excel25 AND RETURN. &quot; abap2xlsx Demo: Create and xlsx on Application Server (could be executed in batch mode)
SUBMIT zdemo_excel26 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: Reader demo
SUBMIT zdemo_excel27 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: Conditional Formatting
SUBMIT zdemo_excel28 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: CSV writer
&quot; SUBMIT zdemo_excel29 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: Macro enabled workbook
SUBMIT zdemo_excel30 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: ABAP Cell data types
SUBMIT zdemo_excel31 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: Autosize Column with different Font sizes
&quot;
&quot; Reader/Writer Demo must always run at the end
&quot; to make sure all documents where created
&quot;
SUBMIT zdemo_excel15 WITH p_path = p_path AND RETURN. &quot; Read Excel and write it back</source>
</PROG>
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL" VARCL="X" SUBC="1" CNAM="BCUSER" CDAT="20100817" UNAM="FEMIA" UDAT="20120120" VERN="000057" RSTAT="T" RMAND="000" RLOAD="E" FIXPT="X" SDATE="20120120" STIME="210140" IDATE="20120120" ITIME="210140" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="Run all ABAP2XLSX Demo Programs" LENGTH="31 "/>
<textElement ID="S" KEY="P_PATH" ENTRY=" Select output path" LENGTH="26 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_excel.
DATA: lv_workdir TYPE string.
PARAMETERS: p_path TYPE zexcel_export_dir.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
lv_workdir = p_path.
cl_gui_frontend_services=&gt;directory_browse( EXPORTING initial_folder = lv_workdir
CHANGING selected_folder = lv_workdir ).
p_path = lv_workdir.
INITIALIZATION.
cl_gui_frontend_services=&gt;get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
cl_gui_cfw=&gt;flush( ).
p_path = lv_workdir.
START-OF-SELECTION.
IF p_path IS INITIAL.
p_path = lv_workdir.
ENDIF.
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, page setup and sheet properties
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_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
SUBMIT zdemo_excel19 WITH p_path = p_path AND RETURN. &quot; Set active sheet
&quot; zdemo_excel20 is not added because it uses ALV and cannot be processed (OLE2)
SUBMIT zdemo_excel21 WITH p_path = p_path AND RETURN. &quot; Color Picker
SUBMIT zdemo_excel22 WITH p_path = p_path AND RETURN. &quot; Bind table with field catalog &amp; sheet style
SUBMIT zdemo_excel23 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: Multiple sheets with and w/o grid lines, print options
SUBMIT zdemo_excel24 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: Multiple sheets with different default date formats
SUBMIT zdemo_excel25 AND RETURN. &quot; abap2xlsx Demo: Create and xlsx on Application Server (could be executed in batch mode)
&quot; zdemo_excel26 is not added because it uses ALV and cannot be processed (Native)
SUBMIT zdemo_excel27 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: Conditional Formatting
SUBMIT zdemo_excel28 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: CSV writer
&quot; SUBMIT zdemo_excel29 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: Macro enabled workbook
SUBMIT zdemo_excel30 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: ABAP Cell data types
SUBMIT zdemo_excel31 WITH p_path = p_path AND RETURN. &quot; abap2xlsx Demo: Autosize Column with different Font sizes
&quot;
&quot; Reader/Writer Demo must always run at the end
&quot; to make sure all documents where created
&quot;
SUBMIT zdemo_excel15 WITH p_path = p_path AND RETURN. &quot; Read Excel and write it back</source>
</PROG>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL20" VARCL="X" SUBC="1" CNAM="HUNGHM" CDAT="20101117" UNAM="FEMIA" UDAT="20110528" VERN="000043" RMAND="800" RLOAD="E" FIXPT="X" SDATE="20110528" STIME="181955" IDATE="20110528" ITIME="181955" UCCHECK="X">
<PROG NAME="ZDEMO_EXCEL20" VARCL="X" SUBC="1" CNAM="HUNGHM" CDAT="20101117" UNAM="FEMIA" UDAT="20120120" VERN="000045" RMAND="800" RLOAD="E" FIXPT="X" SDATE="20120120" STIME="212455" IDATE="20120120" ITIME="212455" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Bind ALV" LENGTH="24 "/>
@ -818,7 +818,7 @@ DATA: l_path TYPE string, &quot; local dir
lv_file_separator TYPE c.
CONSTANTS:
lv_default_file_name TYPE string VALUE &apos;20_BindAlv.xlsx&apos;.
lv_default_file_name TYPE string VALUE &apos;20_Bind_Alv_Ole2.xlsx&apos;.
*--------------------------------------------------------------------*
*START-OF-SELECTION
*--------------------------------------------------------------------*
@ -932,7 +932,7 @@ FORM export_to_excel.
* write to excel using method Bin_ALV
lo_worksheet-&gt;bind_alv(
lo_worksheet-&gt;bind_alv_ole2(
EXPORTING
* I_DOCUMENT_URL = SPACE &quot; excel template
* I_XLS = &apos;X&apos; &quot; create in xls format?

View File

@ -1,22 +1,375 @@
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL26" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100711" UNAM="DEVELOPER" UDAT="20111223" VERN="000070" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20111223" STIME="123104" IDATE="20111223" ITIME="123104" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Test Excel Reader (Now in ZDEMO_EXCEL15)" LENGTH="56 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="24 "/>
<textElement ID="S" KEY="P_READER" ENTRY=" Write back after using Reader" LENGTH="37 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL26
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_excel26.
* Gregor Wolf, 23.12.2011:
* Moved functionality to ZDEMO_EXCEL15</source>
</PROG>
<?xml version="1.0" encoding="utf-16"?>
<PROG NAME="ZDEMO_EXCEL26" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100711" UNAM="FEMIA" UDAT="20120120" VERN="000072" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20120120" STIME="205941" IDATE="20120120" ITIME="205941" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Test Excel Reader (Now in ZDEMO_EXCEL15)" LENGTH="56 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="24 "/>
<textElement ID="S" KEY="P_READER" ENTRY=" Write back after using Reader" LENGTH="37 "/>
</language>
</textPool>
<pfstatus>
<pfstatus_sta CODE="ALV_STATUS" MODAL="D" ACTCODE="000001" PFKCODE="000001" BUTCODE="0001" INT_NOTE="Standard for General List Output"/>
<pfstatus_fun CODE="%PC" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_EXPORT" ICON_ID="@49@" FUN_TEXT="Local file..."/>
<pfstatus_fun CODE="%SC" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_SEARCH" ICON_ID="@13@" FUN_TEXT="Find"/>
<pfstatus_fun CODE="%SC+" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_SEARCH_NEXT" ICON_ID="@4E@" FUN_TEXT="Find next"/>
<pfstatus_fun CODE="%SL" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Mail recipient"/>
<pfstatus_fun CODE="&amp;ABC" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="ABC Analysis"/>
<pfstatus_fun CODE="&amp;ALL" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_SELECT_ALL" ICON_ID="@4B@" FUN_TEXT="Select all"/>
<pfstatus_fun CODE="&amp;AQW" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Word processing..."/>
<pfstatus_fun CODE="&amp;AVE" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_ALV_VARIANT_SAVE" ICON_ID="@DN@" FUN_TEXT="Save layout..."/>
<pfstatus_fun CODE="&amp;CRB" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_TOTAL_LEFT" ICON_ID="@0B@" FUN_TEXT="First Column"/>
<pfstatus_fun CODE="&amp;CRE" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_TOTAL_RIGHT" ICON_ID="@0C@" FUN_TEXT="Last column"/>
<pfstatus_fun CODE="&amp;CRL" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_COLUMN_LEFT" ICON_ID="@0D@" FUN_TEXT="Column left"/>
<pfstatus_fun CODE="&amp;CRR" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_COLUMN_RIGHT" ICON_ID="@0E@" FUN_TEXT="Column right"/>
<pfstatus_fun CODE="&amp;EB9" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_TABLE_SETTINGS" ICON_ID="@36@" FUN_TEXT="Call Up Report"/>
<pfstatus_fun CODE="&amp;ETA" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_SELECT_DETAIL" ICON_ID="@16@" FUN_TEXT="Details"/>
<pfstatus_fun CODE="&amp;F03" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Back"/>
<pfstatus_fun CODE="&amp;F12" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_CANCEL" ICON_ID="@0W@" FUN_TEXT="Cancel"/>
<pfstatus_fun CODE="&amp;F15" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Exit"/>
<pfstatus_fun CODE="&amp;IC1" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_SELECT_DETAIL" ICON_ID="@16@" FUN_TEXT="Choose" PATH="S"/>
<pfstatus_fun CODE="&amp;ILD" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_FILTER_UNDO" ICON_ID="@GD@" FUN_TEXT="Delete Filter"/>
<pfstatus_fun CODE="&amp;ILT" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME=" ICON_FILTER" ICON_ID="@4G@" FUN_TEXT="Set filter"/>
<pfstatus_fun CODE="&amp;LFO" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_INFORMATION" ICON_ID="@0S@" FUN_TEXT="List status..."/>
<pfstatus_fun CODE="&amp;NFO" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_INFORMATION" ICON_ID="@0S@" FUN_TEXT="Selections..." INFO_TEXT="Selections"/>
<pfstatus_fun CODE="&amp;NTE" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Refresh"/>
<pfstatus_fun CODE="&amp;OAD" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_ALV_VARIANT_CHOOSE" ICON_ID="@DM@" FUN_TEXT="Select layout..."/>
<pfstatus_fun CODE="&amp;ODN" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_SORT_DOWN" ICON_ID="@3F@" FUN_TEXT="Sort in descendin."/>
<pfstatus_fun CODE="&amp;OL0" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_ALV_VARIANTS" ICON_ID="@LZ@" FUN_TEXT="Change layout..."/>
<pfstatus_fun CODE="&amp;OMP" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Collapse"/>
<pfstatus_fun CODE="&amp;OUP" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_SORT_UP" ICON_ID="@3E@" FUN_TEXT="Sort in Ascending..."/>
<pfstatus_fun CODE="&amp;RNT" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_PRINT" ICON_ID="@0X@" FUN_TEXT="Print"/>
<pfstatus_fun CODE="&amp;RNT_PREV" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Print preview"/>
<pfstatus_fun CODE="&amp;SAL" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_DESELECT_ALL" ICON_ID="@4D@" FUN_TEXT="Deselect all"/>
<pfstatus_fun CODE="&amp;SUM" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_INTERMEDIATE_SUM" ICON_ID="@5V@" FUN_TEXT="Subtotals..."/>
<pfstatus_fun CODE="&amp;UMC" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_SUM" ICON_ID="@3Z@" FUN_TEXT="Total"/>
<pfstatus_fun CODE="&amp;XML" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="XML Export..."/>
<pfstatus_fun CODE="&amp;XPA" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Expand"/>
<pfstatus_fun CODE="&amp;XXL" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Spreadsheet..."/>
<pfstatus_fun CODE="EXCEL" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_XLV" ICON_ID="@J3@" FUN_TEXT="Excel" ICON_TEXT="Export to Excel" INFO_TEXT="Export to Excel"/>
<pfstatus_fun CODE="P" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="First Page"/>
<pfstatus_fun CODE="P+" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_NEXT_PAGE" ICON_ID="@30@" FUN_TEXT="Next page"/>
<pfstatus_fun CODE="P++" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_LAST_PAGE" ICON_ID="@31@" FUN_TEXT="Last Page"/>
<pfstatus_fun CODE="P-" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_PREVIOUS_PAGE" ICON_ID="@2Z@" FUN_TEXT="Previous Page"/>
<pfstatus_fun CODE="P--" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_FIRST_PAGE" ICON_ID="@2Y@" FUN_TEXT="First Page"/>
<pfstatus_mtx CODE="000001" TEXT_TYPE="S" TEXT="List"/>
<pfstatus_mtx CODE="000002" TEXT_TYPE="S" TEXT="Edit"/>
<pfstatus_mtx CODE="000003" TEXT_TYPE="S" TEXT="Goto"/>
<pfstatus_mtx CODE="000004" TEXT_TYPE="S" TEXT="Settings"/>
<pfstatus_act CODE="000001" NO="01" MENUCODE="000001"/>
<pfstatus_act CODE="000001" NO="02" MENUCODE="000002"/>
<pfstatus_act CODE="000001" NO="03" MENUCODE="000003"/>
<pfstatus_act CODE="000001" NO="04" MENUCODE="000004"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="01" PFNO="39"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="02" PFNO="37"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="04" PFNO="05"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="05" PFNO="06"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="07" PFNO="28"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="08" PFNO="40"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="09" PFNO="29"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="10" PFNO="38"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="12" PFNO="30"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="13" PFNO="42"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="15" PFNO="45"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="17" PFNO="32"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="18" PFNO="33"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="19" PFNO="34"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="20" PFNO="09"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="22" PFNO="41"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="23" PFNO="07"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="25" PFNO="18"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="26" PFNO="26"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="27" PFNO="27"/>
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="28" PFNO="19"/>
<pfstatus_pfk CODE="000001" PFNO="02" FUNCODE="&amp;IC1" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="03" FUNCODE="&amp;F03" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="05" FUNCODE="&amp;ALL" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="06" FUNCODE="&amp;SAL" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="07" FUNCODE="&amp;NFO" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="08" FUNCODE="&amp;NTE" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="09" FUNCODE="EXCEL" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="12" FUNCODE="&amp;F12" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="15" FUNCODE="&amp;F15" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="18" FUNCODE="&amp;CRB" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="19" FUNCODE="&amp;CRE" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="21" FUNCODE="P" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="22" FUNCODE="P-" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="23" FUNCODE="P+" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="24" FUNCODE="P++" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="25" FUNCODE="&amp;ABC" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="26" FUNCODE="&amp;CRL" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="27" FUNCODE="&amp;CRR" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="28" FUNCODE="&amp;OUP" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="29" FUNCODE="&amp;ILT" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="30" FUNCODE="&amp;UMC" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="31" FUNCODE="%SL" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="32" FUNCODE="&amp;OL0" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="33" FUNCODE="&amp;OAD" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="34" FUNCODE="&amp;AVE" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="35" FUNCODE="&amp;XPA" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="37" FUNCODE="&amp;EB9" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="38" FUNCODE="&amp;ILD" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="39" FUNCODE="&amp;ETA" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="40" FUNCODE="&amp;ODN" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="41" FUNCODE="&amp;LFO" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="42" FUNCODE="&amp;SUM" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="43" FUNCODE="&amp;XXL" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="44" FUNCODE="&amp;AQW" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="45" FUNCODE="%PC" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="46" FUNCODE="&amp;RNT_PREV" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="47" FUNCODE="&amp;OMP" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="48" FUNCODE="&amp;XML" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="71" FUNCODE="%SC" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="80" FUNCODE="P--" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="81" FUNCODE="P-" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="82" FUNCODE="P+" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="83" FUNCODE="P++" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="84" FUNCODE="%SC+" FUNNO="001"/>
<pfstatus_pfk CODE="000001" PFNO="86" FUNCODE="&amp;RNT" FUNNO="001"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="%PC"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="%SC"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="%SC+"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="%SL"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;ABC"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;ALL"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;AQW"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;AVE"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;CRB"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;CRE"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;CRL"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;CRR"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;EB9"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;ETA"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;F03"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;F12"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;F15"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;IC1"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;ILD"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;ILT"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;LFO"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;NFO"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;NTE"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;OAD"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;ODN"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;OL0"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;OMP"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;OUP"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;RNT"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;RNT_PREV"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;SAL"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;SUM"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;UMC"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;XML"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;XPA"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&amp;XXL"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="EXCEL"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="P"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="P+"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="P++"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="P-"/>
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="P--"/>
<pfstatus_doc OBJ_TYPE="A" OBJ_CODE="000001" MODAL="D" INT_NOTE="Standard for General List Output"/>
<pfstatus_doc OBJ_TYPE="P" OBJ_CODE="000001" MODAL="D" INT_NOTE="Standard for General List Output"/>
<pfstatus_doc OBJ_TYPE="B" OBJ_CODE="000001" SUB_CODE="0001" MODAL="D" INT_NOTE="Standard for General List Output"/>
</pfstatus>
<source>*--------------------------------------------------------------------*
* REPORT ZDEMO_EXCEL26
* Demo for method zcl_excel_worksheet-bind_object:
* export data from ALV (CL_GUI_ALV_GRID) object or cl_salv_table object
* to Excel.
*--------------------------------------------------------------------*
report zdemo_excel26.
*----------------------------------------------------------------------*
* CLASS lcl_handle_events DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
class lcl_handle_events definition.
public section.
methods:
on_user_command for event added_function of cl_salv_events
importing e_salv_function.
endclass. &quot;lcl_handle_events DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_handle_events IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
class lcl_handle_events implementation.
method on_user_command.
perform user_command.&quot; using e_salv_function text-i08.
endmethod. &quot;on_user_command
endclass. &quot;lcl_handle_events IMPLEMENTATION
*--------------------------------------------------------------------*
* DATA DECLARATION
*--------------------------------------------------------------------*
data: lo_excel type ref to zcl_excel,
lo_worksheet type ref to zcl_excel_worksheet,
lo_salv type ref to cl_salv_table,
gr_events type ref to lcl_handle_events,
lr_events type ref to cl_salv_events_table,
gt_sbook type table of sbook.
data: l_path type string, &quot; local dir
lv_workdir type string,
lv_file_separator type c.
constants:
lv_default_file_name type string value &apos;26_Bind_ALV.xlsx&apos;.
*--------------------------------------------------------------------*
*START-OF-SELECTION
*--------------------------------------------------------------------*
start-of-selection.
* get data
* ------------------------------------------
select *
into table gt_sbook[]
from sbook &quot;#EC CI_NOWHERE
up to 10 rows.
* Display ALV
* ------------------------------------------
try.
cl_salv_table=&gt;factory(
exporting
list_display = abap_false
importing
r_salv_table = lo_salv
changing
t_table = gt_sbook[] ).
catch cx_salv_msg .
endtry.
try.
lo_salv-&gt;set_screen_status(
exporting
report = sy-repid
pfstatus = &apos;ALV_STATUS&apos;
set_functions = lo_salv-&gt;c_functions_all ).
catch cx_salv_msg .
endtry.
lr_events = lo_salv-&gt;get_event( ).
create object gr_events.
set handler gr_events-&gt;on_user_command for lr_events.
lo_salv-&gt;display( ).
*&amp;---------------------------------------------------------------------*
*&amp; Form USER_COMMAND
*&amp;---------------------------------------------------------------------*
* ALV user command
*--------------------------------------------------------------------*
form user_command .
if sy-ucomm = &apos;EXCEL&apos;.
* get save file path
cl_gui_frontend_services=&gt;get_sapgui_workdir( changing sapworkdir = l_path ).
cl_gui_cfw=&gt;flush( ).
cl_gui_frontend_services=&gt;directory_browse(
exporting initial_folder = l_path
changing selected_folder = l_path ).
if l_path is initial.
cl_gui_frontend_services=&gt;get_sapgui_workdir(
changing sapworkdir = lv_workdir ).
l_path = lv_workdir.
endif.
cl_gui_frontend_services=&gt;get_file_separator(
changing file_separator = lv_file_separator ).
concatenate l_path lv_file_separator lv_default_file_name
into l_path.
* export file to save file path
perform export_to_excel.
endif.
endform. &quot; USER_COMMAND
*--------------------------------------------------------------------*
* FORM EXPORT_TO_EXCEL
*--------------------------------------------------------------------*
* This subroutine is principal demo session
*--------------------------------------------------------------------*
form export_to_excel.
data: lo_converter type ref to zcl_excel_converter.
* create zcl_excel_worksheet object
create object lo_excel.
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Sheet1&apos; ).
* write to excel using method Bin_object
try.
lo_worksheet-&gt;bind_alv(
io_alv = lo_salv
it_table = gt_sbook
i_top = 2
i_left = 1
).
catch zcx_excel .
endtry.
perform write_file.
endform. &quot;EXPORT_TO_EXCEL
*&amp;---------------------------------------------------------------------*
*&amp; Form WRITE_FILE
*&amp;---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --&gt; p1 text
* &lt;-- p2 text
*----------------------------------------------------------------------*
form write_file .
data: lt_file type solix_tab,
l_bytecount type i,
l_file type xstring.
data: lo_excel_writer type ref to zif_excel_writer.
data: ls_seoclass type seoclass.
create object lo_excel_writer type zcl_excel_writer_2007.
l_file = lo_excel_writer-&gt;write_file( lo_excel ).
select single * into ls_seoclass
from seoclass
where clsname = &apos;CL_BCS_CONVERT&apos;.
if sy-subrc = 0.
call method (ls_seoclass-clsname)=&gt;xstring_to_solix
exporting
iv_xstring = l_file
receiving
et_solix = lt_file.
l_bytecount = xstrlen( l_file ).
else.
&quot; Convert to binary
call function &apos;SCMS_XSTRING_TO_BINARY&apos;
exporting
buffer = l_file
importing
output_length = l_bytecount
tables
binary_tab = lt_file.
endif.
cl_gui_frontend_services=&gt;gui_download( exporting bin_filesize = l_bytecount
filename = l_path
filetype = &apos;BIN&apos;
changing data_tab = lt_file ).
endform. &quot; WRITE_FILE</source>
</PROG>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-16"?>
<TABL TABNAME="ZEXCEL_S_CONVERTER_FCAT" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Field catalog for converter" AUTHCLASS="00" AS4USER="FEMIA" AS4DATE="20120120" AS4TIME="205544" PROZPUFF="000" EXCLASS="4">
<dd09l AS4VERS="0000" SCHFELDANZ="000" AS4DATE="00000000" AS4TIME="000000"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="TABNAME" DDLANGUAGE="E" POSITION="0001" ROLLNAME="TABNAME" CHECKTABLE="DD02L" ADMINFIELD="0" INTTYPE="C" INTLEN="000060" DOMNAME="AS4TAB" ROUTPUTLEN="000000" MEMORYID="DTB" HEADLEN="30" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000030" OUTPUTLEN="000030" DECIMALS="000000" ENTITYTAB="DD02L" MASK=" CHARE" MASKLEN="0000" DDTEXT="Table Name" REPTEXT="Table Name" SCRTEXT_S="Table" SCRTEXT_M="Table Name" SCRTEXT_L="Table Name" DOMNAME3L="AS4TAB" SHLPORIGIN="P" DEPTH="00" COMPTYPE="E" DEFFDNAME="TABNAME" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="FIELDNAME" DDLANGUAGE="E" POSITION="0002" ROLLNAME="FIELDNAME" CHECKTABLE="DD03L" ADMINFIELD="0" INTTYPE="C" INTLEN="000060" DOMNAME="FDNAME" ROUTPUTLEN="000000" MEMORYID="DFD" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="18" DTELMASTER="D" DATATYPE="CHAR" LENG="000030" OUTPUTLEN="000030" DECIMALS="000000" ENTITYTAB="DD03L" MASK=" CHARE" MASKLEN="0000" DDTEXT="Field Name" REPTEXT="Field Name" SCRTEXT_S="Field" SCRTEXT_M="Field Name" SCRTEXT_L="Field Name" DOMNAME3L="FDNAME" SHLPORIGIN="P" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="COLUMNNAME" DDLANGUAGE="E" POSITION="0003" ROLLNAME="FIELDNAME" ADMINFIELD="0" INTTYPE="C" INTLEN="000060" DOMNAME="FDNAME" ROUTPUTLEN="000000" MEMORYID="DFD" HEADLEN="10" SCRLEN1="10" SCRLEN2="15" SCRLEN3="18" DTELMASTER="D" DATATYPE="CHAR" LENG="000030" OUTPUTLEN="000030" DECIMALS="000000" ENTITYTAB="DD03L" MASK=" CHARE" MASKLEN="0000" DDTEXT="Field Name" REPTEXT="Field Name" SCRTEXT_S="Field" SCRTEXT_M="Field Name" SCRTEXT_L="Field Name" DOMNAME3L="FDNAME" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="POSITION" DDLANGUAGE="E" POSITION="0004" ROLLNAME="TABFDPOS" ADMINFIELD="0" INTTYPE="N" INTLEN="000008" DOMNAME="AS4POS" ROUTPUTLEN="000000" HEADLEN="06" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="NUMC" LENG="000004" OUTPUTLEN="000004" DECIMALS="000000" MASK=" NUMCE" MASKLEN="0000" DDTEXT="Position of the field in the table" REPTEXT="TabPos" SCRTEXT_S="Table pos." SCRTEXT_M="Table position" SCRTEXT_L="Table position" DOMNAME3L="AS4POS" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="INTTYPE" DDLANGUAGE="E" POSITION="0005" ROLLNAME="INTTYPE" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="INTTYPE" ROUTPUTLEN="000000" HEADLEN="30" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" LOWERCASE="X" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="ABAP data type (C,D,N,...)" REPTEXT="Ty." SCRTEXT_S="ABAP type" SCRTEXT_M="ABAP type" SCRTEXT_L="ABAP type" DOMNAME3L="INTTYPE" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="SCRTEXT_S" DDLANGUAGE="E" POSITION="0006" ROLLNAME="SCRTEXT_S" ADMINFIELD="0" INTTYPE="C" INTLEN="000020" DOMNAME="SCRTEXT_S" ROUTPUTLEN="000000" HEADLEN="30" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Short Field Label" REPTEXT="Short field label" SCRTEXT_S="Short" SCRTEXT_M="ShortFieldLabel" SCRTEXT_L="Short field label" DOMNAME3L="SCRTEXT_S" DEPTH="00" COMPTYPE="E" DEFFDNAME="SCRTEXT_S" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="SCRTEXT_M" DDLANGUAGE="E" POSITION="0007" ROLLNAME="SCRTEXT_M" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="SCRTEXT_M" ROUTPUTLEN="000000" HEADLEN="30" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Medium Field Label" REPTEXT="Medium Field Label" SCRTEXT_S="Medium" SCRTEXT_M="Medium Fld Labl" SCRTEXT_L="Medium Field Label" DOMNAME3L="SCRTEXT_M" DEPTH="00" COMPTYPE="E" DEFFDNAME="SCRTEXT_M" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="SCRTEXT_L" DDLANGUAGE="E" POSITION="0008" ROLLNAME="SCRTEXT_L" ADMINFIELD="0" INTTYPE="C" INTLEN="000080" DOMNAME="SCRTEXT_L" ROUTPUTLEN="000000" HEADLEN="30" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000040" OUTPUTLEN="000040" DECIMALS="000000" LOWERCASE="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="Long Field Label" REPTEXT="Long Field Label" SCRTEXT_S="Long" SCRTEXT_M="Long Fld Label" SCRTEXT_L="Long field label" DOMNAME3L="SCRTEXT_L" DEPTH="00" COMPTYPE="E" DEFFDNAME="SCRTEXT_L" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="TOTALS_FUNCTION" DDLANGUAGE="E" POSITION="0009" ROLLNAME="ZEXCEL_TABLE_TOTALS_FUNCTION" ADMINFIELD="0" INTTYPE="g" INTLEN="000008" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="00" SCRLEN3="00" DTELMASTER="E" DATATYPE="STRG" LENG="000000" OUTPUTLEN="000000" DECIMALS="000000" MASK=" STRGE" MASKLEN="0000" DDTEXT="Totals function for table column (xml ST_TotalsRowFunction)" SCRTEXT_S="Function" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="FIX_COLUMN" DDLANGUAGE="E" POSITION="0010" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="IS_OPTIMIZED" DDLANGUAGE="E" POSITION="0011" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="IS_VISIBLE" DDLANGUAGE="E" POSITION="0012" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="ALIGNMENT" DDLANGUAGE="E" POSITION="0013" ROLLNAME="ZEXCEL_ALIGNMENT" ADMINFIELD="0" INTTYPE="C" INTLEN="000040" DOMNAME="CHAR20" ROUTPUTLEN="000000" HEADLEN="09" SCRLEN1="09" SCRLEN2="09" SCRLEN3="09" DTELMASTER="E" DATATYPE="CHAR" LENG="000020" OUTPUTLEN="000020" DECIMALS="000000" MASK=" CHARE" MASKLEN="0000" DDTEXT="Alignment" REPTEXT="Alignment" SCRTEXT_S="Alignment" SCRTEXT_M="Alignment" SCRTEXT_L="Alignment" DOMNAME3L="CHAR20" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd05m TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="FIELDNAME" FORTABLE="ZEXCEL_S_CONVERTER_FCAT" FORKEY="TABNAME" CHECKTABLE="DD03L" CHECKFIELD="TABNAME" PRIMPOS="0001" DOMNAME="AS4TAB" DATATYPE="CHAR" LENG="000030"/>
<dd05m TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="FIELDNAME" FORTABLE="ZEXCEL_S_CONVERTER_FCAT" FORKEY="FIELDNAME" CHECKTABLE="DD03L" CHECKFIELD="FIELDNAME" PRIMPOS="0002" DOMNAME="FDNAME" DATATYPE="CHAR" LENG="000030"/>
<dd05m TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="FIELDNAME" FORTABLE="&apos;A&apos;" CHECKTABLE="DD03L" CHECKFIELD="AS4LOCAL" PRIMPOS="0003" DOMNAME="AS4LOCAL" DATATYPE="CHAR" LENG="000001"/>
<dd05m TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="FIELDNAME" FORTABLE="&apos;0000&apos;" CHECKTABLE="DD03L" CHECKFIELD="AS4VERS" PRIMPOS="0004" DOMNAME="AS4VERS" DATATYPE="NUMC" LENG="000004"/>
<dd05m TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="FIELDNAME" FORTABLE="ZEXCEL_S_CONVERTER_FCAT" FORKEY="POSITION" CHECKTABLE="DD03L" CHECKFIELD="POSITION" PRIMPOS="0005" DOMNAME="AS4POS" DATATYPE="NUMC" LENG="000004"/>
<dd05m TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="TABNAME" FORTABLE="ZEXCEL_S_CONVERTER_FCAT" FORKEY="TABNAME" CHECKTABLE="DD02L" CHECKFIELD="TABNAME" PRIMPOS="0001" DOMNAME="AS4TAB" DATATYPE="CHAR" LENG="000030"/>
<dd05m TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="TABNAME" FORTABLE="&apos;A&apos;" CHECKTABLE="DD02L" CHECKFIELD="AS4LOCAL" PRIMPOS="0002" DOMNAME="AS4LOCAL" DATATYPE="CHAR" LENG="000001"/>
<dd05m TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="TABNAME" FORTABLE="&apos;0000&apos;" CHECKTABLE="DD02L" CHECKFIELD="AS4VERS" PRIMPOS="0003" DOMNAME="AS4VERS" DATATYPE="NUMC" LENG="000004"/>
<dd08v TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="FIELDNAME" DDLANGUAGE="E" CHECKTABLE="DD03L"/>
<dd08v TABNAME="ZEXCEL_S_CONVERTER_FCAT" FIELDNAME="TABNAME" DDLANGUAGE="E" CHECKTABLE="DD02L"/>
</TABL>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-16"?>
<TABL TABNAME="ZEXCEL_S_CONVERTER_LAYO" DDLANGUAGE="E" TABCLASS="INTTAB" DATMIN="0000000000" DATMAX="0000000000" DATAVG="0000000000" DDTEXT="Converter settings for table" AUTHCLASS="00" AS4USER="FEMIA" AS4DATE="20120120" AS4TIME="205547" PROZPUFF="000" EXCLASS="2">
<dd09l AS4VERS="0000" SCHFELDANZ="000" AS4DATE="00000000" AS4TIME="000000"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_LAYO" FIELDNAME="IS_STRIPPED" DDLANGUAGE="E" POSITION="0001" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_S_CONVERTER_LAYO" FIELDNAME="IS_FIXED" DDLANGUAGE="E" POSITION="0002" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-16"?>
<TTYP TYPENAME="ZEXCEL_T_CONVERTER_LAYO" DDLANGUAGE="E" ROWTYPE="ZEXCEL_S_CONVERTER_LAYO" ROWKIND="S" DATATYPE="STRU" LENG="000000" DECIMALS="000000" ACCESSMODE="T" KEYDEF="D" KEYKIND="N" KEYFDCOUNT="0000" AS4USER="FEMIA" AS4DATE="20120120" AS4TIME="205547" DDTEXT="Table type for zexcel_s_converter_layo" TYPELEN="000004" CTLENG="000000" CTDECIMALS="000000" OCCURS="00000"/>