设为首页 收藏本站
查看: 1013|回复: 0

[经验分享] SAP EXCEL 模板使用示例

[复制链接]

尚未签到

发表于 2015-9-18 12:02:32 | 显示全部楼层 |阅读模式
  SAP EXCEL 模板使用示例
  转自:http://ruyue318.blog.sohu.com/136056429.html
  
  将SAP系统内容导入Excel表
*&---------------------------------------------------------------------*
*& Report  Z_XH_WRITE_XLS_TEMPLET
*&
*&---------------------------------------------------------------------*
*& 1. 用TCODE:SMW0把EXCEL文件上载到SAP系统
*&   1) 选择WebRFC 应用程序的二进制数据, 按'查找'按钮
*&   2) 把包名(开发类)输入, 按'运行' 按钮
*&   3) 按'新建'按钮, 在建立对象的时候要导入EXCEL文件, 对象最好要加入'.XLS'后缀
*&   注: 在menu 设置-->维护MIME类型 中看是否有EXCEL文件类型, 没有则要建立
*&---------------------------------------------------------------------*
  REPORT  Z_XH_WRITE_XLS_TEMPLET MESSAGE-ID ZMESS_NWGC
        NO STANDARD PAGE HEADING.
*导出EXCEL所用到变量
TYPE-POOLS OLE2 .
DATA: V_EXCEL TYPE OLE2_OBJECT,
      V_SHEET TYPE OLE2_OBJECT,
      V_BOOK  TYPE OLE2_OBJECT,
      V_CELL  TYPE OLE2_OBJECT.
DATA: V_SHEET_NUMBER TYPE I.
  DATA: BEGIN OF I_DATA OCCURS 0,
        FIELD1(10) TYPE N,
        FIELD2(20) TYPE C,
        FIELD3     LIKE EKPO-NETWR,
        FIELD4(4)  TYPE N,
        FIELD5     LIKE EKPO-NETWR,
        FIELD6(4)  TYPE N,
      END OF I_DATA.
  START-OF-SELECTION.
  PERFORM FRM_GET_DATA.
  PERFORM FRM_CREATE_XSL.
  END-OF-SELECTION.
*&---------------------------------------------------------------------*
*&      Form  FRM_CREATE_XSL
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM FRM_CREATE_XSL .
  DATA: L_NAME LIKE WWWDATATAB,
        L_MIME LIKE W3MIME OCCURS 10,
        L_FILENAME TYPE STRING,
        L_PATH TYPE STRING,
        L_FULLPATH TYPE STRING,
        L_ROW TYPE I,
        L_COL TYPE I,
        L_TITLE TYPE STRING.
  L_NAME-RELID = 'MI'.
  L_NAME-OBJID = 'ZTEST0002.XLS'.
  L_NAME-TEXT = SY-TITLE.
  CALL FUNCTION 'WWWDATA_IMPORT'
    EXPORTING
      KEY               = L_NAME
    TABLES
      MIME              = L_MIME
    EXCEPTIONS
      WRONG_OBJECT_TYPE = 1
      IMPORT_ERROR      = 2
      OTHERS            = 3.
  L_TITLE = SY-TITLE.
  CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG
    EXPORTING
      WINDOW_TITLE         = L_TITLE
      DEFAULT_EXTENSION    = 'xls'
      DEFAULT_FILE_NAME    = L_TITLE
      FILE_FILTER          = '(电子表格EXCEL)'
    CHANGING
      FILENAME             = L_FILENAME
      PATH                 = L_PATH
      FULLPATH             = L_FULLPATH
    EXCEPTIONS
      CNTL_ERROR           = 1
      ERROR_NO_GUI         = 2
      NOT_SUPPORTED_BY_GUI = 3
      OTHERS               = 4.
  IF SY-SUBRC <> 0.
    STOP.
  ENDIF.
  CALL FUNCTION 'GUI_DOWNLOAD'
    EXPORTING
      FILENAME = L_FULLPATH
      FILETYPE = 'BIN'
    TABLES
      DATA_TAB = L_MIME.
  *--打开excel模板
  PERFORM FRM_OPEN_EXCEL USING L_FULLPATH.
  *--打开excel第一个sheet
  V_SHEET_NUMBER = 1.
  PERFORM FRM_OPEN_EXCEL_SHEET USING V_SHEET_NUMBER.
  *--写excel file的内容
  L_ROW = 4.
  L_COL = 1.
  PERFORM FRM_WRITE_CELL USING L_ROW L_COL SY-DATUM(4).
  LOOP AT I_DATA.
    L_ROW = SY-TABIX + 6.
    L_COL = 1.
    PERFORM FRM_WRITE_CELL USING L_ROW L_COL I_DATA-FIELD1.
    L_COL = 2.
    PERFORM FRM_WRITE_CELL USING L_ROW L_COL I_DATA-FIELD2.
    L_COL = 3.
    PERFORM FRM_WRITE_CELL USING L_ROW L_COL I_DATA-FIELD3.
    L_COL = 4.
    PERFORM FRM_WRITE_CELL USING L_ROW L_COL I_DATA-FIELD4.
    L_COL = 5.
    PERFORM FRM_WRITE_CELL USING L_ROW L_COL I_DATA-FIELD5.
    L_COL = 6.
    PERFORM FRM_WRITE_CELL USING L_ROW L_COL I_DATA-FIELD6.
  ENDLOOP.
  * 关闭EXCEL
  PERFORM FRM_SAVE_EXCEL USING L_FULLPATH.
  ENDFORM.                    " FRM_CREATE_XSL
