日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

上传EXCEL到ABAP内表

發布時間:2025/3/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 上传EXCEL到ABAP内表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

上傳EXCEL到ABAP內表

將EXCEL文件上載到內表兩種方式:

一、直接將excel數據讀入具有相同結構的內表

二、將excel數據讀入一個行號,列號,值組成的內表,然后通過指針將數據讀到與excel結構相同的內表

?

AT?SELECTION-SCREEN?ON?VALUE-REQUEST?FOR?P_FILE.
??CALL?FUNCTION?'F4_FILENAME'
????IMPORTING
??????file_name?=?P_FILE.

?

CLEAR?PROGRESS_TEXT.
??CONCATENATE?'正在上載、轉換文件,請稍侯......'?''?INTO?progress_text.
??CALL?FUNCTION?'SAPGUI_PROGRESS_INDICATOR'
????EXPORTING
??????TEXT?=?progress_text.

??DATA?l_size?TYPE?I?.
"可以省略upload
??CALL?FUNCTION?'WS_UPLOAD'
????EXPORTING
??????filename???=?p_file
??????filetype???=?'BIN'
????IMPORTING
??????filelength?=?l_size
????TABLES
??????data_tab???=?rawdata.

"內表結構與excel一致,字段最好定義為C類型,讀入內表之后,轉換成系統對應字段類型
??CALL?FUNCTION?'TEXT_CONVERT_XLS_TO_SAP'
????EXPORTING??????"i_line_header????????=?'X'"表示包括字段名
??????i_tab_raw_data???????=?rawdata
??????i_filename???????????=?p_file
????TABLES
??????i_tab_converted_data?=?gt_itab
????EXCEPTIONS
??????conversion_failed????=?1
??????OTHERS???????????????=?2.

?

?**********************************************************************************************8

AT?SELECTION-SCREEN?ON?VALUE-REQUEST?FOR?P_FILE.
??PERFORM?SELECT_FILE.

?

FORM?SELECT_FILE?.
??CALL?FUNCTION?'WS_FILENAME_GET'
????EXPORTING
??????MASK?????????????=?',Excel?Files,*.xls,All?Files,*.*.'(101)
??????TITLE????????????=?'選擇文件'(100)
????IMPORTING
??????FILENAME?????????=?P_FILE
????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).
??ENDIF.
ENDFORM.????????????????????"?SELECT_FILE

"接收excel數據的內表

DATA:?GT_DATA?TYPE?ALSMEX_TABLINE?OCCURS?0?WITH?HEADER?LINE.

FORM?UPLOAD_ITAB?.
??CALL?FUNCTION?'ALSM_EXCEL_TO_INTERNAL_TABLE'
????EXPORTING
??????FILENAME????=?P_FILE
??????I_BEGIN_COL?=?'1'
??????I_BEGIN_ROW?=?'2'
??????I_END_COL???=?'100'
??????I_END_ROW???=?'30000'
????TABLES
??????INTERN??????=?GT_DATA.
??SORT?GT_DATA?BY?ROW?COL?VALUE.
"將數據轉換成一般處理內表結構的數據
??LOOP?AT?GT_DATA.
????MOVE?GT_DATA-COL?TO?L_INDEX.
????ASSIGN?COMPONENT?L_INDEX?OF?STRUCTURE?GT_ITAB?TO?<FS>.
????MOVE?GT_DATA-VALUE?TO?<FS>.
????AT?END?OF?ROW.
??????APPEND?GT_ITAB.
??????CLEAR?GT_ITAB.
????ENDAT.
??ENDLOOP.

??IF?GT_ITAB?IS?NOT?INITIAL.
????APPEND?GT_ITAB.
????CLEAR?GT_ITAB.
??ENDIF.
ENDFORM.????????????????????"?UPLOAD_ITAB

總結

以上是生活随笔為你收集整理的上传EXCEL到ABAP内表的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。