如何创建文件xslx multpi表树液

问题描述 投票:-1回答:1

我需要从字符串的itab创建文件xlsx。我使用了cl_gui_frontend_services类,即剪贴板_导出方法。我编写了以下代码,但未按预期在路径中创建文件。

      IF v_excel-header = space OR v_excel-handle = -1.
        CREATE OBJECT v_excel 'EXCEL.APPLICATION'.
      ENDIF.

      CALL METHOD OF v_excel 'Workbooks' = v_workbooklist.
      SET PROPERTY OF v_excel 'Visible' = 0.
      CALL METHOD OF v_workbooklist 'Add' = v_workbook.

      v_sheet_name = 'A'.
      SET PROPERTY OF v_worksheet 'Name' = v_sheet_name.
      GET PROPERTY OF v_excel 'ACTIVESHEET' = v_worksheet.

      CALL METHOD OF v_excel 'range' = v_range
      EXPORTING
        #1 = 'A1' "From column
        #2 = 'D1'. "To column


      CALL METHOD cl_gui_frontend_services=>clipboard_export
        IMPORTING
          data                 = pt_data_s1
        CHANGING
          rc                   = v_return_code
        EXCEPTIONS
          cntl_error           = 1
          error_no_gui         = 2
          not_supported_by_gui = 3
          OTHERS               = 4.

      CALL METHOD OF v_excel 'Cells' = v_fromcell
      EXPORTING
        #1 = 1
        #2 = 1.

      CALL METHOD OF v_excel 'Cells' = v_tocell
      EXPORTING
        #1 = 3
        #2 = 4.

      CALL METHOD OF v_excel 'Range' = v_datarange
      EXPORTING
        #1 = v_fromcell
        #2 = v_tocell.

      CALL METHOD OF v_excel 'Columns' = v_column.
      CALL METHOD OF v_column 'Autofit'.
      FREE OBJECT v_column.

      CALL METHOD OF v_datarange 'Select'.
      CALL METHOD OF v_worksheet 'Paste'.

      GET PROPERTY OF v_excel 'ActiveWorkbook' = v_worksheet.

      CALL METHOD OF v_worksheet 'SAVEAS'
        EXPORTING
          #1 = lv_path
          #2 = 1.

      CALL METHOD OF v_worksheet 'close'.

有人可以给我一些建议吗?谢谢

sap xlsx abap
1个回答
0
投票

乞求时,您需要调用工作表的方法,例如:

DATA: go_sheet       TYPE ole2_object.

CALL METHOD OF v_excel 
      'Worksheets'   = go_sheet
    EXPORTING
      #1             = gs_config-id_sheet.

CALL METHOD OF go_sheet 'Activate'.
SET PROPERTY OF go_sheet 'Name' = gs_config-name_sheet. "'Sheet1'.
© www.soinside.com 2019 - 2024. All rights reserved.