diff --git a/ZA2X/PROG/ZDEMO_EXCEL3.slnk b/ZA2X/PROG/ZDEMO_EXCEL3.slnk index 39ce402..c7dc199 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL3.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL3.slnk @@ -1,5 +1,5 @@ - + @@ -35,6 +35,14 @@ DATA: lv_full_path TYPE string, lv_workdir TYPE string, lv_file_separator TYPE c. +DATA: lv_title TYPE zexcel_sheet_title, + lt_carr TYPE TABLE OF scarr, + row TYPE zexcel_cell_row VALUE 2, + lo_range TYPE REF TO zcl_excel_range. +DATA: lo_data_validation TYPE REF TO zcl_excel_data_validation. +FIELD-SYMBOLS: <carr> LIKE LINE OF lt_carr. + +CONSTANTS: c_airlines TYPE string VALUE 'Airlines'. CONSTANTS: lv_default_file_name TYPE string VALUE '03_iTab.xlsx'. PARAMETERS: p_path TYPE zexcel_export_dir, @@ -82,7 +90,33 @@ START-OF-SELECTION. column_dimension = lo_worksheet->get_column_dimension( ip_column = 'E' ). "make date field a bit wider column_dimension->set_width( ip_width = 11 ). + " Add another table for data validations + lo_worksheet = lo_excel->add_new_worksheet( ). + lv_title = 'Data Validation'. + lo_worksheet->set_title( lv_title ). + lo_worksheet->set_cell( ip_row = 1 ip_column = 'A' ip_value = c_airlines ). + SELECT * FROM scarr INTO TABLE lt_carr. + LOOP AT lt_carr ASSIGNING <carr>. + lo_worksheet->set_cell( ip_row = row ip_column = 'A' ip_value = <carr>-carrid ). + row = row + 1. + ENDLOOP. + lo_range = lo_excel->add_new_range( ). + lo_range->name = c_airlines. + lo_range->set_value( ip_sheet_name = lv_title + ip_start_column = 'A' + ip_start_row = 2 + ip_stop_column = 'A' + ip_stop_row = row ). + " Set Data Validation + lo_excel->set_active_sheet_index( 1 ). + lo_worksheet = lo_excel->get_active_worksheet( ). + lo_data_validation = lo_worksheet->add_new_data_validation( ). + lo_data_validation->value = c_airlines. + lo_data_validation->cell_row = 4. + lo_data_validation->cell_column = 'C'. + + " Write to Excel 2007 CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. lv_file = lo_excel_writer->write_file( lo_excel ).