SAP ABAP 内表导出到EXCEL

内表导出两份EXCEL 一份是抬头,一份是明细。

 DATA: L_FILETABLE  TYPE FILETABLE,
        LS_FILETABLE TYPE FILE_TABLE,
        LS_RC        TYPE I.
  DATA LV_STR_I      TYPE CHAR20.
  DATA: L_PATH  TYPE STRING.
  DATA: L_PATH_ITEM TYPE STRING.
  DATA: L_PATH_TMP TYPE STRING.
  DATA : LT_ROW TYPE LVC_T_ROID, "内表
         LS_ROW TYPE LVC_S_ROID. "工作区
  DATA:BEGIN OF T_FIELDNAMES OCCURS 0,
         NAME TYPE CHAR20,
       END OF T_FIELDNAMES.
  CLEAR: L_FILETABLE,LS_RC,L_PATH.
  DATA:LV_CHAR TYPE STRING,
       LV_HEAD TYPE STRING VALUE 'BOM抬头',
       LV_ITEM TYPE STRING VALUE 'BOM明细'.
  DATA:LEN  TYPE INT4,
       LEN1 TYPE INT4.
  LV_CHAR = SY-DATUM. "&& SY-UZEIT.
  LV_HEAD = LV_HEAD && '-'&& LV_CHAR.
  LV_ITEM = LV_ITEM && '-'&& LV_CHAR && '.XLS'.
*文件路径选择
  CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
    EXPORTING
      WINDOW_TITLE            = '请选择本地文件'     "对话框的标题
      DEFAULT_EXTENSION       = 'XLS'           "默认的文件后缀名
      DEFAULT_FILENAME        = LV_HEAD
      FILE_FILTER             = 'XLS文件(*.XLS)|全部文件 (*.*)|*.*|'  "文件打开的filter
    CHANGING
      FILE_TABLE              = L_FILETABLE
      RC                      = LS_RC
    EXCEPTIONS
      FILE_OPEN_DIALOG_FAILED = 1
      CNTL_ERROR              = 2
      ERROR_NO_GUI            = 3
      NOT_SUPPORTED_BY_GUI    = 4
      OTHERS                  = 5.

