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
相关推荐
earthzhang20212 小时前
【1028】字符菱形
c语言·开发语言·数据结构·c++·算法·青少年编程
earthzhang20214 小时前
第3讲:Go垃圾回收机制与性能优化
开发语言·jvm·数据结构·后端·性能优化·golang
纵有疾風起5 小时前
C++——类和对象(3)
开发语言·c++·经验分享·开源
Full Stack Developme5 小时前
java.text 包详解
java·开发语言·python
文火冰糖的硅基工坊5 小时前
[嵌入式系统-135]:主流AIOT智能体开发板
开发语言·嵌入式·cpu
yudiandian20146 小时前
02 Oracle JDK 下载及配置(解压缩版)
java·开发语言
要加油哦~6 小时前
JS | 知识点总结 - 原型链
开发语言·javascript·原型模式
鄃鳕7 小时前
python迭代器解包【python】
开发语言·python
new coder7 小时前
[c++语法学习]Day10:c++引用
开发语言·c++·学习
驰羽7 小时前
[GO]GORM 常用 Tag 速查手册
开发语言·后端·golang