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
相关推荐
代码N年归来仍是新手村成员1 天前
【Java转Go】即时通信系统代码分析(一)基础Server 构建
java·开发语言·golang
Z1Jxxx1 天前
01序列01序列
开发语言·c++·算法
沐知全栈开发1 天前
C语言中的强制类型转换
开发语言
关于不上作者榜就原神启动那件事1 天前
Java中大量数据Excel导入导出的实现方案
java·开发语言·excel
坚定学代码1 天前
基于观察者模式的ISO C++信号槽实现
开发语言·c++·观察者模式·ai
Wang's Blog1 天前
Nodejs-HardCore: Buffer操作、Base64编码与zlib压缩实战
开发语言·nodejs
csbysj20201 天前
C# 集合(Collection)
开发语言
csbysj20201 天前
Lua 面向对象编程
开发语言
骆驼爱记录1 天前
Excel高效粘贴技巧:仅填充可见单元格
自动化·excel·wps·新人首发