ABAP Windows Excel实例操作

Code listing for: ZDDTEST006

Description: EXCEL OLE TEST

*&---------------------------------------------------------------------*
*& Report  ZDDTEST006
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT ZDDTEST006.

TYPE-POOLS OLE2.

DATA: V_EXCEL TYPE OLE2_OBJECT,
      V_SHEET TYPE OLE2_OBJECT,
      V_SHEET2 TYPE OLE2_OBJECT,
      V_NEW_SHEET TYPE OLE2_OBJECT,
      V_ACTIVESHEET TYPE OLE2_OBJECT,
      V_BOOK  TYPE OLE2_OBJECT,
      V_APPLICATION TYPE OLE2_OBJECT,
      V_CELL  TYPE OLE2_OBJECT,
      V_RANGE TYPE OLE2_OBJECT,
      V_FONT  TYPE OLE2_OBJECT,
      V_COLOR TYPE OLE2_OBJECT,
      V_COLUMN TYPE OLE2_OBJECT.

DATA: BEGIN OF GW_STOCK,
  WERKS LIKE MARD-WERKS,
  MATNR LIKE MARD-MATNR,
  LGORT LIKE MARD-LGORT,
  LABST LIKE MARD-LABST,
  END OF GW_STOCK.

DATA: GT_STOCK LIKE TABLE OF GW_STOCK.
DATA: G_TABIX LIKE SY-TABIX,
      G_CELL TYPE I.

FIELD-SYMBOLS: <FIELD> TYPE ANY.

DEFINE FILL_CELL.
  CALL METHOD OF V_EXCEL 'CELLS' = V_CELL
    EXPORTING
    #1 = &1
    #2 = &2.
  SET PROPERTY OF V_CELL 'VALUE' = &3.

  CALL METHOD OF V_CELL 'FONT' = V_FONT.
  SET PROPERTY OF V_FONT 'Bold' = &4.
  SET PROPERTY OF V_FONT 'size' = &5.
END-OF-DEFINITION.


PARAMETERS: P_PATH LIKE RLGRAP-FILENAME.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_PATH.
  CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
    EXPORTING
      MASK      = ''
      STATIC    = 'X'
    CHANGING
      FILE_NAME = P_PATH.

START-OF-SELECTION.

  SELECT WERKS MATNR LGORT LABST
    UP TO 1000 ROWS
    INTO CORRESPONDING FIELDS OF TABLE GT_STOCK
    FROM MARD
    WHERE WERKS = 'CN06'.

  CREATE OBJECT V_EXCEL 'EXCEL.APPLICATION'.
  CALL METHOD OF V_EXCEL 'WORKBOOKS' = V_BOOK.
  CALL METHOD OF V_BOOK 'ADD'.

  CALL METHOD OF V_EXCEL 'SHEETS' = V_SHEET.
  CALL METHOD OF V_SHEET 'Add'.
  CALL METHOD OF V_SHEET 'Add'.

  CALL METHOD OF V_EXCEL 'WORKSHEETS' = V_SHEET
  EXPORTING
    #1 = 'SHEET2'.
  CALL METHOD OF V_SHEET 'ACTIVATE'.


  FILL_CELL 1 1 'Storage Location Data for Material' 1 14.
  SET PROPERTY OF V_CELL 'HORIZONTALALIGNMENT' = -4108.
  SET PROPERTY OF V_FONT 'UNDERLINE' = 2.

  FILL_CELL 2 1 'Plant' 1 10.
  FILL_CELL 2 2 'Material' 1 10.
  FILL_CELL 2 3 'Storage Location' 1 10.
  FILL_CELL 2 4 'Valuated Stock' 1 10.

  CALL METHOD OF V_EXCEL 'RANGE' = V_RANGE
    EXPORTING
    #1 = 'A1'
    #2 = 'E1'.

  CALL METHOD OF V_RANGE 'SELECT'.
  SET PROPERTY OF V_RANGE 'MERGECELLS' = 1.

  LOOP AT GT_STOCK INTO GW_STOCK.
    G_TABIX = SY-TABIX + 2.
    DO 4 TIMES.
      G_CELL = SY-INDEX.
      ASSIGN COMPONENT G_CELL OF STRUCTURE GW_STOCK TO <FIELD>.
      FILL_CELL G_TABIX G_CELL <FIELD> 1 10.
    ENDDO.

    IF G_CELL = 4 AND <FIELD> <= 0.
      CALL METHOD OF V_CELL 'INTERIOR' = V_COLOR.
      SET PROPERTY OF V_COLOR 'COLORINDEX' = 3.
    ENDIF.
  ENDLOOP.


  CALL METHOD OF V_EXCEL 'COLUMNS' = V_COLUMN.
  CALL METHOD OF V_COLUMN 'Autofit'.
  SET PROPERTY OF V_EXCEL 'VISIBLE' = 1.

  CALL METHOD OF V_SHEET 'SAVEAS'
    EXPORTING
    #1 = P_PATH
    #2 = 1.


*Selection texts
*----------------------------------------------------------
* P_PATH         Save Path
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值