很多项目都有这种需求,虽然别人用的各有不同,不过闲来无事,还是自己搞了一个出来。基于EXCEL的导入。

*&---------------------------------------------------------------------*
*& Report  ZLY_UPLOAD_TABLE
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*REPORT ZUPLOAD_TABLE.
TABLES:RSRD1.
TYPE-POOLS:ABAP.FIELD-SYMBOLS: <DYN_TABLE> TYPE STANDARD TABLE,<DYN_WA>,<DYN_FIELD>.
DATA: DY_TABLE TYPE REF TO DATA,DY_LINE  TYPE REF TO DATA,XFC      TYPE        LVC_S_FCAT,IFC      TYPE        LVC_T_FCAT.DATA : GT_EXCEL_T TYPE         ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE,GS_EXCEL_T LIKE LINE OF GT_EXCEL_T.
DATA: GC_FIELDVALUE TYPE FIELDVALUE,  "字符值GC_FLDNAME    TYPE FIELDNAME.   "字段名SELECTION-SCREEN:BEGIN OF BLOCK BLK01 WITH FRAME TITLE TEXT-001.
PARAMETERS:P_TBMA TYPE RSRD1-TBMA_VAL,P_FILE LIKE RLGRAP-FILENAME.
SELECTION-SCREEN END OF BLOCK BLK01.AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.PERFORM FRM_GET_FILEPATH.START-OF-SELECTION.CHECK P_TBMA IS NOT INITIAL.CHECK P_FILE IS NOT INITIAL.PERFORM PRM_GET_TAB_STRC.PERFORM PRM_GET_EXCEL.PERFORM PRM_UPDATA_TAB.
*&---------------------------------------------------------------------*
*&      Form  FRM_GET_FILEPATH
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM FRM_GET_FILEPATH .CALL FUNCTION 'WS_FILENAME_GET'EXPORTINGMASK             = ',Excel(*.xls),*.XLS,*.XLSX,'TITLE            = '选择文件'(100)IMPORTINGFILENAME         = P_FILEEXCEPTIONSINV_WINSYS       = 1NO_BATCH         = 2SELECTION_CANCEL = 3SELECTION_ERROR  = 4OTHERS           = 5.IF SY-SUBRC <> 0."      MESSAGE e100(zdev) WITH '选择文件出错!'(007).ENDIF.
ENDFORM.                    " FRM_GET_FILEPATH
*&---------------------------------------------------------------------*
*&      Form  PRM_GET_TAB_STRC
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM PRM_GET_TAB_STRC .DATA:GT_TABLE TYPE DDFIELDS,GS_TABLE TYPE DFIES.CALL FUNCTION 'CATSXT_GET_DDIC_FIELDINFO'EXPORTINGIM_STRUCTURE_NAME = P_TBMAIMPORTINGEX_DDIC_INFO      = GT_TABLEEXCEPTIONSFAILED            = 1OTHERS            = 2.IF SY-SUBRC <> 0.ENDIF.LOOP AT GT_TABLE INTO GS_TABLE.CLEAR XFC.XFC-FIELDNAME = GS_TABLE-FIELDNAME .XFC-INTTYPE = GS_TABLE-INTTYPE.XFC-INTLEN = GS_TABLE-LENG.XFC-DECIMALS = GS_TABLE-DECIMALS.APPEND XFC TO IFC.ENDLOOP.CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLEEXPORTINGIT_FIELDCATALOG = IFCIMPORTINGEP_TABLE        = DY_TABLE.ASSIGN DY_TABLE->* TO <DYN_TABLE>.CREATE DATA DY_LINE LIKE LINE OF <DYN_TABLE>.ASSIGN DY_LINE->* TO <DYN_WA>.
ENDFORM.                    " PRM_GET_TAB_STRC
*&---------------------------------------------------------------------*
*&      Form  PRM_GET_EXCEL
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM PRM_GET_EXCEL .IF P_FILE IS NOT INITIAL.
*将excel数据传入内表CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'EXPORTINGFILENAME    = P_FILEI_BEGIN_COL = '1'I_BEGIN_ROW = '2'I_END_COL   = '300'I_END_ROW   = '50000'TABLESINTERN      = GT_EXCEL_T.ENDIF.IF GT_EXCEL_T[] IS NOT INITIAL.LOOP AT GT_EXCEL_T INTO GS_EXCEL_T.AT NEW ROW.CLEAR <DYN_WA>.ENDAT.IF <DYN_WA> IS INITIAL.ASSIGN COMPONENT GS_EXCEL_T-COL OF STRUCTURE <DYN_WA> TO <DYN_FIELD>.IF SY-SUBRC = 0.<DYN_FIELD> = SY-MANDT.ENDIF.ENDIF.GS_EXCEL_T-COL = GS_EXCEL_T-COL + 1.GC_FIELDVALUE = GS_EXCEL_T-VALUE.CONDENSE GC_FIELDVALUE.ASSIGN COMPONENT GS_EXCEL_T-COL OF STRUCTURE <DYN_WA> TO <DYN_FIELD>.IF SY-SUBRC = 0.<DYN_FIELD> = GC_FIELDVALUE.ENDIF.AT END OF ROW.APPEND <DYN_WA> TO <DYN_TABLE>.ENDAT.ENDLOOP.ENDIF.
ENDFORM.                    " PRM_GET_EXCEL
*&---------------------------------------------------------------------*
*&      Form  PRM_UPDATA_TAB
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM PRM_UPDATA_TAB .MODIFY (P_TBMA) FROM TABLE <DYN_TABLE>.IF SY-SUBRC = 0.MESSAGE '导入成功' TYPE 'S'.ELSE.MESSAGE '导入失败' TYPE 'S' DISPLAY LIKE 'E'.EXIT.ENDIF.
ENDFORM.                    " PRM_UPDATA_TAB

