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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

EXCEL文件上传与下载

發布時間:2025/3/20 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 EXCEL文件上传与下载 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
*-----------------------?上傳?Example?1?----------------------------------

?假設有數據在excel中如下:
?sname?????sno???sex
?孫曉磊?????001???男
?周杰倫?????002???男
?阿貓???????003???女
?阿狗???????004???男

DATA:?gt_data?TYPE?alsmex_tabline?OCCURS?0?WITH?HEADER?LINE.
TYPES:?BEGIN?OF?ty_itab,
????????sname(10),
????????sno(10),
????????sex(3),
???????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
??????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.


START-OF-SELECTION.
??CALL?FUNCTION?'ALSM_EXCEL_TO_INTERNAL_TABLE'
????EXPORTING
??????filename????=?p_file
??????i_begin_col?=?'1'
??????i_begin_row?=?'1'
??????i_end_col???=?'50'
??????i_end_row???=?'5000'
????TABLES
??????intern??????=?gt_data.
??SORT?gt_data?BY?row?col?value.

*---整理到內表數據
??LOOP?AT?gt_data.
????CASE?gt_data-col.
??????WHEN?1.
????????wa-sname?=?gt_data-value.
??????WHEN?2.
????????wa-sno?=?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-sname,wa-sno,wa-sex.
????ULINE.
??ENDLOOP.

*-----------------------?上傳?Example?2?----------------------------------
??TYPE-POOLS:?truxs.
??TYPES:?BEGIN?OF?t_datatab,"只記錄excel文件的前四列
????????col1(30)????TYPE?c,
????????col2(30)????TYPE?c,
????????col3(30)????TYPE?c,
????????col4(30)????TYPE?c,
????????END?OF?t_datatab.
??DATA:?it_datatab?TYPE?STANDARD?TABLE?OF?t_datatab,
????????wa_datatab?TYPE?t_datatab.
??DATA:?it_raw?TYPE?truxs_t_text_data.
??PARAMETERS:?p_file?TYPE??rlgrap-filename.

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

START-OF-SELECTION.
??CALL?FUNCTION?'TEXT_CONVERT_XLS_TO_SAP'
????EXPORTING
??????i_line_header????????=?'X'???????????"帶表頭的,占一行,這一行不會讀到內表
??????i_tab_raw_data???????=?it_raw????????"WORK?TABLE
??????i_filename???????????=?p_file????????"讀這個文件時要保證它沒有被打開
????TABLES
??????i_tab_converted_data?=?it_datatab[]???"ACTUAL?DATA
????EXCEPTIONS
??????conversion_failed????=?1
??????OTHERS???????????????=?2.
??IF?sy-subrc?<>?0.
????MESSAGE?ID?sy-msgid?TYPE?sy-msgty?NUMBER?sy-msgno
????????????WITH?sy-msgv1?sy-msgv2?sy-msgv3?sy-msgv4.
??ENDIF.
??LOOP?AT?it_datatab?INTO?wa_datatab.
????CONDENSE?wa_datatab.
????WRITE:/?wa_datatab-col1,
????????????wa_datatab-col2,
????????????wa_datatab-col3,
????????????wa_datatab-col4.
??ENDLOOP.

*-----------------------?下載?Example?----------------------------------
TYPE-POOLS:?abap.
DATA:?fullpath????TYPE?string,
??????filename????TYPE?string,
??????path????????TYPE?string,
??????user_action?TYPE?i,
??????encoding????TYPE?abap_encoding.


PARAMETERS:?p_file?TYPE?string?DEFAULT?'C:\ABC.xls'.

AT?SELECTION-SCREEN?ON?VALUE-REQUEST?FOR?p_file.
??CALL?METHOD?cl_gui_frontend_services=>file_save_dialog
????EXPORTING
??????window_title??????=?'下載到本地文件'
??????default_extension?=?'XLS'???????????"缺省文件類型
??????default_file_name?=?'默認文件名稱'
??????file_filter???????=?'文本文件(*.TXT)|*.TXT|Excel?文件?(*.XLS)|*.XLS;*.XLSX|所有文件?(*.*)|*.*|'
??????with_encoding?????=?'X'
??????initial_directory?=?'C:\'
????CHANGING
??????filename??????????=?filename????"獲得用戶輸入文件名
??????path??????????????=?path????????"獲得用戶所選路徑
??????fullpath??????????=?fullpath????"路徑加文件名
??????user_action???????=?user_action
??????file_encoding?????=?encoding.

??IF?sy-subrc?<>?0?OR?user_action?<>?cl_gui_frontend_services=>action_ok.
????EXIT.
??ENDIF.

??DATA:?itab?TYPE?STANDARD?TABLE?OF?spfli?WITH?DEFAULT?KEY.
??SELECT?*?FROM?spfli?INTO?TABLE?itab.

??DATA?filename2?TYPE?rlgrap-filename.
??filename2?=?fullpath.

??CALL?FUNCTION?'SAP_CONVERT_TO_XLS_FORMAT'
????EXPORTING
??????i_field_seperator?=?'X'?????????"字段分隔開
??????i_filename????????=?filename2
????TABLES
??????i_tab_sap_data????=?itab.?
保存文件對話框 ( Fri, 8 Jul 2011 11:49:46 +0800 ) Description:
TYPE-POOLS:?abap.

DATA:?fullpath????TYPE?string,
??????filename????TYPE?string,
??????path????????TYPE?string,
??????user_action?TYPE?i,
??????encoding????TYPE?abap_encoding.

CALL?METHOD?cl_gui_frontend_services=>file_save_dialog
??EXPORTING
????window_title??????=?'下載到本地文件'
????default_extension?=?'XLS'???????????"缺省文件類型
????default_file_name?=?'默認文件名稱'
????file_filter???????=?'文本文件(*.TXT)|*.TXT|Excel?文件?(*.XLS)|*.XLS;*.XLSX|所有文件?(*.*)|*.*|'
????with_encoding?????=?'X'
????initial_directory?=?'C:\'
??CHANGING
????filename??????????=?filename????"獲得用戶輸入文件名
????path??????????????=?path????????"獲得用戶所選路徑
????fullpath??????????=?fullpath????"路徑加文件名
????user_action???????=?user_action
????file_encoding?????=?encoding.

IF?sy-subrc?<>?0?OR?user_action?<>?cl_gui_frontend_services=>action_ok.
??EXIT.
ENDIF.

總結

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

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