abap 怎么excel导入数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了abap 怎么excel导入数据相关的知识,希望对你有一定的参考价值。

参考技术A REPORT Z_16158_020.

DATA:GT_DATA TYPE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE.
TYPES:BEGIN OF TY_ITAB,
NAME(10),
ID(12),
SEX(4),
END OF TY_ITAB.
DATA:WA TYPE TY_ITAB,
ITAB TYPE TABLE OF TY_ITAB."定义的这个内表结构要和EXCEL表完全一样

PARAMETERS: P_FILE LIKE RLGRAP-FILENAME OBLIGATORY.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
* DEF_FILENAME = ' '
* DEF_PATH = ' '
MASK = ',Excel Files,*.xls,ALL Files,*.*.'(101)
* MODE = ' '
TITLE = '选择文件'(100)
IMPORTING
FILENAME = P_FILE
* RC =
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).
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

START-OF-SELECTION.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE' "读取Excel文件中的内容
EXPORTING
FILENAME = P_FILE
I_BEGIN_COL = '1'
I_BEGIN_ROW = '1'
I_END_COL = '50'
I_END_ROW = '5000'
TABLES
INTERN = GT_DATA
* EXCEPTIONS
* INCONSISTENT_PARAMETERS = 1
* UPLOAD_OLE = 2
* OTHERS = 3
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
SORT GT_DATA BY ROW COL VALUE.

*整理到内表数据
LOOP AT GT_DATA.
CASE GT_DATA-COL.
WHEN 1.
WA-NAME = GT_DATA-VALUE.
WHEN 2.
WA-ID = GT_DATA-VALUE.
WHEN 3.
WA-SEX = GT_DATA-VALUE.
APPEND WA TO ITAB."对于这个例子,Excel表有3列,append要加到最后一列
CLEAR WA.
ENDCASE.
ENDLOOP.

LOOP AT ITAB INTO WA.
WRITE:/ WA-NAME,WA-ID,WA-SEX.
ULINE.
ENDLOOP.
参考技术B SAP这个ALSM_EXCEL_TO_INTERNAL_TABLE基本不能用,通常要自己改改才能用,里面table:ALSMEX_TABLINE的参数ROW 才NUMC4,Excel有10000万条记录就直接ABAP Down 了

以上是关于abap 怎么excel导入数据的主要内容,如果未能解决你的问题,请参考以下文章

一步步实现ABAP后台导入EXCEL到数据库

SAP中如何导入excel数据

一步步实现ABAP后台导入EXCEL到数据库

abap 批量导入程序能不能安排后台作业?导入模板为excel

如何用ABAP代码实现上传本地excel文件,并将其作为附件发邮件

C#Excel导入多条数据到数据库,怎么解决性能问题可以快速导入