上传EXCEL到ABAP内表

将EXCEL文件上载到内表两种方式:

一、直接将excel数据读入具有相同结构的内表

二、将excel数据读入一个行号,列号,值组成的内表,然后通过指针将数据读到与excel结构相同的内表

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
  CALL FUNCTION 'F4_FILENAME'
    IMPORTING
      file_name = P_FILE.

CLEAR PROGRESS_TEXT.
  CONCATENATE '正在上载、转换文件,请稍侯......' '' INTO progress_text.
  CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
    EXPORTING
      TEXT = progress_text.

DATA l_size TYPE I .
"可以省略upload
  CALL FUNCTION 'WS_UPLOAD'
    EXPORTING
      filename   = p_file
      filetype   = 'BIN'
    IMPORTING
      filelength = l_size
    TABLES
      data_tab   = rawdata.

"内表结构与excel一致,字段最好定义为C类型,读入内表之后,转换成系统对应字段类型
  CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
    EXPORTING      "i_line_header        = 'X'"表示包括字段名
      i_tab_raw_data       = rawdata
      i_filename           = p_file
    TABLES
      i_tab_converted_data = gt_itab
    EXCEPTIONS
      conversion_failed    = 1
      OTHERS               = 2.

**********************************************************************************************8

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
  PERFORM SELECT_FILE.

FORM SELECT_FILE .
  CALL FUNCTION 'WS_FILENAME_GET'
    EXPORTING
      MASK             = ',Excel Files,*.xls,All Files,*.*.'(101)
      TITLE            = '选择文件'(100)
    IMPORTING
      FILENAME         = P_FILE
    EXCEPTIONS
      INV_WINSYS       = 1
      NO_BATCH         = 2
      SELECTION_CANCEL = 3
      SELECTION_ERROR  = 4
      OTHERS           = 5.
  IF SY-SUBRC <> 0 AND SY-SUBRC <> 3.
    MESSAGE E100(ZDEV) WITH '选择文件出错!'(007).
  ENDIF.
ENDFORM.                    " SELECT_FILE

"接收excel数据的内表

DATA: GT_DATA TYPE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE.

FORM UPLOAD_ITAB .
  CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
    EXPORTING
      FILENAME    = P_FILE
      I_BEGIN_COL = '1'
      I_BEGIN_ROW = '2'
      I_END_COL   = '100'
      I_END_ROW   = '30000'
    TABLES
      INTERN      = GT_DATA.
  SORT GT_DATA BY ROW COL VALUE.
"将数据转换成一般处理内表结构的数据
  LOOP AT GT_DATA.
    MOVE GT_DATA-COL TO L_INDEX.
    ASSIGN COMPONENT L_INDEX OF STRUCTURE GT_ITAB TO <FS>.
    MOVE GT_DATA-VALUE TO <FS>.
    AT END OF ROW.
      APPEND GT_ITAB.
      CLEAR GT_ITAB.
    ENDAT.
  ENDLOOP.

IF GT_ITAB IS NOT INITIAL.
    APPEND GT_ITAB.
    CLEAR GT_ITAB.
  ENDIF.
ENDFORM.                    " UPLOAD_ITAB

