您的位置:首页 > 其它

TEXT_CONVERT_XLS_TO_SAP实例

2017-02-21 09:11 1821 查看
之前尝试很多次使用gui_upload去上传excel数据,每次都出现乱码,不管中文英文都乱码。 至今不知道gui_upload是否支持excel文件上传,它的每个参数都尝试了,修改参数貌似并不能解决它出现乱码的事实。

于是想到用ALSM_EXCEL_TO_INTERNAL_TABLE,这个函数用起来有点蛋疼,不能使用自定义的格式,必须要定义一个和它规定的格式的内表来接收传来的值,完了要loop这个内表,再一条一条sign的自定义格式的内表中去。

后来选择用:TEXT_CONVERT_XLS_TO_SAP,这个函数用起来挺方便,没有乱码现象,还可以去掉首行,最重要的是能返回自己需要的格式的内表。

以下是实例:

TYPE-POOLS truxs.
DATA:it_raw TYPE truxs_t_text_data.

*定义一个内表来存储数据,内表的列数和要传得数据的列数要相同,其按照列来匹配传值
DATA: BEGIN OF gt_data OCCURS 0,

     col1 TYPE char10,

     col2 TYPE char10,

      END OF gt_data.

*生成一个parameters元素,给其加上on value-request事件(在parameters上点击F4时触发)

PARAMETERS:p_file TYPE rlgrap-filename.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

  CLEAR p_file.

  CALL FUNCTION 'F4_FILENAME'

    IMPORTING

      file_name = p_file."返回文件名

*Excel传值

START-OF-SELECTION.

  PERFORM exceltotab.

  PERFORM display_data.

*&---------------------------------------------------------------------*
*&      Form  exceltotab
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM exceltotab .

  CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'

  EXPORTING
* I_FIELD_SEPERATOR =
*  i_line_header = 'X'

  i_tab_raw_data = it_raw " WORK TABLE

  i_filename = p_file

  TABLES

  i_tab_converted_data = gt_data[] "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.

ENDFORM.                    "exceltotab

文章转自:http://blog.csdn.net/liangziyisheng/article/details/6995896
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ABAP 函数