abap2xlsx/ZA2X/PROG/ZDEMO_EXCEL3.slnk
Ivan 03fda13182 Autofilter switch on table object
Addithe possibility to deactivate autofilter on table object.
See DEMO3
2014-08-27 14:24:44 -05:00

100 lines
3.9 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<PROG NAME="ZDEMO_EXCEL3" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Export internal table" LENGTH="38 "/>
<textElement ID="S" KEY="P_EMPTY" ENTRY=" Leave Table Empty" LENGTH="25 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="24 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL3
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_excel3.
TYPE-POOLS: abap.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime.
DATA: ls_table_settings TYPE zexcel_s_table_settings.
DATA: lv_title TYPE zexcel_sheet_title,
lt_carr TYPE TABLE OF scarr,
row TYPE zexcel_cell_row VALUE 2,
lo_range TYPE REF TO zcl_excel_range.
DATA: lo_data_validation TYPE REF TO zcl_excel_data_validation.
FIELD-SYMBOLS: &lt;carr&gt; LIKE LINE OF lt_carr.
CONSTANTS: c_airlines TYPE string VALUE &apos;Airlines&apos;.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;03_iTab.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
PARAMETERS: p_empty TYPE flag.
START-OF-SELECTION.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Internal table&apos;).
DATA lt_test TYPE TABLE OF sflight.
IF p_empty &lt;&gt; abap_true.
SELECT * FROM sflight INTO TABLE lt_test. &quot;#EC CI_NOWHERE
ENDIF.
ls_table_settings-table_style = zcl_excel_table=&gt;builtinstyle_medium2.
ls_table_settings-show_row_stripes = abap_true.
ls_table_settings-nofilters = abap_true.
lo_worksheet-&gt;bind_table( ip_table = lt_test
is_table_settings = ls_table_settings ).
lo_worksheet-&gt;freeze_panes( ip_num_rows = 3 ). &quot;freeze column headers when scrolling
column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;E&apos; ). &quot;make date field a bit wider
column_dimension-&gt;set_width( ip_width = 11 ).
&quot; Add another table for data validations
lo_worksheet = lo_excel-&gt;add_new_worksheet( ).
lv_title = &apos;Data Validation&apos;.
lo_worksheet-&gt;set_title( lv_title ).
lo_worksheet-&gt;set_cell( ip_row = 1 ip_column = &apos;A&apos; ip_value = c_airlines ).
SELECT * FROM scarr INTO TABLE lt_carr. &quot;#EC CI_NOWHERE
LOOP AT lt_carr ASSIGNING &lt;carr&gt;.
lo_worksheet-&gt;set_cell( ip_row = row ip_column = &apos;A&apos; ip_value = &lt;carr&gt;-carrid ).
row = row + 1.
ENDLOOP.
row = row - 1.
lo_range = lo_excel-&gt;add_new_range( ).
lo_range-&gt;name = c_airlines.
lo_range-&gt;set_value( ip_sheet_name = lv_title
ip_start_column = &apos;A&apos;
ip_start_row = 2
ip_stop_column = &apos;A&apos;
ip_stop_row = row ).
&quot; Set Data Validation
lo_excel-&gt;set_active_sheet_index( 1 ).
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_data_validation = lo_worksheet-&gt;add_new_data_validation( ).
lo_data_validation-&gt;type = zcl_excel_data_validation=&gt;c_type_list.
lo_data_validation-&gt;formula1 = c_airlines.
lo_data_validation-&gt;cell_row = 4.
lo_data_validation-&gt;cell_column = &apos;C&apos;.
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>