最简单的一种方式,输入参数:表名,EXXCEL(EXCEL里数据按表的数据元素顺序,可不加客户端)

转载于:https://www.cnblogs.com/sapSB/p/4815318.html

Z表数据EXCEL导入相关推荐

  1. .NET开源工作流驰ccflow从表数据数据源导入设置

    2019独角兽企业重金招聘Python工程师标准>>> 驰骋工作流从表数据数据源导入设置 关键字 驰骋工作流引擎 流程快速开发平台 workflow ccflow jflow  .n ...

  2. Java版开源工作流Jflow从表数据数据源导入设置

    驰骋工作流从表数据数据源导入设置 关键字 驰骋工作流引擎 流程快速开发平台 workflow ccflow jflow  .net开源工作流 从表数据导入设置             概要说明 在从表 ...

  3. XX健康:预约管理-预约设置日历插件文件简单下载Excel文件解析Excel表数据批量导入

    1. 需求分析 前面我们已经完成了检查项管理.检查组管理.套餐管理等.接下来我们需要进行预约设置,其实就是设置每一天的体检预约最大数量.客户可以通过微信端在线预约,在线预约时需要选择体检的时间,如果客 ...

  4. kudu导出为mysql格式_怎么实现kudu表数据的导入导出

    一.kudu数据导出到文件 例: impala-shell -l -u xuyi  --auth_creds_ok_in_clear  -q "select sms_content from ...

  5. java版开源工作流引擎ccflow从表数据数据源导入设置

    为什么80%的码农都做不了架构师?>>>    关键字 驰骋工作流引擎 流程快速开发平台 workflow ccflow jflow  .net开源工作流 从表数据导入设置 概要说明 ...

  6. mysql,oracle表数据相互导入

    mysql导入oracle: 例如mysql中有ts_user_info表,现在要导入到oracle中的user_info表 1:导出mysql表数据到data.txt文件 mysql> sel ...

  7. MySQL导出表结构表数据以及导入数据

    导出表结果表数据 使用mysqldump命令行下具体用法如下: mysqldump -u用户名 -p密码 -d 数据库名 表名 > 脚本名; 1.导出数据库为dbname的表结构(其中用户名ro ...

  8. Mysql表数据如何导入到微信云开发数据库中

    文章目录 1.方法1 2.方法2 3.小结 思路:打开微信云开发控制平台,可以利用.json文件导入数据,所以重点是如何将mysql表数据导出为json文件 1.方法1 使用Navicat Premi ...

  9. 记一次百万数据excel导入数据库的处理过程

    场景:现在需要导入账号角色关系数据,数据量:10万----百万.之前代码处理逻辑复杂,运用poi导入技术,业务处理中操作数据库为单次操作,访问数据库次数多,最后批量导入为同步导入,导致数据量过大时,接 ...

最新文章

  1. Android之LocalBroadcastManager源码解析
  2. Git 合并两个不同的仓库
  3. 数据同步结合Crontab
  4. Eureka-搭建eureka服务
  5. uboot移植——DM9000的移植
  6. win10 使用ssh连接服务器 ‘’Bad owner or permissions on C:\\Users\\Administrator/.ssh/config‘’
  7. ROS☞通过两种方法提取.bag中的图像数据
  8. MongoDB 宣布已收购数据库托管公司 mLab
  9. CMDB数据库设计-四种方案任你选
  10. android string-array xml 引用,如何把数据动态地写进array.xml的string-array里?
  11. 软件基本功:没有人比我更重视测试
  12. Ajax学习笔记-基础概述-1
  13. Java String 类型编码转换
  14. linux系统学文档pdf,Linux操作系统学习.pdf
  15. 腾讯笔试经验-不是大牛-勿看
  16. [BZOJ3653]谈笑风生 主席树
  17. vite如何兼容低版本浏览器
  18. 一篇文章教你选出廉价好用的家用投影仪!
  19. 接口加密(TokenSpringCloud项目中进行token认证)
  20. android连路由器 mtu,解决app无网络问题,将宽带路由器MTU从1500修改成1480

热门文章

  1. python支持list类型吗_Python Numpy不支持的操作数类型“list”“list”
  2. Java学习笔记_方法
  3. [机器学习] XGBoost on Spark 分布式使用完全手册
  4. Cache--主存地址映射
  5. Face-landmarks-detection-benchmark 人脸特征定位网站汇总
  6. 100多本python书,免费电子版下载
  7. power bi可视化表_如何使用Power BI可视化数据?
  8. mnist数据集彩色图像_使用MNIST数据集构建多类图像分类模型。
  9. 全志A33-ARM开发板通过NFS与Ubuntu共享文件
  10. 全志A33-修改linux kernel启动参数