DOI create excel

  1. REPORT  ztest_create_excel NO STANDARD PAGE HEADING.  
  2.    
  3. DATA:  
  4. oref_container   TYPE REF TO cl_gui_custom_container,  
  5. iref_control     TYPE REF TO i_oi_container_control,  
  6. iref_document    TYPE REF TO i_oi_document_proxy,  
  7. iref_spreadsheet TYPE REF TO i_oi_spreadsheet,  
  8. iref_error       TYPE REF TO i_oi_error.  
  9.    
  10. DATA: BEGIN OF it_spfli OCCURS 0.  
  11.        INCLUDE STRUCTURE spfli.  
  12. DATA: END OF it_spfli.  
  13.    
  14. DATA:  
  15. v_document_url TYPE c LENGTH 256,  
  16. i_sheets TYPE soi_sheets_table,  
  17. wa_sheets TYPE soi_sheets,  
  18. i_data        TYPE soi_generic_table,  
  19. wa_data       TYPE soi_generic_item,  
  20. i_ranges      TYPE soi_range_list.  
  21.    
  22. *PARAMETERS:  
  23. *p_file  TYPE  localfile OBLIGATORY,  
  24. *p_rows TYPE i DEFAULT 100 OBLIGATORY,   "Rows (Maximum 65536)  
  25. *p_cols TYPE i DEFAULT 10 OBLIGATORY.    "Columns (Maximum 256)  
  26.    
  27. INITIALIZATION.  
  28.    
  29.  CALL METHOD c_oi_container_control_creator=>get_container_control  
  30.    IMPORTING  
  31.      control = iref_control  
  32.      error   = iref_error.  
  33.  IF iref_error->has_failed = 'X'.  
  34.    CALL METHOD iref_error->raise_message  
  35.      EXPORTING  
  36.        type = 'E'.  
  37.  ENDIF.  
  38.    
  39.    
  40.  CREATE OBJECT oref_container  
  41.    EXPORTING  
  42.      container_name              = 'CONT'  
  43.    EXCEPTIONS  
  44.      cntl_error                  = 1  
  45.      cntl_system_error           = 2  
  46.      create_error                = 3  
  47.      lifetime_error              = 4  
  48.      lifetime_dynpro_dynpro_link = 5  
  49.      OTHERS                      = 6.  
  50.  IF sy-subrc <> 0.  
  51.    MESSAGE e001(00) WITH 'Error while creating container'.  
  52.  ENDIF.  
  53.    
  54.  CALL METHOD iref_control->init_control  
  55.    EXPORTING  
  56.      inplace_enabled      = 'X'  
  57.      r3_application_name  = 'EXCEL CONTAINER'  
  58.      parent               = oref_container  
  59.    IMPORTING  
  60.      error                = iref_error  
  61.    EXCEPTIONS  
  62. *      javabeannotsupported = 1  
  63.      OTHERS               = 2.  
  64.  IF iref_error->has_failed = 'X'.  
  65.    CALL METHOD iref_error->raise_message  
  66.      EXPORTING  
  67.        type = 'E'.  
  68.  ENDIF.  
  69.    
  70.  CALL METHOD iref_control->get_document_proxy  
  71.    EXPORTING  
  72.      document_type  = soi_doctype_excel_sheet  
  73.    IMPORTING  
  74.      document_proxy = iref_document  
  75.      error          = iref_error.  
  76.  IF iref_error->has_failed = 'X'.  
  77.    CALL METHOD iref_error->raise_message  
  78.      EXPORTING  
  79.        type = 'E'.  
  80.  ENDIF.  
  81.    
  82. *AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.  
  83. *  
  84. ** To provide F4 help for the file  
  85. *  PERFORM sub_file_f4.  
  86.    
  87. START-OF-SELECTION.  
  88.    
  89.  SELECT * FROM spfli INTO TABLE it_spfli.  
  90. *  CONCATENATE 'FILE://' p_file INTO v_document_url.  
  91.    
  92. *  CALL METHOD iref_document->open_document  
  93. *    EXPORTING  
  94. *      document_title = 'Excel'  
  95. *      document_url   = v_document_url  
  96. *      open_inplace   = 'X'  
  97. *    IMPORTING  
  98. *      error          = iref_error.  
  99. *  IF iref_error->has_failed = 'X'.  
  100. *    CALL METHOD iref_error->raise_message  
  101. *      EXPORTING  
  102. *        type = 'I'.  
  103. *    LEAVE LIST-PROCESSING.  
  104. *  ENDIF.  
  105.    
  106.  CALL METHOD iref_document->create_document  
  107.    EXPORTING  
  108.      document_title = 'Excel'  
  109.      open_inplace   = 'X'  
  110.    IMPORTING  
  111.      error          = iref_error.  
  112.  IF iref_error->has_failed EQ 'X'.  
  113.    CALL METHOD iref_error->raise_message  
  114.      EXPORTING  
  115.        type = 'I'.  
  116.  ENDIF.  
  117.    
  118.  CALL METHOD iref_document->get_spreadsheet_interface  
  119.    EXPORTING  
  120.      no_flush        = ' '  
  121.    IMPORTING  
  122.      error           = iref_error  
  123.      sheet_interface = iref_spreadsheet.  
  124.    
  125.  IF iref_error->has_failed = 'X'.  
  126.    CALL METHOD iref_error->raise_message  
  127.      EXPORTING  
  128.        type = 'I'.  
  129.    LEAVE LIST-PROCESSING.  
  130.  ENDIF.  
  131.    
  132.  CALL METHOD iref_spreadsheet->insert_range  
  133.    EXPORTING  
  134.      name    = 'TEST'  
  135.      rows    = 20  
  136.      columns = 16  
  137.    IMPORTING  
  138.      error   = iref_error.  
  139.  IF iref_error->has_failed EQ 'X'.  
  140.    CALL METHOD iref_error->raise_message  
  141.      EXPORTING  
  142.        type = 'I'.  
  143.  ENDIF.  
  144.    
  145.  CALL METHOD iref_spreadsheet->insert_one_table  
  146.    EXPORTING  
  147.      ddic_name  = 'SPFLI'  
  148.      data_table = it_spfli[]  
  149.      rangename  = 'TEST'  
  150.      wholetable = 'X'  
  151.    IMPORTING  
  152.      error      = iref_error.  
  153.    
  154.  IF iref_error->has_failed EQ 'X'.  
  155.    CALL METHOD iref_error->raise_message  
  156.      EXPORTING  
  157.        type = 'I'.  
  158.  ENDIF.  
  159.    
  160.    
  161.  CALL METHOD iref_document->save_as  
  162.    EXPORTING  
  163.      file_name = 'C:\TEXT.XLS'  
  164.    IMPORTING  
  165.      error     = iref_error.  
  166.    
  167.  IF iref_error->has_failed EQ 'X'.  
  168.    CALL METHOD iref_error->raise_message  
  169.      EXPORTING  
  170.        type = 'I'.  
  171.  ENDIF.  
  172.    
  173.   
  174.  CALL METHOD iref_document->close_document  
  175.    IMPORTING  
  176.      error = iref_error.  
  177.  IF iref_error->has_failed = 'X'.  
  178.    CALL METHOD iref_error->raise_message  
  179.      EXPORTING  
  180.        type = 'I'.  
  181.    LEAVE LIST-PROCESSING.  
  182.  ENDIF.  
  183.    
  184.  CALL METHOD iref_document->release_document  
  185.    IMPORTING  
  186.      error = iref_error.  
  187.  IF iref_error->has_failed = 'X'.  
  188.    CALL METHOD iref_error->raise_message  
  189.      EXPORTING  
  190.        type = 'I'.  
  191.    LEAVE LIST-PROCESSING.  
  192.  ENDIF. 

你可能感兴趣的:(DOI create excel)