文件相關 - Inner Table to Excel

REPORT ytest002.

" data to excel - > format EXCEL 2010
DATA : lt_tj02t TYPE STANDARD TABLE OF tj02t INITIAL SIZE 0 WITH HEADER LINE.
DATA : l_filename TYPE string.
DATA: r_result_data   TYPE REF TO cl_salv_ex_result_data_table.
DATA: r_data TYPE REF TO data,
      s_data TYPE REF TO data.

SELECT * INTO TABLE lt_tj02t FROM tj02t UP TO 100 ROWS.

DATA : s_layout       TYPE lvc_s_layo,
       t_fieldcatalog TYPE lvc_t_fcat,
       s_fieldcatalog TYPE lvc_s_fcat.

CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
  EXPORTING
    i_structure_name       = 'TJ02T'
    i_client_never_display = ''
  CHANGING
    ct_fieldcat            = t_fieldcatalog
  EXCEPTIONS
    inconsistent_interface = 1
    program_error          = 2
    OTHERS                 = 3.

*LOOP AT t_fieldcatalog INTO s_fieldcatalog WHERE reptext IS INITIAL.
*  READ TABLE lt_txt WITH KEY fieldname = s_fieldcatalog-fieldname.
*  s_fieldcatalog-reptext = ''.
*  MODIFY t_fieldcatalog FROM s_fieldcatalog TRANSPORTING reptext.
*  CLEAR :lt_txt,s_fieldcatalog.
*ENDLOOP.


s_layout-zebra = 'X'.
s_layout-cwidth_opt = 'X'.


CALL METHOD cl_alv_table_create=>table_copy
  EXPORTING
    it_outtab       = lt_tj02t[]
    it_fieldcatalog = t_fieldcatalog[]
  IMPORTING
    ep_table        = r_data.

r_result_data = cl_salv_ex_util=>factory_result_data_table(
    r_data                      = r_data
    s_layout                    = s_layout
    t_fieldcatalog              = t_fieldcatalog
*    t_sort                      = s_param_lvc-t_sort
*    t_filter                    = s_param_lvc-t_filt
*    t_hyperlinks                = s_param_lvc-s_hype-t_hype
*        IS_CURRENT_CELL              = ls_cur_cell
*    hyperlink_entry_column     = l_hlink_colname
*        I_DROPDOWN_ENTRY_COLUMN      = ls_dropdown_entry
*        IT_DROPDOWN_VALUES           = lt_drdn )
*        ir_top_of_list               = lr_form_tol
*        ir_end_of_list               = lr_form_eol
                             ).

"conversion to EXCEL ->format
DATA: l_version TYPE string.
DATA: xml TYPE xstring.

CASE cl_salv_bs_a_xml_base=>get_version( ).
  WHEN if_salv_bs_xml=>version_25.
    l_version = if_salv_bs_xml=>version_25.
  WHEN if_salv_bs_xml=>version_26.
    l_version = if_salv_bs_xml=>version_26.
ENDCASE.

CALL METHOD cl_salv_bs_tt_util=>if_salv_bs_tt_util~transform
  EXPORTING
    xml_type      = '09'   "10-OFFICE 20** , 09-2000/97 MHTML , 08-EXCEL XXL , 05-OPEN OFFICE , 04-2003 XML , 02- MHTML , 01-XML
    xml_version   = l_version
    r_result_data = r_result_data
    xml_flavour   = if_salv_bs_c_tt=>c_tt_xml_flavour_export
    gui_type      = if_salv_bs_xml=>c_gui_type_gui
  IMPORTING
    xml           = xml.


*CALL FUNCTION 'XML_EXPORT_DIALOG' 

DATA l_xml_stream   TYPE tsfixml. "xml_rawdata.
DATA l_length TYPE i.

"xstring to bin
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
  EXPORTING
    buffer        = xml
  IMPORTING
    output_length = l_length
  TABLES
    binary_tab    = l_xml_stream.

"download
CALL METHOD cl_gui_frontend_services=>gui_download
  EXPORTING
    bin_filesize = l_length
    filetype     = 'BIN'
    filename     = 'D:\TEST.MHTML'
  CHANGING
    data_tab     = l_xml_stream
  EXCEPTIONS
    OTHERS       = 1.

"open
CALL METHOD cl_gui_frontend_services=>execute
  EXPORTING
    document               = 'D:\TEST.MHTML'
    application            = ''
    parameter              = ''
  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
    OTHERS                 = 10.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章