文本文件、Excel文件上传下传
1、讀取客戶端Txt、Excel文件到內表:TEXT_CONVERT_XLS_TO_SAP
TEXT_CONVERT_XLS_TO_SAP函數可以將本地的文本文件(列與列之間默認使用TAB鍵分開,但也可以指定)或真正的Excel文件上傳到服務內表中,并且文件轉換成內表中的數據是自動完成,不需要手動,這與ALSM_EXCEL_TO_INTERNAL_TABLE函數是不一樣的
PARAMETERS:p_file?LIKE?rlgrap-filename OBLIGATORY.
DATA:?il_raw?TYPE?truxs_t_text_data.
DATA:l_obj?TYPE REF TO?cl_gui_frontend_services.
DATA:?it_file?TYPE?filetable?WITH HEADER LINE.
DATA:?g_rc?TYPE i.
DATA:?BEGIN OF?i_data?OCCURS?0,
????????c(2),
??????? n(2)?TYPE?n,
????????i TYPE i,
??????? d?TYPE?d,
??????END OF?i_data.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR?p_file.?"彈出選擇文件對話框
??CREATE?OBJECT l_obj.
??CALL METHOD?l_obj->file_open_dialog
????EXPORTING
????? file_filter???????=?'*.xls;*.xlsx;*.txt'
????? initial_directory?=?'C:\data'
????CHANGING
????? file_table????????=?it_file[]
????? rc????????????????=?g_rc.
??READ TABLE?it_file?INDEX?1.
? p_file?=?it_file-filename.
START-OF-SELECTION.
??CALL FUNCTION?'TEXT_CONVERT_XLS_TO_SAP'"可以是Excel文件,也可以是Txt文件
????EXPORTING
*???? I_FIELD_SEPERATOR??? =?分隔符,默認為Tab
*???? i_line_header??????? = 'X'?"文本中的第一行是否是標題頭,如果是則不會讀取
????? i_tab_raw_data???????=?il_raw?"該參數實際上沒有使用到,但為必輸參數
????? i_filename???????????=?p_file
????TABLES
????? i_tab_converted_data?=?i_data.?"會自動的將Excel、Txt文件中的數據一行行讀取到數據內表中
2、將數據內表導出為EXCEL文件:SAP_CONVERT_TO_XLS_FORMAT
DATA:?t100_lines?TYPE STANDARD TABLE OF?t001.
SELECT?*?FROM?t001?INTO TABLE?t100_lines.
CALL FUNCTION?'SAP_CONVERT_TO_XLS_FORMAT'
??EXPORTING
??? i_filename?????=?'c:\1.xlsx'
??TABLES
??? i_tab_sap_data?=?t100_lines.
如果EXCEL文件已經存在,那么數據會被覆蓋
注:數據內表中的字段類型不能是數字類型,否則會出現意想不到的錯,如有數字類型字段,轉出前最好先轉換為字符類型再輸出
總結
以上是生活随笔為你收集整理的文本文件、Excel文件上传下传的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SAP上传Excel文档字符限制处理
- 下一篇: 【PP操作手册】工程变更创建的创建