ABAP EXCEL模板数据上传 及 注意事项

注意点:

1.excel数据上传失败的原因:

函数的结束行过大,

xls格式最大行项目是65536行,256列

xlsx最大行项目是1048576行,16384列

2.WPS EXCEL / 微软EXCEL

css 复制代码
CREATE OBJECT application 'Ket.Application'."wps excel

CREATE OBJECT application 'Excel.Application' NO FLUSH."微软 excel

ABAP案例

css 复制代码
DATA: itab_excel LIKE TABLE OF alsmex_tabline WITH HEADER LINE.

DATA: BEGIN OF gt_zstest OCCURS 0.
        INCLUDE STRUCTURE zstest.
DATA: box TYPE c,
      END OF gt_zstest.

PARAMETERS: p_file TYPE localfile.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file."搜索帮助按钮
  PERFORM frm_getfilename USING p_file.

START-OF-SELECTION.
  PERFORM frm_get_temp."获取模板数据

*&---------------------------------------------------------------------*
*&      Form  frm_get_temp
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM frm_get_temp.
  DATA: lines TYPE i VALUE 0.
  FIELD-SYMBOLS : <fs>.
  CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
    EXPORTING
      filename                = p_file
      i_begin_col             = 1"开始列数
      i_begin_row             = 2"开始行数
      i_end_col               = 256
      i_end_row               = 10000
    TABLES
      intern                  = itab_excel
    EXCEPTIONS
      inconsistent_parameters = 1
      upload_ole              = 2
      OTHERS                  = 3.

  SORT itab_excel BY row col.

  LOOP AT itab_excel.   "将EXCEL内表数据存入内表中
    itab_excel-col = itab_excel-col +  1."因为我参考的表  有个客户端会影响赋值
    ASSIGN COMPONENT itab_excel-col OF STRUCTURE gt_zstest TO <fs>.
    MOVE itab_excel-value TO <fs>.
    AT END OF row.
      APPEND gt_zstest.
      CLEAR gt_zstest.
    ENDAT.
  ENDLOOP.

  DESCRIBE TABLE gt_zstest LINES lines.

  IF lines = 0.
    MESSAGE  '未找到EXCEL文件或EXCEL中无数据!' TYPE 'E'.
    LEAVE PROGRAM.
  ENDIF.
ENDFORM.                    "frm_get_temp

*&---------------------------------------------------------------------*
*&      Form  frm_getfilename
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->FILENAME   text
*----------------------------------------------------------------------*
FORM frm_getfilename USING filename.
  CALL FUNCTION 'WS_FILENAME_GET'
    EXPORTING
      def_filename     = ' '
      def_path         = ' '
      mask             = ',*.*  ,*.*. '
      mode             = 'O'
      title            = ' '
    IMPORTING
      filename         = filename
    EXCEPTIONS
      inv_winsys       = 1
      no_batch         = 2
      selection_cancel = 3
      selection_error  = 4
      OTHERS           = 5.
ENDFORM.                    "frm_getfilename
相关推荐
Yue丶越14 分钟前
【C语言】自定义类型:结构体
c语言·开发语言
合作小小程序员小小店15 分钟前
桌面开发,点餐管理系统开发,基于C#,winform,sql server数据库
开发语言·数据库·sql·microsoft·c#
笃行客从不躺平19 分钟前
线程池监控是什么
java·开发语言
星轨初途20 分钟前
C++的输入输出(上)(算法竞赛类)
开发语言·c++·经验分享·笔记·算法
dangdang___go1 小时前
动态内存管理||malloc和free.realloc和calloc
c语言·开发语言·算法·动态内存管理
YA3331 小时前
mcp-grafana mcp 使用stdio报错
java·开发语言
周杰伦_Jay1 小时前
【Go 语言主流 Web】 框架详细解析
开发语言·后端·微服务·架构·golang
PfCoder2 小时前
WinForm真入门(20)——StatusStrip控件解析
开发语言·windows·c#·winform·statusstrip
灵犀坠2 小时前
前端面试八股复习心得
开发语言·前端·javascript
代码游侠2 小时前
学习笔记——数据结构学习
linux·开发语言·数据结构·笔记·学习