diff --git a/ZA2X/PROG/ZABAP2XLSX_DEMO_SHOW.slnk b/ZA2X/PROG/ZABAP2XLSX_DEMO_SHOW.slnk new file mode 100644 index 0000000..f8ecd9c --- /dev/null +++ b/ZA2X/PROG/ZABAP2XLSX_DEMO_SHOW.slnk @@ -0,0 +1,262 @@ + + + *&---------------------------------------------------------------------* +*& Report ZABAP2XLSX_DEMO_SHOW +*&---------------------------------------------------------------------* +REPORT zabap2xlsx_demo_like_se83. + + +*----------------------------------------------------------------------* +* CLASS lcl_perform DEFINITION +*----------------------------------------------------------------------* +CLASS lcl_perform DEFINITION CREATE PRIVATE. + PUBLIC SECTION. + CLASS-METHODS: setup_objects, + collect_reports, + + handle_nav FOR EVENT double_click OF cl_gui_alv_grid + IMPORTING e_row. + + PRIVATE SECTION. + TYPES: BEGIN OF ty_reports, + progname TYPE reposrc-progname, + sort TYPE reposrc-progname, + filename TYPE string, + END OF ty_reports. + + CLASS-DATA: + lo_grid TYPE REF TO cl_gui_alv_grid, + lo_text TYPE REF TO cl_gui_textedit, + cl_document TYPE REF TO i_oi_document_proxy, + + t_reports TYPE STANDARD TABLE OF ty_reports WITH NON-UNIQUE DEFAULT KEY. + CLASS-DATA:error TYPE REF TO i_oi_error, + t_errors TYPE STANDARD TABLE OF REF TO i_oi_error WITH NON-UNIQUE DEFAULT KEY, + cl_control TYPE REF TO i_oi_container_control. "Office Dokument + +ENDCLASS. "lcl_perform DEFINITION + + +START-OF-SELECTION. + lcl_perform=>collect_reports( ). + lcl_perform=>setup_objects( ). + +END-OF-SELECTION. + + WRITE '.'. " Force output + + +*----------------------------------------------------------------------* +* CLASS lcl_perform IMPLEMENTATION +*----------------------------------------------------------------------* +CLASS lcl_perform IMPLEMENTATION. + METHOD setup_objects. + DATA: lo_split TYPE REF TO cl_gui_splitter_container, + lo_container TYPE REF TO cl_gui_container. + + DATA: it_fieldcat TYPE lvc_t_fcat, + is_layout TYPE lvc_s_layo, + is_variant TYPE disvariant. + FIELD-SYMBOLS: <fc> LIKE LINE OF it_fieldcat. + + + CREATE OBJECT lo_split + EXPORTING + parent = cl_gui_container=>screen0 + rows = 1 + columns = 3 + no_autodef_progid_dynnr = 'X'. + lo_split->set_column_width( EXPORTING id = 1 + width = 20 ). + lo_split->set_column_width( EXPORTING id = 2 + width = 40 ). + +* Left: List of reports + lo_container = lo_split->get_container( row = 1 + column = 1 ). + + CREATE OBJECT lo_grid + EXPORTING + i_parent = lo_container. + SET HANDLER lcl_perform=>handle_nav FOR lo_grid. + + is_variant-report = sy-repid. + is_variant-handle = '0001'. + + is_layout-cwidth_opt = 'X'. + + APPEND INITIAL LINE TO it_fieldcat ASSIGNING <fc>. + <fc>-fieldname = 'PROGNAME'. + <fc>-tabname = 'REPOSRC'. + + APPEND INITIAL LINE TO it_fieldcat ASSIGNING <fc>. + <fc>-fieldname = 'SORT'. + <fc>-ref_field = 'PROGNAME'. + <fc>-ref_table = 'REPOSRC'. + + + lo_grid->set_table_for_first_display( EXPORTING + is_variant = is_variant + i_save = 'A' + is_layout = is_layout + CHANGING + it_outtab = t_reports + it_fieldcatalog = it_fieldcat + EXCEPTIONS + invalid_parameter_combination = 1 + program_error = 2 + too_many_lines = 3 + OTHERS = 4 ). + +* Middle: Text with coding + lo_container = lo_split->get_container( row = 1 + column = 2 ). + CREATE OBJECT lo_text + EXPORTING + parent = lo_container. + lo_text->set_readonly_mode( cl_gui_textedit=>true ). + lo_text->set_font_fixed( ). + + + +* right: DemoOutput + lo_container = lo_split->get_container( row = 1 + column = 3 ). + + c_oi_container_control_creator=>get_container_control( IMPORTING control = cl_control + error = error ). + APPEND error TO t_errors. + + cl_control->init_control( EXPORTING inplace_enabled = 'X' + no_flush = 'X' + r3_application_name = 'Demo Document Container' + parent = lo_container + IMPORTING error = error + EXCEPTIONS OTHERS = 2 ). + APPEND error TO t_errors. + + cl_control->get_document_proxy( EXPORTING document_type = 'Excel.Sheet' " EXCEL + no_flush = ' ' + IMPORTING document_proxy = cl_document + error = error ). + APPEND error TO t_errors. +* Errorhandling should be inserted here + + + ENDMETHOD. "setup_objects + + "collect_reports + METHOD collect_reports. + FIELD-SYMBOLS:<report> LIKE LINE OF t_reports. + DATA: t_source TYPE STANDARD TABLE OF text255 WITH NON-UNIQUE DEFAULT KEY. + +* Get all demoreports + SELECT progname + INTO CORRESPONDING FIELDS OF TABLE t_reports + FROM reposrc + WHERE progname LIKE 'ZDEMO_EXCEL%' + AND progname <> sy-repid + AND subc = '1'. + + LOOP AT t_reports ASSIGNING <report>. + +* Check if already switched to new outputoptions + READ REPORT <report>-progname INTO t_source. + IF sy-subrc = 0. + FIND 'INCLUDE zdemo_excel_outputopt_incl.' IN TABLE t_source IGNORING CASE. + ENDIF. + IF sy-subrc <> 0. + DELETE t_reports. + CONTINUE. + ENDIF. + + +* Build half-numeric sort + <report>-sort = <report>-progname. + REPLACE REGEX '(ZDEMO_EXCEL)(\d\d)\s*$' IN <report>-sort WITH '$1\0$2'. " REPLACE REGEX '(ZDEMO_EXCEL)([^][^])*$' IN <report>-sort WITH '$1$2'.REPLACE REGEX '(ZDEMO_EXCEL)([^][^])*$' IN <report>-sort WITH '$1$2'.REPLACE + + REPLACE REGEX '(ZDEMO_EXCEL)(\d)\s*$' IN <report>-sort WITH '$1\0\0$2'. + ENDLOOP. + SORT t_reports BY sort progname. + + ENDMETHOD. "collect_reports + + METHOD handle_nav. + CONSTANTS: filename TYPE text80 VALUE 'ZABAP2XLSX_DEMO_SHOW.xlsx'. + DATA: wa_report LIKE LINE OF t_reports, + t_source TYPE STANDARD TABLE OF text255, + t_rawdata TYPE solix_tab, + wa_rawdata LIKE LINE OF t_rawdata, + bytecount TYPE i, + length TYPE i, + add_selopt TYPE flag. + + + READ TABLE t_reports INTO wa_report INDEX e_row-index. + CHECK sy-subrc = 0. + +* Set new text into middle frame + READ REPORT wa_report-progname INTO t_source. + lo_text->set_text_as_r3table( EXPORTING table = t_source ). + + +* Unload old xls-file + cl_document->close_document( ). + +* Get the demo +* If additional parameters found on selection screen, start via selection screen , otherwise start w/o + CLEAR add_selopt. + FIND 'PARAMETERS' IN TABLE t_source. + IF sy-subrc = 0. + add_selopt = 'X'. + ELSE. + FIND 'SELECT-OPTIONS' IN TABLE t_source. + IF sy-subrc = 0. + add_selopt = 'X'. + ENDIF. + ENDIF. + IF add_selopt IS INITIAL. + SUBMIT (wa_report-progname) AND RETURN + WITH p_backfn = filename + WITH rb_back = 'X' + WITH rb_down = ' ' + WITH rb_send = ' ' + WITH rb_show = ' '. + ELSE. + SUBMIT (wa_report-progname) VIA SELECTION-SCREEN AND RETURN + WITH p_backfn = filename + WITH rb_back = 'X' + WITH rb_down = ' ' + WITH rb_send = ' ' + WITH rb_show = ' '. + ENDIF. + + OPEN DATASET filename FOR INPUT IN BINARY MODE. + IF sy-subrc = 0. + DO. + CLEAR wa_rawdata. + READ DATASET filename INTO wa_rawdata LENGTH length. + IF sy-subrc <> 0. + APPEND wa_rawdata TO t_rawdata. + ADD length TO bytecount. + EXIT. + ENDIF. + APPEND wa_rawdata TO t_rawdata. + ADD length TO bytecount. + ENDDO. + CLOSE DATASET filename. + ENDIF. + + cl_control->get_document_proxy( EXPORTING document_type = 'Excel.Sheet' " EXCEL + no_flush = ' ' + IMPORTING document_proxy = cl_document + error = error ). + + cl_document->open_document_from_table( EXPORTING document_size = bytecount + document_table = t_rawdata + open_inplace = 'X' ). + + ENDMETHOD. "handle_nav + +ENDCLASS. "lcl_perform IMPLEMENTATION + diff --git a/ZA2X/PROG/ZDEMO_EXCEL1.slnk b/ZA2X/PROG/ZDEMO_EXCEL1.slnk index f06ee3d..d195cf1 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL1.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL1.slnk @@ -1,9 +1,9 @@ - - + + - + *&---------------------------------------------------------------------* @@ -18,48 +18,21 @@ REPORT zdemo_excel1. DATA: lo_excel TYPE REF TO zcl_excel, - lo_excel_writer TYPE REF TO zif_excel_writer, lo_worksheet TYPE REF TO zcl_excel_worksheet, lo_hyperlink TYPE REF TO zcl_excel_hyperlink, column_dimension TYPE REF TO zcl_excel_worksheet_columndime. -DATA: lv_file TYPE xstring, - lv_bytecount TYPE i, - lt_file_tab TYPE solix_tab. +CONSTANTS: gc_save_file_name TYPE string VALUE '01_HelloWorld.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. -DATA: lv_full_path TYPE string, - lv_workdir TYPE string, - lv_file_separator TYPE c. - -CONSTANTS: lv_default_file_name TYPE string VALUE '01_HelloWorld.xlsx'. - -PARAMETERS: p_path TYPE zexcel_export_dir. - -AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. - lv_workdir = p_path. - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir - CHANGING selected_folder = lv_workdir ). - p_path = lv_workdir. - -INITIALIZATION. - cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ). - cl_gui_cfw=>flush( ). - p_path = lv_workdir. START-OF-SELECTION. - - IF p_path IS INITIAL. - p_path = lv_workdir. - ENDIF. - cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ). - CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. - " Creates active sheet CREATE OBJECT lo_excel. " Get active sheet lo_worksheet = lo_excel->get_active_worksheet( ). - lo_worksheet->set_title( ip_title = 'Sheet1' ). +* lo_worksheet->set_title( ip_title = 'Sheet1' ). lo_worksheet->set_cell( ip_column = 'B' ip_row = 2 ip_value = 'Hello world' ). lo_worksheet->set_cell( ip_column = 'B' ip_row = 3 ip_value = sy-datum ). lo_worksheet->set_cell( ip_column = 'C' ip_row = 3 ip_value = sy-uzeit ). @@ -69,24 +42,8 @@ START-OF-SELECTION. column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ). column_dimension->set_width( ip_width = 11 ). - CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. - lv_file = lo_excel_writer->write_file( lo_excel ). - " Convert to binary - CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' - EXPORTING - buffer = lv_file - IMPORTING - output_length = lv_bytecount - TABLES - binary_tab = lt_file_tab. -* " This method is only available on AS ABAP > 6.40 -* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). -* lv_bytecount = xstrlen( lv_file ). - " Save the file - cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount - filename = lv_full_path - filetype = 'BIN' - CHANGING data_tab = lt_file_tab ). +*** Create output + lcl_output=>output( lo_excel ). diff --git a/ZA2X/PROG/ZDEMO_EXCEL10.slnk b/ZA2X/PROG/ZDEMO_EXCEL10.slnk index 017fca5..89b82da 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL10.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL10.slnk @@ -1,8 +1,8 @@ - - + + - + @@ -17,7 +17,6 @@ REPORT zdemo_excel10. DATA: lo_excel TYPE REF TO zcl_excel, - lo_excel_writer TYPE REF TO zif_excel_writer, lo_worksheet TYPE REF TO zcl_excel_worksheet, lo_style_conditional2 TYPE REF TO zcl_excel_style_conditional, column_dimension TYPE REF TO zcl_excel_worksheet_columndime. @@ -26,38 +25,12 @@ DATA: lt_field_catalog TYPE zexcel_t_fieldcatalog, ls_table_settings TYPE zexcel_s_table_settings, ls_iconset TYPE zexcel_conditional_iconset. -DATA: lv_file TYPE xstring, - lv_bytecount TYPE i, - lt_file_tab TYPE solix_tab. +CONSTANTS: gc_save_file_name TYPE string VALUE '10_iTabFieldCatalog.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. -DATA: lv_full_path TYPE string, - lv_workdir TYPE string, - lv_file_separator TYPE c. - -CONSTANTS: lv_default_file_name TYPE string VALUE '10_iTabFieldCatalog.xlsx'. - -PARAMETERS: p_path TYPE zexcel_export_dir. - -AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. - lv_workdir = p_path. - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir - CHANGING selected_folder = lv_workdir ). - p_path = lv_workdir. - -INITIALIZATION. - cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ). - cl_gui_cfw=>flush( ). - p_path = lv_workdir. START-OF-SELECTION. - IF p_path IS INITIAL. - p_path = lv_workdir. - ENDIF. - cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ). - CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. - - FIELD-SYMBOLS: <fs_field_catalog> TYPE zexcel_s_fieldcatalog. " Creates active sheet @@ -122,24 +95,7 @@ START-OF-SELECTION. column_dimension = lo_worksheet->get_column_dimension( ip_column = 'D' ). "make date field a bit wider column_dimension->set_width( ip_width = 13 ). - CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. - lv_file = lo_excel_writer->write_file( lo_excel ). - " Convert to binary - CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' - EXPORTING - buffer = lv_file - IMPORTING - output_length = lv_bytecount - TABLES - binary_tab = lt_file_tab. -* " This method is only available on AS ABAP > 6.40 -* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). -* lv_bytecount = xstrlen( lv_file ). - - " Save the file - cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount - filename = lv_full_path - filetype = 'BIN' - CHANGING data_tab = lt_file_tab ). +*** Create output + lcl_output=>output( lo_excel ). diff --git a/ZA2X/PROG/ZDEMO_EXCEL11.slnk b/ZA2X/PROG/ZDEMO_EXCEL11.slnk index 7ca3a02..01d98d5 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL11.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL11.slnk @@ -1,8 +1,8 @@ - - + + - + @@ -46,13 +46,9 @@ FIELD-SYMBOLS: <relationship_address> LIKE LINE OF relationship_addresses. DATA: lt_download TYPE TABLE OF zexcel_s_org_rel. FIELD-SYMBOLS: <download> LIKE LINE OF lt_download. -DATA: lv_full_path TYPE string, - lv_workdir TYPE string, - lv_file_separator TYPE c. +CONSTANTS: gc_save_file_name TYPE string VALUE '11_Export_Org_and_Contact.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. -CONSTANTS: lv_default_file_name TYPE string VALUE '11_Export_Org_and_Contact.xlsx'. - -PARAMETERS: p_path TYPE zexcel_export_dir. PARAMETERS: md TYPE flag RADIOBUTTON GROUP act. @@ -70,27 +66,11 @@ PARAMETERS: reltyp TYPE bu_reltyp DEFAULT 'BUR011', partner TYPE bu_partner DEFAULT '191'. SELECTION-SCREEN END OF BLOCK b. -AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. - lv_workdir = p_path. - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir - CHANGING selected_folder = lv_workdir ). - p_path = lv_workdir. - - INITIALIZATION. a = 'Select by master data'. b = 'Select by relationship'. - cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ). - cl_gui_cfw=>flush( ). - p_path = lv_workdir. START-OF-SELECTION. - IF p_path IS INITIAL. - p_path = lv_workdir. - ENDIF. - cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ). - CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. - IF md = abap_true. " Read all Companies by Master Data central_search-partnercategory = partnerc. @@ -228,7 +208,6 @@ START-OF-SELECTION. ENDLOOP. DATA: lo_excel TYPE REF TO zcl_excel, - lo_excel_writer TYPE REF TO zif_excel_writer, lo_worksheet TYPE REF TO zcl_excel_worksheet, lo_style_body TYPE REF TO zcl_excel_style, lo_border_dark TYPE REF TO zcl_excel_style_border, @@ -450,24 +429,7 @@ START-OF-SELECTION. * column_dimension = lo_worksheet->get_column_dimension( ip_column = 'R' ). * column_dimension->set_width( ip_width = 40 ). - CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. - lv_file = lo_excel_writer->write_file( lo_excel ). - " Convert to binary - CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' - EXPORTING - buffer = lv_file - IMPORTING - output_length = lv_bytecount - TABLES - binary_tab = lt_file_tab. -* " This method is only available on AS ABAP > 6.40 -* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). -* lv_bytecount = xstrlen( lv_file ). - - " Save the file - cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount - filename = lv_full_path - filetype = 'BIN' - CHANGING data_tab = lt_file_tab ). +*** Create output + lcl_output=>output( lo_excel ). diff --git a/ZA2X/PROG/ZDEMO_EXCEL12.slnk b/ZA2X/PROG/ZDEMO_EXCEL12.slnk index fcadc8e..ee3b0b5 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL12.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL12.slnk @@ -1,8 +1,8 @@ - - + + - + @@ -17,7 +17,6 @@ REPORT zdemo_excel12. DATA: lo_excel TYPE REF TO zcl_excel, - lo_excel_writer TYPE REF TO zif_excel_writer, lo_worksheet TYPE REF TO zcl_excel_worksheet, column_dimension TYPE REF TO zcl_excel_worksheet_columndime, row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi. @@ -30,29 +29,11 @@ DATA: lv_full_path TYPE string, lv_workdir TYPE string, lv_file_separator TYPE c. -CONSTANTS: lv_default_file_name TYPE string VALUE '12_HideSizeOutlineRowsAndColumns.xlsx'. - -PARAMETERS: p_path TYPE zexcel_export_dir. - -AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. - lv_workdir = p_path. - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir - CHANGING selected_folder = lv_workdir ). - p_path = lv_workdir. - -INITIALIZATION. - cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ). - cl_gui_cfw=>flush( ). - p_path = lv_workdir. +CONSTANTS: gc_save_file_name TYPE string VALUE '12_HideSizeOutlineRowsAndColumns.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. START-OF-SELECTION. - IF p_path IS INITIAL. - p_path = lv_workdir. - ENDIF. - cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ). - CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. - " Creates active sheet CREATE OBJECT lo_excel. @@ -108,24 +89,6 @@ START-OF-SELECTION. row_dimension = lo_worksheet->get_row_dimension( ip_row = 8 ). row_dimension->set_outline_level( ip_outline_level = 2 ). - CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. - lv_file = lo_excel_writer->write_file( io_excel = lo_excel ). - - " Convert to binary - CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' - EXPORTING - buffer = lv_file - IMPORTING - output_length = lv_bytecount - TABLES - binary_tab = lt_file_tab. -* " This method is only available on AS ABAP > 6.40 -* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). -* lv_bytecount = xstrlen( lv_file ). - - " Save the file - cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount - filename = lv_full_path - filetype = 'BIN' - CHANGING data_tab = lt_file_tab ). +*** Create output + lcl_output=>output( lo_excel ). diff --git a/ZA2X/PROG/ZDEMO_EXCEL13.slnk b/ZA2X/PROG/ZDEMO_EXCEL13.slnk index 0ee4ea7..5a12686 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL13.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL13.slnk @@ -1,8 +1,8 @@ - - + + - + @@ -17,43 +17,17 @@ REPORT zdemo_excel13. DATA: lo_excel TYPE REF TO zcl_excel, - lo_excel_writer TYPE REF TO zif_excel_writer, lo_worksheet TYPE REF TO zcl_excel_worksheet, lv_style_bold_border_guid TYPE zexcel_cell_style, lo_style_bold_border TYPE REF TO zcl_excel_style, lo_border_dark TYPE REF TO zcl_excel_style_border. -DATA: lv_file TYPE xstring, - lv_bytecount TYPE i, - lt_file_tab TYPE solix_tab. -DATA: lv_full_path TYPE string, - lv_workdir TYPE string, - lv_file_separator TYPE c. - -CONSTANTS: lv_default_file_name TYPE string VALUE '13_MergedCells.xlsx'. - -PARAMETERS: p_path TYPE zexcel_export_dir. - -AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. - lv_workdir = p_path. - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir - CHANGING selected_folder = lv_workdir ). - p_path = lv_workdir. - -INITIALIZATION. - cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ). - cl_gui_cfw=>flush( ). - p_path = lv_workdir. +CONSTANTS: gc_save_file_name TYPE string VALUE '13_MergedCells.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. START-OF-SELECTION. - IF p_path IS INITIAL. - p_path = lv_workdir. - ENDIF. - cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ). - CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. - CREATE OBJECT lo_excel. " Get active sheet @@ -112,24 +86,7 @@ START-OF-SELECTION. lo_worksheet->set_merge( ip_row = 13 ip_column_start = 'E' ip_column_end = 'F' ). - CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. - lv_file = lo_excel_writer->write_file( lo_excel ). - " Convert to binary - CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' - EXPORTING - buffer = lv_file - IMPORTING - output_length = lv_bytecount - TABLES - binary_tab = lt_file_tab. -* " This method is only available on AS ABAP > 6.40 -* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). -* lv_bytecount = xstrlen( lv_file ). - - " Save the file - cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount - filename = lv_full_path - filetype = 'BIN' - CHANGING data_tab = lt_file_tab ). +*** Create output + lcl_output=>output( lo_excel ). diff --git a/ZA2X/PROG/ZDEMO_EXCEL14.slnk b/ZA2X/PROG/ZDEMO_EXCEL14.slnk index 3f20316..50db21d 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL14.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL14.slnk @@ -1,8 +1,8 @@ - - + + - + @@ -17,7 +17,6 @@ REPORT zdemo_excel14. DATA: lo_excel TYPE REF TO zcl_excel, - lo_excel_writer TYPE REF TO zif_excel_writer, lo_worksheet TYPE REF TO zcl_excel_worksheet, lo_style_center TYPE REF TO zcl_excel_style, lo_style_right TYPE REF TO zcl_excel_style, @@ -46,37 +45,12 @@ DATA: lo_excel TYPE REF TO zcl_excel, DATA: lo_row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi. -DATA: lv_file TYPE xstring, - lv_bytecount TYPE i, - lt_file_tab TYPE solix_tab. +CONSTANTS: gc_save_file_name TYPE string VALUE '14_Alignment.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. -DATA: lv_full_path TYPE string, - lv_workdir TYPE string, - lv_file_separator TYPE c. - -CONSTANTS: lv_default_file_name TYPE string VALUE '14_Alignment.xlsx'. - -PARAMETERS: p_path TYPE zexcel_export_dir. - -AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. - lv_workdir = p_path. - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir - CHANGING selected_folder = lv_workdir ). - p_path = lv_workdir. - -INITIALIZATION. - cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ). - cl_gui_cfw=>flush( ). - p_path = lv_workdir. START-OF-SELECTION. - IF p_path IS INITIAL. - p_path = lv_workdir. - ENDIF. - cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ). - CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. - CREATE OBJECT lo_excel. " Get active sheet @@ -137,7 +111,7 @@ START-OF-SELECTION. lo_style_rotated = lo_excel->add_new_style( ). lo_style_rotated->alignment->horizontal = zcl_excel_style_alignment=>c_horizontal_center. lo_style_rotated->alignment->vertical = zcl_excel_style_alignment=>c_vertical_center. - lo_style_rotated->alignment->textrotation = 165. " -75° == 90° + 75° + lo_style_rotated->alignment->textrotation = 165. " -75° == 90° + 75° lv_style_rotated_guid = lo_style_rotated->get_guid( ). @@ -171,27 +145,11 @@ START-OF-SELECTION. " Rotated lo_worksheet->set_cell( ip_row = 10 ip_column = 'D' - ip_value = 'This is a centered text rotated by -75°' + ip_value = 'This is a centered text rotated by -75°' ip_style = lv_style_rotated_guid ). - CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. - lv_file = lo_excel_writer->write_file( lo_excel ). - " Convert to binary - CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' - EXPORTING - buffer = lv_file - IMPORTING - output_length = lv_bytecount - TABLES - binary_tab = lt_file_tab. -* " This method is only available on AS ABAP > 6.40 -* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). -* lv_bytecount = xstrlen( lv_file ). - " Save the file - cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount - filename = lv_full_path - filetype = 'BIN' - CHANGING data_tab = lt_file_tab ). +*** Create output + lcl_output=>output( lo_excel ). diff --git a/ZA2X/PROG/ZDEMO_EXCEL16.slnk b/ZA2X/PROG/ZDEMO_EXCEL16.slnk index b6a9a2b..a556a55 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL16.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL16.slnk @@ -1,8 +1,8 @@ - - + + - + @@ -17,46 +17,22 @@ REPORT zdemo_excel16. DATA: lo_excel TYPE REF TO zcl_excel, - lo_excel_writer TYPE REF TO zif_excel_writer, lo_worksheet TYPE REF TO zcl_excel_worksheet, lo_drawing TYPE REF TO zcl_excel_drawing. -DATA: lv_file TYPE xstring, - lv_bytecount TYPE i, - lt_file_tab TYPE solix_tab. - -DATA: lv_full_path TYPE string, - lv_workdir TYPE string, - lv_file_separator TYPE c. DATA: ls_io TYPE skwf_io. -CONSTANTS: lv_default_file_name TYPE string VALUE '16_Drawings.xlsx'. +CONSTANTS: gc_save_file_name TYPE string VALUE '16_Drawings.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. -PARAMETERS: p_path TYPE zexcel_export_dir, - p_objid TYPE sdok_docid DEFAULT '456694429165174BE10000000A1550C0', " Question mark in standard Web Dynpro WDT_QUIZ +PARAMETERS: p_objid TYPE sdok_docid DEFAULT '456694429165174BE10000000A1550C0', " Question mark in standard Web Dynpro WDT_QUIZ p_class TYPE sdok_class DEFAULT 'M_IMAGE_P', pobjtype TYPE skwf_ioty DEFAULT 'P'. -AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. - lv_workdir = p_path. - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir - CHANGING selected_folder = lv_workdir ). - p_path = lv_workdir. - -INITIALIZATION. - cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ). - cl_gui_cfw=>flush( ). - p_path = lv_workdir. START-OF-SELECTION. - IF p_path IS INITIAL. - p_path = lv_workdir. - ENDIF. - cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ). - CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. - " Creates active sheet CREATE OBJECT lo_excel. @@ -162,24 +138,8 @@ START-OF-SELECTION. ENDIF. - CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. - lv_file = lo_excel_writer->write_file( lo_excel ). - " Convert to binary - CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' - EXPORTING - buffer = lv_file - IMPORTING - output_length = lv_bytecount - TABLES - binary_tab = lt_file_tab. -* " This method is only available on AS ABAP > 6.40 -* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). -* lv_bytecount = xstrlen( lv_file ). - " Save the file - cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount - filename = lv_full_path - filetype = 'BIN' - CHANGING data_tab = lt_file_tab ). +*** Create output + lcl_output=>output( lo_excel ). diff --git a/ZA2X/PROG/ZDEMO_EXCEL17.slnk b/ZA2X/PROG/ZDEMO_EXCEL17.slnk index 18570a8..c4d4d00 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL17.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL17.slnk @@ -1,8 +1,8 @@ - - + + - + @@ -18,7 +18,6 @@ REPORT zdemo_excel17. DATA: lo_excel TYPE REF TO zcl_excel, - lo_excel_writer TYPE REF TO zif_excel_writer, lo_worksheet TYPE REF TO zcl_excel_worksheet, lo_style_protection TYPE REF TO zcl_excel_style, lv_style_protection_guid TYPE zexcel_cell_style, @@ -26,38 +25,13 @@ DATA: lo_excel TYPE REF TO zcl_excel, lv_style TYPE zexcel_cell_style. -DATA: lv_file TYPE xstring, - lv_bytecount TYPE i, - lt_file_tab TYPE solix_tab. +CONSTANTS: gc_save_file_name TYPE string VALUE '17_SheetProtection.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. -DATA: lv_full_path TYPE string, - lv_workdir TYPE string, - lv_file_separator TYPE c. - -CONSTANTS: lv_default_file_name TYPE string VALUE '17_SheetProtection.xlsx'. - -PARAMETERS: p_path TYPE zexcel_export_dir, - p_pwd TYPE zexcel_aes_password LOWER CASE DEFAULT 'secret'. - -AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. - lv_workdir = p_path. - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir - CHANGING selected_folder = lv_workdir ). - p_path = lv_workdir. - -INITIALIZATION. - cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ). - cl_gui_cfw=>flush( ). - p_path = lv_workdir. +PARAMETERS: p_pwd TYPE zexcel_aes_password LOWER CASE DEFAULT 'secret'. START-OF-SELECTION. - IF p_path IS INITIAL. - p_path = lv_workdir. - ENDIF. - cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ). - CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. - CREATE OBJECT lo_excel. " Get active sheet @@ -84,24 +58,9 @@ START-OF-SELECTION. lo_worksheet->set_cell( ip_row = 7 ip_column = 'C' ip_value = 'This cell is unlocked' ip_style = lv_style_protection_guid ). lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = 'This cell is locked as all the others empty cell' ). - CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. - lv_file = lo_excel_writer->write_file( lo_excel ). - " Convert to binary - CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' - EXPORTING - buffer = lv_file - IMPORTING - output_length = lv_bytecount - TABLES - binary_tab = lt_file_tab. -* " This method is only available on AS ABAP > 6.40 -* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). -* lv_bytecount = xstrlen( lv_file ). - " Save the file - cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount - filename = lv_full_path - filetype = 'BIN' - CHANGING data_tab = lt_file_tab ). + +*** Create output + lcl_output=>output( lo_excel ). diff --git a/ZA2X/PROG/ZDEMO_EXCEL18.slnk b/ZA2X/PROG/ZDEMO_EXCEL18.slnk index eed571e..47e13cf 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL18.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL18.slnk @@ -1,8 +1,8 @@ - - + + - + @@ -17,41 +17,16 @@ REPORT zdemo_excel18. DATA: lo_excel TYPE REF TO zcl_excel, - lo_excel_writer TYPE REF TO zif_excel_writer, lo_worksheet TYPE REF TO zcl_excel_worksheet, lv_style_protection_guid TYPE zexcel_cell_style. -DATA: lv_file TYPE xstring, - lv_bytecount TYPE i, - lt_file_tab TYPE solix_tab. -DATA: lv_full_path TYPE string, - lv_workdir TYPE string, - lv_file_separator TYPE c. +CONSTANTS: gc_save_file_name TYPE string VALUE '18_BookProtection.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. -CONSTANTS: lv_default_file_name TYPE string VALUE '18_BookProtection.xlsx'. - -PARAMETERS: p_path TYPE zexcel_export_dir. - -AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. - lv_workdir = p_path. - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir - CHANGING selected_folder = lv_workdir ). - p_path = lv_workdir. - -INITIALIZATION. - cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ). - cl_gui_cfw=>flush( ). - p_path = lv_workdir. START-OF-SELECTION. - IF p_path IS INITIAL. - p_path = lv_workdir. - ENDIF. - cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ). - CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. - CREATE OBJECT lo_excel. " Get active sheet @@ -63,24 +38,9 @@ START-OF-SELECTION. lo_worksheet = lo_excel->get_active_worksheet( ). lo_worksheet->set_cell( ip_row = 4 ip_column = 'C' ip_value = 'This cell is unlocked' ip_style = lv_style_protection_guid ). - CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. - lv_file = lo_excel_writer->write_file( lo_excel ). - " Convert to binary - CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' - EXPORTING - buffer = lv_file - IMPORTING - output_length = lv_bytecount - TABLES - binary_tab = lt_file_tab. -* " This method is only available on AS ABAP > 6.40 -* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). -* lv_bytecount = xstrlen( lv_file ). - " Save the file - cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount - filename = lv_full_path - filetype = 'BIN' - CHANGING data_tab = lt_file_tab ). + +*** Create output + lcl_output=>output( lo_excel ). diff --git a/ZA2X/PROG/ZDEMO_EXCEL19.slnk b/ZA2X/PROG/ZDEMO_EXCEL19.slnk index 3cd1289..9576ebf 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL19.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL19.slnk @@ -1,8 +1,12 @@ - - + + + + + + - + @@ -20,41 +24,17 @@ REPORT zdemo_excel19. TYPE-POOLS: abap. DATA: lo_excel TYPE REF TO zcl_excel, - lo_excel_writer TYPE REF TO zif_excel_writer, lo_worksheet TYPE REF TO zcl_excel_worksheet. -DATA: lv_file TYPE xstring, - lv_bytecount TYPE i, - lt_file_tab TYPE solix_tab. -DATA: lv_full_path TYPE string, - lv_workdir TYPE string, - lv_file_separator TYPE c. +CONSTANTS: gc_save_file_name TYPE string VALUE '19_SetActiveSheet.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. -CONSTANTS: lv_default_file_name TYPE string VALUE '19_SetActiveSheet.xlsx'. +PARAMETERS: p_noout TYPE xfeld DEFAULT abap_true. -PARAMETERS: p_path TYPE zexcel_export_dir, - p_noout TYPE xfeld DEFAULT abap_true. - -AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. - lv_workdir = p_path. - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir - CHANGING selected_folder = lv_workdir ). - p_path = lv_workdir. - -INITIALIZATION. - cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ). - cl_gui_cfw=>flush( ). - p_path = lv_workdir. START-OF-SELECTION. - IF p_path IS INITIAL. - p_path = lv_workdir. - ENDIF. - cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ). - CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. - CREATE OBJECT lo_excel. " First Worksheet @@ -83,24 +63,8 @@ START-OF-SELECTION. active_sheet_index = lo_excel->get_active_sheet_index( ). WRITE: 'Sheet Index after: ', active_sheet_index. ENDIF. - CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. - lv_file = lo_excel_writer->write_file( lo_excel ). - " Convert to binary - CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' - EXPORTING - buffer = lv_file - IMPORTING - output_length = lv_bytecount - TABLES - binary_tab = lt_file_tab. -* " This method is only available on AS ABAP > 6.40 -* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). -* lv_bytecount = xstrlen( lv_file ). - " Save the file - cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount - filename = lv_full_path - filetype = 'BIN' - CHANGING data_tab = lt_file_tab ). +*** Create output + lcl_output=>output( lo_excel ). diff --git a/ZA2X/PROG/ZDEMO_EXCEL2.slnk b/ZA2X/PROG/ZDEMO_EXCEL2.slnk index da913b1..3b5b8a4 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL2.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL2.slnk @@ -1,8 +1,8 @@ - - + + - + @@ -17,7 +17,6 @@ REPORT zdemo_excel2. DATA: lo_excel TYPE REF TO zcl_excel, - lo_excel_writer TYPE REF TO zif_excel_writer, lo_worksheet TYPE REF TO zcl_excel_worksheet, lo_style_bold TYPE REF TO zcl_excel_style, lo_style_underline TYPE REF TO zcl_excel_style, @@ -43,28 +42,13 @@ DATA: lv_full_path TYPE string, lv_workdir TYPE string, lv_file_separator TYPE c. -CONSTANTS: lv_default_file_name TYPE string VALUE '02_Styles.xlsx'. +CONSTANTS: gc_save_file_name TYPE string VALUE '02_Styles.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. -PARAMETERS: p_path TYPE zexcel_export_dir. -AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. - lv_workdir = p_path. - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir - CHANGING selected_folder = lv_workdir ). - p_path = lv_workdir. - -INITIALIZATION. - cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ). - cl_gui_cfw=>flush( ). - p_path = lv_workdir. START-OF-SELECTION. - IF p_path IS INITIAL. - p_path = lv_workdir. - ENDIF. - cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ). - CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. " Creates active sheet CREATE OBJECT lo_excel. @@ -147,24 +131,26 @@ START-OF-SELECTION. " https://code.sdn.sap.com/spaces/abap2xlsx/tickets/44-exception-zcx_excel-thrown-when-style-is-set-for-an-empty-cell lo_worksheet->set_cell_style( ip_column = 'E' ip_row = 6 ip_style = lv_style_filled_green_guid ). - CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. - lv_file = lo_excel_writer->write_file( lo_excel ). +* CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. +* lv_file = lo_excel_writer->write_file( lo_excel ). +* +* " Convert to binary +* CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' +* EXPORTING +* buffer = lv_file +* IMPORTING +* output_length = lv_bytecount +* TABLES +* binary_tab = lt_file_tab. +** " This method is only available on AS ABAP > 6.40 +** lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). +** lv_bytecount = xstrlen( lv_file ). +* +* " Save the file +* cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount +* filename = lv_full_path +* filetype = 'BIN' +* CHANGING data_tab = lt_file_tab ). - " Convert to binary - CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' - EXPORTING - buffer = lv_file - IMPORTING - output_length = lv_bytecount - TABLES - binary_tab = lt_file_tab. -* " This method is only available on AS ABAP > 6.40 -* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). -* lv_bytecount = xstrlen( lv_file ). - - " Save the file - cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount - filename = lv_full_path - filetype = 'BIN' - CHANGING data_tab = lt_file_tab ). + lcl_output=>output( lo_excel ). diff --git a/ZA2X/PROG/ZDEMO_EXCEL21.slnk b/ZA2X/PROG/ZDEMO_EXCEL21.slnk index 4563643..6a3568b 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL21.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL21.slnk @@ -1,8 +1,8 @@ - - + + - + @@ -23,7 +23,6 @@ TYPES: END OF t_color_style. DATA: lo_excel TYPE REF TO zcl_excel, - lo_excel_writer TYPE REF TO zif_excel_writer, lo_worksheet TYPE REF TO zcl_excel_worksheet, lo_style_filled TYPE REF TO zcl_excel_style. @@ -52,37 +51,12 @@ DATA: row TYPE i, column TYPE zexcel_cell_column VALUE 1, col_str TYPE zexcel_cell_column_alpha. -DATA: lv_file TYPE xstring, - lv_bytecount TYPE i, - lt_file_tab TYPE solix_tab. +CONSTANTS: gc_save_file_name TYPE string VALUE '21_BackgroundColorPicker.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. -DATA: lv_full_path TYPE string, - lv_workdir TYPE string, - lv_file_separator TYPE c. - -CONSTANTS: lv_default_file_name TYPE string VALUE '21_BackgroundColorPicker.xlsx'. - -PARAMETERS: p_path TYPE zexcel_export_dir. - -AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. - lv_workdir = p_path. - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir - CHANGING selected_folder = lv_workdir ). - p_path = lv_workdir. - -INITIALIZATION. - cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ). - cl_gui_cfw=>flush( ). - p_path = lv_workdir. START-OF-SELECTION. - IF p_path IS INITIAL. - p_path = lv_workdir. - ENDIF. - cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ). - CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. - " Creates active sheet CREATE OBJECT lo_excel. @@ -151,24 +125,8 @@ START-OF-SELECTION. ADD 1 TO row. ENDDO. - CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. - lv_file = lo_excel_writer->write_file( lo_excel ). - " Convert to binary - CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' - EXPORTING - buffer = lv_file - IMPORTING - output_length = lv_bytecount - TABLES - binary_tab = lt_file_tab. -* " This method is only available on AS ABAP > 6.40 -* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). -* lv_bytecount = xstrlen( lv_file ). - " Save the file - cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount - filename = lv_full_path - filetype = 'BIN' - CHANGING data_tab = lt_file_tab ). +*** Create output + lcl_output=>output( lo_excel ). diff --git a/ZA2X/PROG/ZDEMO_EXCEL22.slnk b/ZA2X/PROG/ZDEMO_EXCEL22.slnk index 303e263..1aa1774 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL22.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL22.slnk @@ -1,8 +1,8 @@ - - + + - + @@ -17,7 +17,6 @@ REPORT zdemo_excel22. DATA: lo_excel TYPE REF TO zcl_excel, - lo_excel_writer TYPE REF TO zif_excel_writer, lo_worksheet TYPE REF TO zcl_excel_worksheet, lo_style TYPE REF TO zcl_excel_style, lo_style_date TYPE REF TO zcl_excel_style, @@ -28,41 +27,18 @@ DATA: lt_field_catalog TYPE zexcel_t_fieldcatalog, ls_table_settings TYPE zexcel_s_table_settings, ls_table_settings_out TYPE zexcel_s_table_settings. -DATA: lv_file TYPE xstring, - lv_style_guid TYPE zexcel_cell_style, - lv_bytecount TYPE i, - lt_file_tab TYPE solix_tab. +DATA: lv_style_guid TYPE zexcel_cell_style. -DATA: lv_full_path TYPE string, - lv_workdir TYPE string, - lv_file_separator TYPE c, - lv_row TYPE char10. +DATA: lv_row TYPE char10. FIELD-SYMBOLS: <fs_field_catalog> TYPE zexcel_s_fieldcatalog. -CONSTANTS: lv_default_file_name TYPE string VALUE '22_itab_fieldcatalog.xlsx'. +CONSTANTS: gc_save_file_name TYPE string VALUE '22_itab_fieldcatalog.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. -PARAMETERS: p_path TYPE zexcel_export_dir. - -AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. - lv_workdir = p_path. - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir - CHANGING selected_folder = lv_workdir ). - p_path = lv_workdir. - -INITIALIZATION. - cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ). - cl_gui_cfw=>flush( ). - p_path = lv_workdir. START-OF-SELECTION. - IF p_path IS INITIAL. - p_path = lv_workdir. - ENDIF. - cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ). - CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. - " Creates active sheet CREATE OBJECT lo_excel. @@ -152,24 +128,8 @@ START-OF-SELECTION. lo_data_validation->cell_row_to = ls_table_settings_out-bottom_right_row. lo_data_validation->cell_column_to = ls_table_settings_out-bottom_right_column. - CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. - lv_file = lo_excel_writer->write_file( lo_excel ). - " Convert to binary - CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' - EXPORTING - buffer = lv_file - IMPORTING - output_length = lv_bytecount - TABLES - binary_tab = lt_file_tab. -* " This method is only available on AS ABAP > 6.40 -* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). -* lv_bytecount = xstrlen( lv_file ). - " Save the file - cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount - filename = lv_full_path - filetype = 'BIN' - CHANGING data_tab = lt_file_tab ). +*** Create output + lcl_output=>output( lo_excel ). diff --git a/ZA2X/PROG/ZDEMO_EXCEL23.slnk b/ZA2X/PROG/ZDEMO_EXCEL23.slnk index 2d4fb9e..7cdd8c9 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL23.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL23.slnk @@ -1,8 +1,8 @@ - - + + - + *&---------------------------------------------------------------------* @@ -18,40 +18,16 @@ REPORT zdemo_excel23. TYPE-POOLS: abap. DATA: lo_excel TYPE REF TO zcl_excel, - lo_excel_writer TYPE REF TO zif_excel_writer, lo_worksheet TYPE REF TO zcl_excel_worksheet, lo_hyperlink TYPE REF TO zcl_excel_hyperlink. -DATA: lv_file TYPE xstring, - lv_bytecount TYPE i, - lt_file_tab TYPE solix_tab. -DATA: lv_full_path TYPE string, - lv_workdir TYPE string, - lv_file_separator TYPE c. +CONSTANTS: gc_save_file_name TYPE string VALUE '23_Sheets_with_and_without_grid_lines.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. -CONSTANTS: lv_default_file_name TYPE string VALUE '23_Sheets_with_and_without_grid_lines.xlsx'. - -PARAMETERS: p_path TYPE zexcel_export_dir. - -AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. - lv_workdir = p_path. - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir - CHANGING selected_folder = lv_workdir ). - p_path = lv_workdir. - -INITIALIZATION. - cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ). - cl_gui_cfw=>flush( ). - p_path = lv_workdir. START-OF-SELECTION. - IF p_path IS INITIAL. - p_path = lv_workdir. - ENDIF. - cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ). - CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. " Creates active sheet CREATE OBJECT lo_excel. @@ -116,24 +92,8 @@ START-OF-SELECTION. " lo_worksheet->sheet_setup->vertical_centered = abap_true. lo_worksheet->sheet_setup->horizontal_centered = abap_true. - CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. - lv_file = lo_excel_writer->write_file( io_excel = lo_excel ). - " Convert to binary - CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' - EXPORTING - buffer = lv_file - IMPORTING - output_length = lv_bytecount - TABLES - binary_tab = lt_file_tab. -* " This method is only available on AS ABAP > 6.40 -* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). -* lv_bytecount = xstrlen( lv_file ). - " Save the file - cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount - filename = lv_full_path - filetype = 'BIN' - CHANGING data_tab = lt_file_tab ). +*** Create output + lcl_output=>output( lo_excel ). diff --git a/ZA2X/PROG/ZDEMO_EXCEL24.slnk b/ZA2X/PROG/ZDEMO_EXCEL24.slnk index 98299f1..c8e3ee3 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL24.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL24.slnk @@ -1,8 +1,8 @@ - - + + - + *&---------------------------------------------------------------------* @@ -18,7 +18,6 @@ REPORT zdemo_excel24. TYPE-POOLS: abap. DATA: lo_excel TYPE REF TO zcl_excel, - lo_excel_writer TYPE REF TO zif_excel_writer, lo_worksheet TYPE REF TO zcl_excel_worksheet, column_dimension TYPE REF TO zcl_excel_worksheet_columndime, lo_hyperlink TYPE REF TO zcl_excel_hyperlink. @@ -33,29 +32,12 @@ DATA: lv_full_path TYPE string, DATA: lv_value TYPE string. -CONSTANTS: lv_default_file_name TYPE string VALUE '24_Sheets_with_different_default_date_formats.xlsx'. +CONSTANTS: gc_save_file_name TYPE string VALUE '24_Sheets_with_different_default_date_formats.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. -PARAMETERS: p_path TYPE zexcel_export_dir. - -AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. - lv_workdir = p_path. - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir - CHANGING selected_folder = lv_workdir ). - p_path = lv_workdir. - -INITIALIZATION. - cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ). - cl_gui_cfw=>flush( ). - p_path = lv_workdir. START-OF-SELECTION. - IF p_path IS INITIAL. - p_path = lv_workdir. - ENDIF. - cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ). - CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. - " Creates active sheet CREATE OBJECT lo_excel. @@ -102,24 +84,8 @@ START-OF-SELECTION. lo_excel->set_active_sheet_index_by_name( 'Sheet1' ). - CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. - lv_file = lo_excel_writer->write_file( io_excel = lo_excel ). - " Convert to binary - CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' - EXPORTING - buffer = lv_file - IMPORTING - output_length = lv_bytecount - TABLES - binary_tab = lt_file_tab. -* " This method is only available on AS ABAP > 6.40 -* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). -* lv_bytecount = xstrlen( lv_file ). - " Save the file - cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount - filename = lv_full_path - filetype = 'BIN' - CHANGING data_tab = lt_file_tab ). +*** Create output + lcl_output=>output( lo_excel ). diff --git a/ZA2X/PROG/ZDEMO_EXCEL27.slnk b/ZA2X/PROG/ZDEMO_EXCEL27.slnk index fef02fe..d178b78 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL27.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL27.slnk @@ -1,8 +1,8 @@ - - + + - + @@ -20,7 +20,6 @@ REPORT zdemo_excel27. CONSTANTS: c_fish TYPE string VALUE 'Fish'. DATA: lo_excel TYPE REF TO zcl_excel, - lo_excel_writer TYPE REF TO zif_excel_writer, lo_worksheet TYPE REF TO zcl_excel_worksheet, lo_range TYPE REF TO zcl_excel_range, lo_data_validation TYPE REF TO zcl_excel_data_validation, @@ -31,37 +30,15 @@ DATA: lo_excel TYPE REF TO zcl_excel, lv_style_2_guid TYPE zexcel_cell_style, ls_cellis TYPE zexcel_conditional_cellis. -DATA: lv_file TYPE xstring, - lv_bytecount TYPE i, - lt_file_tab TYPE solix_tab. -DATA: lv_full_path TYPE string, - lv_workdir TYPE string, - lv_title TYPE zexcel_sheet_title, - lv_file_separator TYPE c. +DATA: lv_title TYPE zexcel_sheet_title. -CONSTANTS: lv_default_file_name TYPE string VALUE '27_ConditionalFormatting.xlsx'. +CONSTANTS: gc_save_file_name TYPE string VALUE '27_ConditionalFormatting.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. -PARAMETERS: p_path TYPE zexcel_export_dir. - -AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. - lv_workdir = p_path. - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir - CHANGING selected_folder = lv_workdir ). - p_path = lv_workdir. - -INITIALIZATION. - cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ). - cl_gui_cfw=>flush( ). - p_path = lv_workdir. START-OF-SELECTION. - IF p_path IS INITIAL. - p_path = lv_workdir. - ENDIF. - cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ). - CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. " Creates active sheet CREATE OBJECT lo_excel. @@ -130,24 +107,7 @@ START-OF-SELECTION. ip_stop_row = 2 ). - CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. - lv_file = lo_excel_writer->write_file( lo_excel ). - " Convert to binary - CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' - EXPORTING - buffer = lv_file - IMPORTING - output_length = lv_bytecount - TABLES - binary_tab = lt_file_tab. -* " This method is only available on AS ABAP > 6.40 -* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). -* lv_bytecount = xstrlen( lv_file ). - - " Save the file - cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount - filename = lv_full_path - filetype = 'BIN' - CHANGING data_tab = lt_file_tab ). +*** Create output + lcl_output=>output( lo_excel ). diff --git a/ZA2X/PROG/ZDEMO_EXCEL3.slnk b/ZA2X/PROG/ZDEMO_EXCEL3.slnk index 0cc7de9..1298b7e 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL3.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL3.slnk @@ -1,8 +1,8 @@ - - + + - + @@ -20,19 +20,11 @@ REPORT zdemo_excel3. TYPE-POOLS: abap. DATA: lo_excel TYPE REF TO zcl_excel, - lo_excel_writer TYPE REF TO zif_excel_writer, lo_worksheet TYPE REF TO zcl_excel_worksheet, column_dimension TYPE REF TO zcl_excel_worksheet_columndime. DATA: ls_table_settings TYPE zexcel_s_table_settings. -DATA: lv_file TYPE xstring, - lv_bytecount TYPE i, - lt_file_tab TYPE solix_tab. - -DATA: lv_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, @@ -42,30 +34,14 @@ 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, - p_empty TYPE flag. -AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. - lv_workdir = p_path. - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir - CHANGING selected_folder = lv_workdir ). - p_path = lv_workdir. +CONSTANTS: gc_save_file_name TYPE string VALUE '03_iTab.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. -INITIALIZATION. - cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ). - cl_gui_cfw=>flush( ). - p_path = lv_workdir. +PARAMETERS: p_empty TYPE flag. START-OF-SELECTION. - - IF p_path IS INITIAL. - p_path = lv_workdir. - ENDIF. - cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ). - CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. - " Creates active sheet CREATE OBJECT lo_excel. @@ -117,25 +93,6 @@ START-OF-SELECTION. 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 ). - - " Convert to binary - CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' - EXPORTING - buffer = lv_file - IMPORTING - output_length = lv_bytecount - TABLES - binary_tab = lt_file_tab. -* " This method is only available on AS ABAP > 6.40 -* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). -* lv_bytecount = xstrlen( lv_file ). - - " Save the file - cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount - filename = lv_full_path - filetype = 'BIN' - CHANGING data_tab = lt_file_tab ). +*** Create output + lcl_output=>output( lo_excel ). diff --git a/ZA2X/PROG/ZDEMO_EXCEL30.slnk b/ZA2X/PROG/ZDEMO_EXCEL30.slnk index 5b21625..6d28e9b 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL30.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL30.slnk @@ -1,8 +1,8 @@ - - + + - + @@ -17,50 +17,26 @@ REPORT zdemo_excel30. DATA: lo_excel TYPE REF TO zcl_excel, - lo_excel_writer TYPE REF TO zif_excel_writer, lo_worksheet TYPE REF TO zcl_excel_worksheet, lo_hyperlink TYPE REF TO zcl_excel_hyperlink, column_dimension TYPE REF TO zcl_excel_worksheet_columndime. -DATA: lv_file TYPE xstring, - lv_bytecount TYPE i, - lt_file_tab TYPE solix_tab. - -DATA: lv_full_path TYPE string, - lv_workdir TYPE string, - lv_file_separator TYPE c. DATA: lv_value TYPE string, lv_count TYPE i VALUE 10, lv_packed TYPE p LENGTH 16 DECIMALS 1 VALUE '1234567890.5'. -CONSTANTS: lv_default_file_name TYPE string VALUE '30_CellDataTypes.xlsx', - lc_typekind_string TYPE abap_typekind VALUE cl_abap_typedescr=>typekind_string, +CONSTANTS: lc_typekind_string TYPE abap_typekind VALUE cl_abap_typedescr=>typekind_string, lc_typekind_packed TYPE abap_typekind VALUE cl_abap_typedescr=>typekind_packed, lc_typekind_num TYPE abap_typekind VALUE cl_abap_typedescr=>typekind_num, lc_typekind_date TYPE abap_typekind VALUE cl_abap_typedescr=>typekind_date. -PARAMETERS: p_path TYPE zexcel_export_dir. +CONSTANTS: gc_save_file_name TYPE string VALUE '30_CellDataTypes.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. -AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. - lv_workdir = p_path. - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir - CHANGING selected_folder = lv_workdir ). - p_path = lv_workdir. - -INITIALIZATION. - cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ). - cl_gui_cfw=>flush( ). - p_path = lv_workdir. START-OF-SELECTION. - IF p_path IS INITIAL. - p_path = lv_workdir. - ENDIF. - cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ). - CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. - " Creates active sheet CREATE OBJECT lo_excel. @@ -121,24 +97,9 @@ START-OF-SELECTION. column_dimension = lo_worksheet->get_column_dimension( ip_column = 'E' ). column_dimension->set_auto_size( abap_true ). - CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. - lv_file = lo_excel_writer->write_file( lo_excel ). - " Convert to binary - CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' - EXPORTING - buffer = lv_file - IMPORTING - output_length = lv_bytecount - TABLES - binary_tab = lt_file_tab. -* " This method is only available on AS ABAP > 6.40 -* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). -* lv_bytecount = xstrlen( lv_file ). - " Save the file - cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount - filename = lv_full_path - filetype = 'BIN' - CHANGING data_tab = lt_file_tab ). + +*** Create output + lcl_output=>output( lo_excel ). diff --git a/ZA2X/PROG/ZDEMO_EXCEL31.slnk b/ZA2X/PROG/ZDEMO_EXCEL31.slnk index 88853e2..8f0fc52 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL31.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL31.slnk @@ -1,8 +1,8 @@ - - + + - + @@ -17,18 +17,10 @@ REPORT zdemo_excel31. DATA: lo_excel TYPE REF TO zcl_excel, - lo_excel_writer TYPE REF TO zif_excel_writer, lo_worksheet TYPE REF TO zcl_excel_worksheet, lo_hyperlink TYPE REF TO zcl_excel_hyperlink, column_dimension TYPE REF TO zcl_excel_worksheet_columndime. -DATA: lv_file TYPE xstring, - lv_bytecount TYPE i, - lt_file_tab TYPE solix_tab. - -DATA: lv_full_path TYPE string, - lv_workdir TYPE string, - lv_file_separator TYPE c. DATA: fieldval TYPE text80, row TYPE i, @@ -37,29 +29,12 @@ DATA: fieldval TYPE text80, style_column_c TYPE REF TO zcl_excel_style, style_column_c_guid TYPE zexcel_cell_style. -CONSTANTS: lv_default_file_name TYPE string VALUE '31_AutosizeWithDifferentFontSizes.xlsx'. +CONSTANTS: gc_save_file_name TYPE string VALUE '31_AutosizeWithDifferentFontSizes.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. -PARAMETERS: p_path TYPE zexcel_export_dir. - -AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. - lv_workdir = p_path. - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir - CHANGING selected_folder = lv_workdir ). - p_path = lv_workdir. - -INITIALIZATION. - cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ). - cl_gui_cfw=>flush( ). - p_path = lv_workdir. START-OF-SELECTION. - IF p_path IS INITIAL. - p_path = lv_workdir. - ENDIF. - cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ). - CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. - " Creates active sheet CREATE OBJECT lo_excel. lo_worksheet = lo_excel->get_active_worksheet( ). @@ -92,42 +67,9 @@ START-OF-SELECTION. column_dimension = lo_worksheet->get_column_dimension( 'C' ). column_dimension->set_auto_size( ip_auto_size = abap_true ). - CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. - lv_file = lo_excel_writer->write_file( lo_excel ). - lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). - lv_bytecount = XSTRLEN( lv_file ). -* DATA: error TYPE REF TO i_oi_error, -* t_errors TYPE STANDARD TABLE OF REF TO i_oi_error WITH NON-UNIQUE DEFAULT KEY, -* cl_control TYPE REF TO i_oi_container_control,"OIContainerCtrl -* cl_document TYPE REF TO i_oi_document_proxy. "Office Dokument -* -* c_oi_container_control_creator=>get_container_control( IMPORTING control = cl_control -* error = error ). -* APPEND error TO t_errors. -* -* cl_control->init_control( EXPORTING inplace_enabled = 'X' -* no_flush = 'X' -* r3_application_name = 'Demo Document Container' -* parent = cl_gui_container=>screen0 -* IMPORTING error = error -* EXCEPTIONS OTHERS = 2 ). -* APPEND error TO t_errors. -* -* cl_control->get_document_proxy( EXPORTING document_type = 'Excel.Sheet' " EXCEL -* no_flush = ' ' -* IMPORTING document_proxy = cl_document -* error = error ). -* APPEND error TO t_errors. -** Errorhandling should be inserted here -* -* cl_document->open_document_from_table( EXPORTING document_size = lv_bytecount -* document_table = lt_file_tab ). - " Save the file - cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount - filename = lv_full_path - filetype = 'BIN' - CHANGING data_tab = lt_file_tab ). +*** Create output + lcl_output=>output( lo_excel ). diff --git a/ZA2X/PROG/ZDEMO_EXCEL33.slnk b/ZA2X/PROG/ZDEMO_EXCEL33.slnk index 2023b75..fb63588 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL33.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL33.slnk @@ -1,8 +1,8 @@ - - + + - + @@ -20,21 +20,12 @@ REPORT zdemo_excel33. TYPE-POOLS: abap. DATA: lo_excel TYPE REF TO zcl_excel, - lo_excel_writer TYPE REF TO zif_excel_writer, lo_worksheet TYPE REF TO zcl_excel_worksheet, lo_converter TYPE REF TO zcl_excel_converter, lo_autofilter TYPE REF TO zcl_excel_autofilter. DATA lt_test TYPE TABLE OF sflight. -DATA: lv_file TYPE xstring, - lv_bytecount TYPE i, - lt_file_tab TYPE solix_tab. - -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, @@ -50,29 +41,13 @@ FIELD-SYMBOLS: <fs_test> TYPE sflight, <fs_fldval> TYPE ANY. CONSTANTS: c_airlines TYPE string VALUE 'Airlines'. -CONSTANTS: lv_default_file_name TYPE string VALUE '33_autofilter.xlsx'. -PARAMETERS: p_path TYPE zexcel_export_dir. +CONSTANTS: gc_save_file_name TYPE string VALUE '33_autofilter.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. -AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. - lv_workdir = p_path. - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir - CHANGING selected_folder = lv_workdir ). - p_path = lv_workdir. - -INITIALIZATION. - cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ). - cl_gui_cfw=>flush( ). - p_path = lv_workdir. START-OF-SELECTION. - IF p_path IS INITIAL. - p_path = lv_workdir. - ENDIF. - cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ). - CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. - " Creates active sheet CREATE OBJECT lo_excel. @@ -110,25 +85,7 @@ START-OF-SELECTION. lo_autofilter->set_value( i_column = 3 i_value = l_cell_value ). - " Write to Excel 2007 - CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. - lv_file = lo_excel_writer->write_file( lo_excel ). - " Convert to binary - CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' - EXPORTING - buffer = lv_file - IMPORTING - output_length = lv_bytecount - TABLES - binary_tab = lt_file_tab. -* " This method is only available on AS ABAP > 6.40 -* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). -* lv_bytecount = xstrlen( lv_file ). - - " Save the file - cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount - filename = lv_full_path - filetype = 'BIN' - CHANGING data_tab = lt_file_tab ). +*** Create output + lcl_output=>output( lo_excel ). diff --git a/ZA2X/PROG/ZDEMO_EXCEL4.slnk b/ZA2X/PROG/ZDEMO_EXCEL4.slnk index 81fb500..b5f7aba 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL4.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL4.slnk @@ -1,8 +1,8 @@ - - + + - + @@ -17,44 +17,18 @@ REPORT zdemo_excel4. DATA: lo_excel TYPE REF TO zcl_excel, - lo_excel_writer TYPE REF TO zif_excel_writer, lo_worksheet TYPE REF TO zcl_excel_worksheet, lo_hyperlink TYPE REF TO zcl_excel_hyperlink. -DATA: lv_file TYPE xstring, - lv_bytecount TYPE i, - lt_file_tab TYPE solix_tab. - -DATA: lv_full_path TYPE string, - lv_workdir TYPE string, - lv_file_separator TYPE c. - DATA: ls_header TYPE zexcel_s_worksheet_head_foot, ls_footer TYPE zexcel_s_worksheet_head_foot. -CONSTANTS: lv_default_file_name TYPE string VALUE '04_Sheets.xlsx'. +CONSTANTS: gc_save_file_name TYPE string VALUE '04_Sheets.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. -PARAMETERS: p_path TYPE zexcel_export_dir. - -AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. - lv_workdir = p_path. - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir - CHANGING selected_folder = lv_workdir ). - p_path = lv_workdir. - -INITIALIZATION. - cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ). - cl_gui_cfw=>flush( ). - p_path = lv_workdir. START-OF-SELECTION. - IF p_path IS INITIAL. - p_path = lv_workdir. - ENDIF. - cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ). - CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. - " Creates active sheet CREATE OBJECT lo_excel. @@ -121,24 +95,7 @@ START-OF-SELECTION. lo_excel->set_active_sheet_index_by_name( 'Sheet1' ). - CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. - lv_file = lo_excel_writer->write_file( lo_excel ). - " Convert to binary - CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' - EXPORTING - buffer = lv_file - IMPORTING - output_length = lv_bytecount - TABLES - binary_tab = lt_file_tab. -* " This method is only available on AS ABAP > 6.40 -* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). -* lv_bytecount = xstrlen( lv_file ). - - " Save the file - cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount - filename = lv_full_path - filetype = 'BIN' - CHANGING data_tab = lt_file_tab ). +*** Create output + lcl_output=>output( lo_excel ). diff --git a/ZA2X/PROG/ZDEMO_EXCEL6.slnk b/ZA2X/PROG/ZDEMO_EXCEL6.slnk index 7abea68..51e8323 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL6.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL6.slnk @@ -1,8 +1,8 @@ - - + + - + @@ -17,40 +17,15 @@ REPORT zdemo_excel6. DATA: lo_excel TYPE REF TO zcl_excel, - lo_excel_writer TYPE REF TO zif_excel_writer, lo_worksheet TYPE REF TO zcl_excel_worksheet. -DATA: lv_file TYPE xstring, - lv_bytecount TYPE i, - lt_file_tab TYPE solix_tab. -DATA: lv_full_path TYPE string, - lv_workdir TYPE string, - lv_file_separator TYPE c. +CONSTANTS: gc_save_file_name TYPE string VALUE '06_Formulas.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. -CONSTANTS: lv_default_file_name TYPE string VALUE '06_Formulas.xlsx'. - -PARAMETERS: p_path TYPE zexcel_export_dir. - -AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. - lv_workdir = p_path. - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir - CHANGING selected_folder = lv_workdir ). - p_path = lv_workdir. - -INITIALIZATION. - cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ). - cl_gui_cfw=>flush( ). - p_path = lv_workdir. START-OF-SELECTION. - IF p_path IS INITIAL. - p_path = lv_workdir. - ENDIF. - cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ). - CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. - CREATE OBJECT lo_excel. " Get active sheet @@ -63,24 +38,7 @@ START-OF-SELECTION. lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = 500 ). lo_worksheet->set_cell( ip_row = 9 ip_column = 'C' ip_formula = 'SUM(C4:C8)' ). - CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. - lv_file = lo_excel_writer->write_file( lo_excel ). - " Convert to binary - CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' - EXPORTING - buffer = lv_file - IMPORTING - output_length = lv_bytecount - TABLES - binary_tab = lt_file_tab. -* " This method is only available on AS ABAP > 6.40 -* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). -* lv_bytecount = xstrlen( lv_file ). - - " Save the file - cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount - filename = lv_full_path - filetype = 'BIN' - CHANGING data_tab = lt_file_tab ). +*** Create output + lcl_output=>output( lo_excel ). diff --git a/ZA2X/PROG/ZDEMO_EXCEL7.slnk b/ZA2X/PROG/ZDEMO_EXCEL7.slnk index 0548d73..56a7617 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL7.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL7.slnk @@ -1,8 +1,8 @@ - - + + - + @@ -17,7 +17,6 @@ REPORT zdemo_excel7. DATA: lo_excel TYPE REF TO zcl_excel, - lo_excel_writer TYPE REF TO zif_excel_writer, lo_worksheet TYPE REF TO zcl_excel_worksheet, lo_style_conditional TYPE REF TO zcl_excel_style_conditional. @@ -25,37 +24,12 @@ DATA: ls_iconset3 TYPE zexcel_conditional_iconset, ls_iconset4 TYPE zexcel_conditional_iconset, ls_iconset5 TYPE zexcel_conditional_iconset. -DATA: lv_file TYPE xstring, - lv_bytecount TYPE i, - lt_file_tab TYPE solix_tab. +CONSTANTS: gc_save_file_name TYPE string VALUE '07_ConditionalAll.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. -DATA: lv_full_path TYPE string, - lv_workdir TYPE string, - lv_file_separator TYPE c. - -CONSTANTS: lv_default_file_name TYPE string VALUE '07_ConditionalAll.xlsx'. - -PARAMETERS: p_path TYPE zexcel_export_dir. - -AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. - lv_workdir = p_path. - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir - CHANGING selected_folder = lv_workdir ). - p_path = lv_workdir. - -INITIALIZATION. - cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ). - cl_gui_cfw=>flush( ). - p_path = lv_workdir. START-OF-SELECTION. - IF p_path IS INITIAL. - p_path = lv_workdir. - ENDIF. - cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ). - CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. - CREATE OBJECT lo_excel. ls_iconset3-cfvo1_type = zcl_excel_style_conditional=>c_cfvo_type_percent. @@ -381,24 +355,7 @@ START-OF-SELECTION. lo_worksheet->set_cell( ip_row = 22 ip_column = 'E' ip_value = 40 ). lo_worksheet->set_cell( ip_row = 23 ip_column = 'E' ip_value = 50 ). - CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. - lv_file = lo_excel_writer->write_file( lo_excel ). - " Convert to binary - CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' - EXPORTING - buffer = lv_file - IMPORTING - output_length = lv_bytecount - TABLES - binary_tab = lt_file_tab. -* " This method is only available on AS ABAP > 6.40 -* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). -* lv_bytecount = xstrlen( lv_file ). - - " Save the file - cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount - filename = lv_full_path - filetype = 'BIN' - CHANGING data_tab = lt_file_tab ). +*** Create output + lcl_output=>output( lo_excel ). diff --git a/ZA2X/PROG/ZDEMO_EXCEL8.slnk b/ZA2X/PROG/ZDEMO_EXCEL8.slnk index 5ba0702..9036b92 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL8.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL8.slnk @@ -1,8 +1,8 @@ - - + + - + @@ -17,42 +17,17 @@ REPORT zdemo_excel8. DATA: lo_excel TYPE REF TO zcl_excel, - lo_excel_writer TYPE REF TO zif_excel_writer, lo_worksheet TYPE REF TO zcl_excel_worksheet, lo_range TYPE REF TO zcl_excel_range. -DATA: lv_file TYPE xstring, - lv_bytecount TYPE i, - lt_file_tab TYPE solix_tab. +DATA: lv_title TYPE zexcel_sheet_title. -DATA: lv_full_path TYPE string, - lv_workdir TYPE string, - lv_title TYPE zexcel_sheet_title, - lv_file_separator TYPE c. +CONSTANTS: gc_save_file_name TYPE string VALUE '08_Range.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. -CONSTANTS: lv_default_file_name TYPE string VALUE '08_Range.xlsx'. - -PARAMETERS: p_path TYPE zexcel_export_dir. - -AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. - lv_workdir = p_path. - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir - CHANGING selected_folder = lv_workdir ). - p_path = lv_workdir. - -INITIALIZATION. - cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ). - cl_gui_cfw=>flush( ). - p_path = lv_workdir. START-OF-SELECTION. - IF p_path IS INITIAL. - p_path = lv_workdir. - ENDIF. - cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ). - CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. - CREATE OBJECT lo_excel. " Get active sheet @@ -74,24 +49,7 @@ START-OF-SELECTION. lo_worksheet->set_cell( ip_row = 7 ip_column = 'C' ip_value = 'Ananas' ). lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = 'Grapes' ). - CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. - lv_file = lo_excel_writer->write_file( lo_excel ). - " Convert to binary - CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' - EXPORTING - buffer = lv_file - IMPORTING - output_length = lv_bytecount - TABLES - binary_tab = lt_file_tab. -* " This method is only available on AS ABAP > 6.40 -* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). -* lv_bytecount = xstrlen( lv_file ). - - " Save the file - cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount - filename = lv_full_path - filetype = 'BIN' - CHANGING data_tab = lt_file_tab ). +*** Create output + lcl_output=>output( lo_excel ). diff --git a/ZA2X/PROG/ZDEMO_EXCEL9.slnk b/ZA2X/PROG/ZDEMO_EXCEL9.slnk index 962bafe..3157687 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL9.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL9.slnk @@ -1,8 +1,8 @@ - - + + - + @@ -23,46 +23,24 @@ CONSTANTS: c_fruits TYPE string VALUE 'Fruits', c_fish TYPE string VALUE 'Fish'. DATA: lo_excel TYPE REF TO zcl_excel, - lo_excel_writer TYPE REF TO zif_excel_writer, lo_worksheet TYPE REF TO zcl_excel_worksheet, lo_range TYPE REF TO zcl_excel_range, lo_data_validation TYPE REF TO zcl_excel_data_validation. DATA: row TYPE zexcel_cell_row. -DATA: lv_file TYPE xstring, - lv_bytecount TYPE i, - lt_file_tab TYPE solix_tab. -DATA: lv_full_path TYPE string, - lv_workdir TYPE string, - lv_title TYPE zexcel_sheet_title, - lv_file_separator TYPE c. +DATA: lv_title TYPE zexcel_sheet_title. -CONSTANTS: lv_default_file_name TYPE string VALUE '09_DataValidation.xlsx'. -PARAMETERS: p_path TYPE zexcel_export_dir, - p_sbook TYPE flag. +CONSTANTS: gc_save_file_name TYPE string VALUE '09_DataValidation.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. -AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. - lv_workdir = p_path. - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir - CHANGING selected_folder = lv_workdir ). - p_path = lv_workdir. +PARAMETERS: p_sbook TYPE flag. -INITIALIZATION. - cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ). - cl_gui_cfw=>flush( ). - p_path = lv_workdir. START-OF-SELECTION. - IF p_path IS INITIAL. - p_path = lv_workdir. - ENDIF. - cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ). - CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. - " Creates active sheet CREATE OBJECT lo_excel. @@ -219,24 +197,7 @@ START-OF-SELECTION. ). ENDIF. - CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. - lv_file = lo_excel_writer->write_file( lo_excel ). - " Convert to binary - CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' - EXPORTING - buffer = lv_file - IMPORTING - output_length = lv_bytecount - TABLES - binary_tab = lt_file_tab. -* " This method is only available on AS ABAP > 6.40 -* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). -* lv_bytecount = xstrlen( lv_file ). - - " Save the file - cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount - filename = lv_full_path - filetype = 'BIN' - CHANGING data_tab = lt_file_tab ). +*** Create output + lcl_output=>output( lo_excel ).