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
相关推荐
吃好睡好便好7 小时前
用while循环语句求和
开发语言·学习·算法·matlab·信息可视化
TechWayfarer7 小时前
查询IP所在地的3种方案:从API到离线库,风控场景怎么选?
开发语言·网络·python·网络协议·tcp/ip
摇滚侠7 小时前
Java 零基础全套教程,集合框架,笔记 153-163
java·开发语言·笔记
程序员榴莲8 小时前
Python 单例模式
开发语言·python·单例模式
L、2188 小时前
CANN算子开发调试实战:从“Segmentation Fault“到定位根因的完整流程
java·开发语言
狗凯之家源码网8 小时前
基于PHP的多语言跨境电商B2B2C商城系统技术解析
开发语言·php
比特森林探险记9 小时前
go 语言中的context 解读和用法
开发语言·后端·golang
古城小栈9 小时前
Rust 调用 C 语言库 实战指南(企业级)
c语言·开发语言·rust
吃好睡好便好10 小时前
用for循环语句求和
开发语言·人工智能·学习·matlab·学习方法