SAP中EXCLE模板的上传下载问题

涉及到的表:

参数表:WWWPARAMS

对象主记录表:WWWDATA
锁定对象FM:ENQUEUE_E_WWW_HTML
对象解锁FM:DEQUEUE_E_WWW_HTML

一:模板上传
SAP中模板存在两种设置方法,一种是用代码写死EXCLE的表头,另一种是将本地的excle 上传至sap的服务器上,推荐第二种方法,因为第二种方法更加的灵活,方便.

事务代码:SMW0

输入创建的名称和对象描述,选择本地模板然后上传至SAP服务器.

二:模板下载

form frm_download .

  data: lw_key      type  wwwdatatab,
        l_down      type rlgrap-filename,
        l_name      type rlgrap-filename,
        l_path      type rlgrap-filename,
        l_path_s    type string,
        l_name_s    type string,
        l_path_f    type string,
        l_action    type i,
        g_save_path type string value 'C:\'.

  clear: lw_key.
  lw_key-relid = 'MI'.
  lw_key-objid = 'ZPPR044'.    
*这里就是刚刚导入的模板的对象名称

  call method cl_gui_frontend_services=>file_save_dialog
    exporting
      window_title              = '选择位置'
      default_extension         = 'xlsx'
      default_file_name         = '物料计划导入确认模板.xlsx'      "这里填写下载模板的描述
      file_filter               = 'Excel Files(2007/2010/2013)|*.xlsx|Excel Files(2003)|*.xls'
      initial_directory         = g_save_path
    changing
      filename                  = l_name_s
      path                      = l_path_s
      fullpath                  = l_path_f
      user_action               = l_action
    exceptions
      cntl_error                = 1
      error_no_gui              = 2
      not_supported_by_gui      = 3
      invalid_default_file_name = 4
      others                    = 5.
  if sy-subrc <> 0.
    message id sy-msgid
    type sy-msgty
    number sy-msgno
    with sy-msgv1 sy-msgv2
    sy-msgv3 sy-msgv4.
    return.
  else.
    g_save_path = l_path_s.
    if l_action eq cl_gui_frontend_services=>action_cancel.
      message s398(00) with '用户取消操作'.
      return.
    endif.
  endif.

  l_down = l_path_f.
  call function 'DOWNLOAD_WEB_OBJECT'
    exporting
      key         = lw_key
      destination = l_down.

  call function 'SO_SPLIT_FILE_AND_PATH'
    exporting
      full_name     = l_down
    importing
      stripped_name = l_name
      file_path     = l_path.

  call function 'GUI_RUN'
    exporting
      command   = 'EXCEL'
      parameter = l_name
      cd        = l_path.
endform.                    " FRM_DOWNLOAD

三:利用模板数据上传

注意:it_itab 作为承接 EXCLE 内容的内表,它的参考结构必须与excle的字段顺序一样,如果顺序发生了变动,会报错。

types:begin of ty_itab,

        werks(4),"工厂
        ps_psp_pnr(24), "项目

        xmmc(50), "项目名称
        ccpno(18), "产成品描述(物料号)
        cpgg(130), "产品规格(物料描述长文本)
        kwmeng(15), "订单数量

        lptime(9), "低压开工物料需求时间
        hptime(9), "高压开工物料需求时间
        gasbtime(9), "气箱需求时间
        boxtime(9), "装箱/总装物料需求时间
        ordertime(9), "要求下发采购申请日期

      end of ty_itab.

*&---导入表
data:it_itab type table of ty_itab,
     wa_itab type ty_itab.  


call function 'F4_FILENAME'
    exporting
      program_name = ''                                " 输入的路劲
    importing
      file_name    = p_file.                           " 输出路径


form frm_upload.
*&---文件数据导入到内表
  data: t_raw_data type truxs_t_text_data.
  call function 'TEXT_CONVERT_XLS_TO_SAP'
    exporting
*     I_FIELD_SEPERATOR    =
      i_line_header        = 'X'
      i_tab_raw_data       = t_raw_data
      i_filename           = p_file
    tables
      i_tab_converted_data = it_itab
    exceptions
      conversion_failed    = 1
      others               = 2.
  if sy-subrc <> 0.
    message id sy-msgid type sy-msgty number sy-msgno
    with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  endif.

endform.                    "FRM_UPLOAD

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值