[SAP ABAP開發技術總結]文本文件、Excel文件上傳下傳


 

20.22.1.      讀取客戶端TxtExcel文件到內表: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. "會自動的將ExcelTxt
文件中的數據一行行讀取到數據內表中

20.22.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文件已經存在,那么數據會被覆蓋

注:數據內表中的字段類型不能是數字類型,否則會出現意想不到的錯,如有數字類型字段,轉出前最好先轉換為字符類型再輸出


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM