注意点:
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