逐行写出Excel文件

来源:互联网 发布:papa软件下载 编辑:程序博客网 时间:2024/06/06 05:17

REPORT Z_EXPORT_EXCEL.

INCLUDE OLE2INCL.

DATA: APPLICATION TYPE OLE2_OBJECT,
      WORKBOOK    TYPE OLE2_OBJECT,
      SHEET       TYPE OLE2_OBJECT,
      CELLS       TYPE OLE2_OBJECT.

CONSTANTS: ROW_MAX TYPE I VALUE 256.

DATA INDEX TYPE I.

DATABEGIN OF ITAB OCCURS 0,
        FIRST_NAME(10),
        LAST_NAME(10),
        ADDRESS(100),
      END OF ITAB.

START-OF-SELECTION.

  "Add data to itab

  ITAB-FIRST_NAME = '123445'.
  ITAB-LAST_NAME = 'tesst'.
  ITAB-ADDRESS = '中國'.
  APPEND ITAB.
  CLEAR ITAB.

  ITAB-FIRST_NAME = 'ABCDE'.
  ITAB-LAST_NAME = 'tessasdfasdft'.
  ITAB-ADDRESS = '中國中山'.
  APPEND ITAB.
  CLEAR ITAB.

  ITAB-FIRST_NAME = '123456'.
  ITAB-LAST_NAME = 'tessasdfasdft'.
  ITAB-ADDRESS = '中國中山'.
  APPEND ITAB.
  CLEAR ITAB.


  CREATE OBJECT APPLICATION 'excel.application'.
  SET PROPERTY OF APPLICATION 'visible' = 1.
  CALL METHOD OF APPLICATION 'Workbooks' = WORKBOOK.
  CALL METHOD OF WORKBOOK 'Add'.


  CALL METHOD OF APPLICATION 'Worksheets' = SHEET
    EXPORTING
          #1 = 1.

  CALL METHOD OF SHEET 'Activate'.
  SET PROPERTY OF SHEET 'Name' = 'Sheet1'.

  "写标题
  INDEX = 1" 1 - column name
  CALL METHOD OF SHEET 'Cells' = CELLS
    EXPORTING
         #1 = INDEX.
  
  SET PROPERTY OF CELLS 'Value' = 'Field1'.

  INDEX = INDEX + 1" 1 - column name
  CALL METHOD OF SHEET 'Cells' = CELLS
    EXPORTING
          #1 = INDEX.
  SET PROPERTY OF CELLS 'Value' = 'Field2'.

  INDEX = INDEX + 1" 1 - column name
  CALL METHOD OF SHEET 'Cells' = CELLS
    EXPORTING
          #1 = INDEX.
  SET PROPERTY OF CELLS 'Value' = 'Field3'.

  "写数据
  LOOP AT ITAB.
    INDEX = ROW_MAX * SY-TABIX + 1" 1 - column name
    CALL METHOD OF SHEET 'Cells' = CELLS
      EXPORTING
           #1 = INDEX.
    SET PROPERTY OF CELLS 'Value' = ITAB-FIRST_NAME.

    INDEX = INDEX + 1" 1 - column name
    CALL METHOD OF SHEET 'Cells' = CELLS
      EXPORTING
           #1 = INDEX.
    SET PROPERTY OF CELLS 'Value' = ITAB-LAST_NAME.

    INDEX = INDEX + 1" 1 - column name
    CALL METHOD OF SHEET 'Cells' = CELLS
      EXPORTING
           #1 = INDEX.
    SET PROPERTY OF CELLS 'Value' = ITAB-ADDRESS.
  ENDLOOP.


* 保存文件
  CALL METHOD OF SHEET 'SaveAs'
    EXPORTING
           #1 = 'c:tempexceldoc1.xls' "filename
           #2 = 1"fileFormat