*读取路径
  LOOP AT L_FILETABLE INTO LS_FILETABLE.
    L_PATH = LS_FILETABLE-FILENAME.
  ENDLOOP.
  CLEAR T_FIELDNAMES.

  CLEAR T_FIELDNAMES-NAME.
  T_FIELDNAMES-NAME = '零件表编号'.
  APPEND T_FIELDNAMES.

  CLEAR T_FIELDNAMES-NAME.
  T_FIELDNAMES-NAME = '客户编码'.
  APPEND T_FIELDNAMES.

  CLEAR T_FIELDNAMES-NAME.
  T_FIELDNAMES-NAME = '客户代码'.
  APPEND T_FIELDNAMES.

  CLEAR T_FIELDNAMES-NAME.
  T_FIELDNAMES-NAME = '成品编号'.
  APPEND T_FIELDNAMES.

  CLEAR T_FIELDNAMES-NAME.
  T_FIELDNAMES-NAME = '成品描述'.
  APPEND T_FIELDNAMES.

  CLEAR T_FIELDNAMES-NAME.
  T_FIELDNAMES-NAME = '箱种箱型'.
  APPEND T_FIELDNAMES.

  CLEAR T_FIELDNAMES-NAME.
  T_FIELDNAMES-NAME = '版本'.
  APPEND T_FIELDNAMES.

  CLEAR T_FIELDNAMES-NAME.
  T_FIELDNAMES-NAME = '创建日期'.
  APPEND T_FIELDNAMES.

  CLEAR T_FIELDNAMES-NAME.
  T_FIELDNAMES-NAME = '备注'.
  APPEND T_FIELDNAMES.

  CLEAR T_FIELDNAMES-NAME.
  T_FIELDNAMES-NAME = '预留字段一'.
  APPEND T_FIELDNAMES.

  CLEAR T_FIELDNAMES-NAME.
  T_FIELDNAMES-NAME = '预留字段二'.
  APPEND T_FIELDNAMES.

  CLEAR T_FIELDNAMES-NAME.
  T_FIELDNAMES-NAME = '预留字段三'.
  APPEND T_FIELDNAMES.

  CALL FUNCTION 'GUI_DOWNLOAD'
    EXPORTING
      FILENAME   = L_PATH
      FILETYPE   = 'DAT'
      CODEPAGE   = '8404'
    TABLES
      DATA_TAB   = GT_EXHEAD
      FIELDNAMES = T_FIELDNAMES[].
  IF SY-SUBRC NE 0.
    MESSAGE 'BOM抬头导出失败!' TYPE 'E'.
  ENDIF.

  CLEAR:T_FIELDNAMES[],T_FIELDNAMES-NAME.

  CLEAR T_FIELDNAMES-NAME.
  T_FIELDNAMES-NAME = '零件表编号'.
  APPEND T_FIELDNAMES.

  CLEAR T_FIELDNAMES-NAME.
  T_FIELDNAMES-NAME = '行项目'.
  APPEND T_FIELDNAMES.

  CLEAR T_FIELDNAMES-NAME.
  T_FIELDNAMES-NAME = '组件名称'.
  APPEND T_FIELDNAMES.

  CLEAR T_FIELDNAMES-NAME.
  T_FIELDNAMES-NAME = '厚度'.
  APPEND T_FIELDNAMES.

  CLEAR T_FIELDNAMES-NAME.
  T_FIELDNAMES-NAME = '展开宽'.
  APPEND T_FIELDNAMES.

  CLEAR T_FIELDNAMES-NAME.
  T_FIELDNAMES-NAME = '展开长'.
  APPEND T_FIELDNAMES.

  CLEAR T_FIELDNAMES-NAME.
  T_FIELDNAMES-NAME = '规格'.
  APPEND T_FIELDNAMES.

  CLEAR T_FIELDNAMES-NAME.
  T_FIELDNAMES-NAME = '材质'.
  APPEND T_FIELDNAMES.

  CLEAR T_FIELDNAMES-NAME.
  T_FIELDNAMES-NAME = '数量'.
  APPEND T_FIELDNAMES.

  CLEAR T_FIELDNAMES-NAME.
  T_FIELDNAMES-NAME = '单位'.
  APPEND T_FIELDNAMES.

  CLEAR T_FIELDNAMES-NAME.
  T_FIELDNAMES-NAME = '重量'.
  APPEND T_FIELDNAMES.

  CLEAR T_FIELDNAMES-NAME.
  T_FIELDNAMES-NAME = '预留字段一'.
  APPEND T_FIELDNAMES.

  CLEAR T_FIELDNAMES-NAME.
  T_FIELDNAMES-NAME = 'BOM组件'.
  APPEND T_FIELDNAMES.

  CLEAR T_FIELDNAMES-NAME.
  T_FIELDNAMES-NAME = '制造属性'.
  APPEND T_FIELDNAMES.

  CLEAR T_FIELDNAMES-NAME.
  T_FIELDNAMES-NAME = '图号'.
  APPEND T_FIELDNAMES.

  CLEAR T_FIELDNAMES-NAME.
  T_FIELDNAMES-NAME = '分类'.
  APPEND T_FIELDNAMES.

  CLEAR T_FIELDNAMES-NAME.
  T_FIELDNAMES-NAME = '预留字段二'.
  APPEND T_FIELDNAMES.

  CLEAR T_FIELDNAMES-NAME.
  T_FIELDNAMES-NAME = '预留字段三'.
  APPEND T_FIELDNAMES.

  LEN = STRLEN( L_PATH ).
  LEN1 = LEN - 18.
  L_PATH_TMP = L_PATH(LEN1).
  L_PATH_ITEM = L_PATH_TMP && LV_ITEM.
  CALL FUNCTION 'GUI_DOWNLOAD'
    EXPORTING
      FILENAME   = L_PATH_ITEM
      FILETYPE   = 'DAT'
      CODEPAGE   = '8404'
    TABLES
      DATA_TAB   = GT_EXITEM
      FIELDNAMES = T_FIELDNAMES[].
  IF SY-SUBRC NE 0.
    MESSAGE 'BOM明细导出失败!' TYPE 'E'.
  ENDIF.
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值