上传EXCEL到ABAP内表相关推荐

  1. vue2 - 基于Element UI实现上传Excel表单数据功能

    一.项目场景 批量数据上传后台,需要从后台下载一个固定格式的 Excel表格,然后在表格里面添加数据,将数据格式化,再上传给后台,后台做解析处理,往数据库添加数据 二.实现功能展示 点击导入excel ...

  2. 上传EXCEL,并下载模板

    上传EXCEL,并下载模板 假如上传EXCEL为这个格式. 就是这种样式,下面为源码. TYPE-POOLS:icon,abap. TABLES sscrfields. DATA:lv_sl TYPE ...

  3. laravel-admin / Dcat admin 上传Excel并导入数据到数据库

    准备工作 安装maatwebsite/excel composer require maatwebsite/excel laravel-admin 效果图 创建按钮 $grid->tools(f ...

  4. springBoot上传excel表格数据

    pom文件导入需要的依赖包 <!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel --><dependency& ...

  5. Django框架(上传Excel文件并读取)

    博主今天整理下Django框架中上传Excel文件并读取 博主是要在管理平台中新增用例的维护功能,想着通过上传Excel文件来展示用例,下面是项目的路径图: 首先先建数据库模型 model.py 可以 ...

  6. php上传查询excel到mysql_PHP上传Excel文件导入数据到MySQL数据库示例

    PHP上传Excel文件导入数据到MySQL数据库示例2020-06-20 00:34:11 最近在做Excel文件导入数据到数据库.网站如果想支持批量插入数据,可以制作一个上传Excel文件,导入里 ...

  7. php 上传excel到mysql_PHP上传Excel文件导入数据到MySQL数据库示例

    最近在做Excel文件导入数据到数据库.网站如果想支持批量插入数据,可以制作一个上传Excel文件,导入里面的数据内容到MySQL数据库的小程序. 要用到的工具: ThinkPHP:轻量级国产PHP开 ...

  8. ASP.NET 实现上传EXCEL,利用NOPI操作,转换得到DataTable

    这几天正好用到上传Excel,并根据Excel中的数据做相应的处理,故整理以备用. 如果需要将Excel中的数据对应写到数据库表中请参见后学用SqlBulkCopy一次性将多条数据赋值到表中:http ...

  9. 使用ocupload和POI一键上传Excel并解析导入数据库

    使用的工具如下:  JQuery ocupload jquery.ocupload-1.1.2.js Apache POI poi-3.9.jar 如果是Maven项目添加依赖如下: <depe ...

最新文章

  1. 30万奖金!首个有阿里技术培训支持,让AI落定场景应用的赛事!
  2. 超年轻!93年小伙已是985大学教授、博导!
  3. 周期同步位置模式(CSP),轮廓位置模式(PPM),位置模式(PM)
  4. php 随机生成数据表名,php 随机生成姓名
  5. 两个单体内置对象_Global和Math
  6. QML基础类型之var
  7. 三十九、ETL工具Kettle基础使用
  8. 【机器学习】粗糙集属性约简—Attribute Reduction
  9. php对二维数据进行排序
  10. 哈工大威海计算机组成原理,哈工大威海计算机组成原理复习.pdf
  11. string 大小写转换
  12. 【OpenCV】OpenCV实战从入门到精通之 -- 输入输出XML和YAML文件详解
  13. php 5.2.6升级,Centos5.5 简单方法升级php到php5.2.6
  14. format函数_畅游人工智能之海 | Keras教程之后端函数(一)
  15. 怎样查自己电脑系统的版本
  16. java 朋友圈分享接口_微信发朋友圈api接口调用代码
  17. 想破解游戏协议?你知道客户端和服务器是怎么通信的?我来告诉你怎么定义的
  18. Windows10离线安装.net framework3.5方法
  19. 西门子S7-1200PLC3轴伺服控制程序 触摸屏是西门子Tp900
  20. 2020年个人年终工作总结报告及2021年工作计划怎么利用敬业签历史记录 利用云便签备忘录及待办事项的任务清单有效解决2020年终总结报告的撰写

热门文章

  1. DE标识DellUtility磁盘手动创建
  2. SVN mime-type 笔记
  3. Linux入门之系统启动过程及初始化----“翻滚吧,牛宝宝”
  4. SAMBA服务和FTP服务讲解(week3_day1)--技术流ken
  5. 【gitlab】gitlab快速部署教程
  6. notepad 替换行收尾字符串或在行首尾新增字符
  7. MySQL Windows ZIP 免费安装和启动设置
  8. Android 自定义AlertDialog,调用方法与系统一致
  9. 转tigase 安装
  10. ADB Server 错误的解决办法