*&---------------------------------------------------------------------*
*&      Form  FRM_OPEN_EXCEL
*&---------------------------------------------------------------------*
*      -->P_L_FULLPATH  Local excel file full path
*----------------------------------------------------------------------*
FORM FRM_OPEN_EXCEL  USING    PA_PATH.
  CREATE OBJECT V_EXCEL 'Excel.Application'.
  CALL METHOD OF V_EXCEL 'Workbooks' = V_BOOK.
  CALL METHOD OF V_BOOK 'Open' = V_BOOK
    EXPORTING #1 = PA_PATH.
  IF SY-SUBRC <> 0.
    MESSAGE E001 WITH 'Open file failed!'.
    STOP.
  ENDIF.
  ENDFORM.                    " FRM_OPEN_EXCEL
*&---------------------------------------------------------------------*
*&      Form  FRM_OPEN_EXCEL_SHEET
*&---------------------------------------------------------------------*
*      -->P_V_SHEET_NUMBER  sheet number
*----------------------------------------------------------------------*
FORM FRM_OPEN_EXCEL_SHEET  USING    PA_SHEET_NUMBER.
  SET PROPERTY OF V_EXCEL 'Visible' = 1.
  CALL METHOD OF V_BOOK 'Sheets' = V_SHEET
    EXPORTING #1 = PA_SHEET_NUMBER.
  ENDFORM.                    " FRM_OPEN_EXCEL_SHEET
*&---------------------------------------------------------------------*
*&      Form  FRM_WRITE_CELL
*&---------------------------------------------------------------------*
*      -->P_L_ROW  number of row
*      -->P_L_COL  number of collum
*      -->P_L_VAL  cell value
*----------------------------------------------------------------------*
FORM FRM_WRITE_CELL  USING    PA_ROW
                              PA_COL
                              PA_VAL.
  CALL METHOD OF V_SHEET 'Cells' = V_CELL
    EXPORTING #1 = PA_ROW
    #2 = PA_COL.
  SET PROPERTY OF V_CELL 'Value' = PA_VAL.
  ENDFORM.                    " FRM_WRITE_CELL
*&---------------------------------------------------------------------*
*&      Form  FRM_SAVE_EXCEL
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_L_FULLPATH  text
*----------------------------------------------------------------------*
FORM FRM_SAVE_EXCEL  USING    PA_FULLPATH.
  SET PROPERTY OF V_EXCEL 'DisplayAlerts' = 0.
  CALL METHOD OF V_BOOK 'SAVEAS'
    EXPORTING #1 = PA_FULLPATH.
  CALL METHOD OF V_BOOK 'Exit' = V_BOOK.
  FREE OBJECT V_EXCEL.
  ENDFORM.                    " FRM_SAVE_EXCEL
*&---------------------------------------------------------------------*
*&      Form  FRM_GET_DATA
*&---------------------------------------------------------------------*
FORM FRM_GET_DATA .
  REFRESH: I_DATA.
  I_DATA-FIELD1 = '0000000001'.
  I_DATA-FIELD2 = 'PROJECT1'.
  I_DATA-FIELD3 = '1000.001'.
  I_DATA-FIELD4 = '2006'.
  I_DATA-FIELD5 = '1001.000'.
  I_DATA-FIELD6 = '2006'.
  APPEND I_DATA.
  CLEAR I_DATA.
  I_DATA-FIELD1 = '0000000002'.
  I_DATA-FIELD2 = 'PROJECT2'.
  I_DATA-FIELD3 = '2000.002'.
  I_DATA-FIELD4 = '2007'.
  I_DATA-FIELD5 = '2002.000'.
  I_DATA-FIELD6 = '2007'.
  APPEND I_DATA.
  CLEAR I_DATA.
ENDFORM.                    " FRM_GET_DATA

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-115361-1-1.html 上篇帖子: SAP屏幕设计器专题:下拉列表框(四) 下篇帖子: 【网络流】SAP算法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表