代码改变世界

ABAP 文本下载到EXCEL时可能会导致换行的文本字符/字符串

2020-11-30 13:46  覆盆子  阅读(589)  评论(0编辑  收藏  举报

通过call function 'WS_DOWNLOAD'进行数据下载时,文本中往往可能存在英文双引号“、换行符或者回车,导致下载到EXCEL里面的数据被无故换行,所以在数据写入前,需要先将相关字符串里面的这些特殊字符进行处理,比如删除(删除当然会改变文本)

下面就是做的一个删除的动作

 

46C以下的版本:

    DATA: gc_result(50) type c.

    constants: con_tab type x value '09'.

    *CONCATENATE 'text01' con_tab 'text02' con_tab 'text03' into gc_result.

    470以上的版本:

    class cl_abap_char_utilities definition load.

    constants: c_tab type c value cl_abap_char_utilities=>HORIZONTAL_TAB.

    *CONCATENATE 'text01' c_tab 'text02' c_tab 'text03' into gc_result. 

    REPLACE c_tab WITH '' INTO GV_SGTXT.   "替换GV_SGTXT里面的特殊符号

 

    在ABAP开发中,还存在其他特殊字符的使用情况,我们一块来了解一下:

    类cl_abap_char_utilities中的特殊字符列表如下:

    cl_abap_char_utilities=>horizontal_tab — 09    TAB符

    cl_abap_char_utilities=>CR_LF ———-- 0D0A    回车换行

    cl_abap_char_utilities=>VERTICAL_TAB —- 0B    垂直制表符

    cl_abap_char_utilities=>NEWLINE —---- 0A    换行

    cl_abap_char_utilities=>FORM_FEED —--- 0C    换页

    cl_abap_char_utilities=>BACKSPACE —---08    退格符

    CL_ABAP_CHAR_UTILITIES=>BYTE_ORDER_MARK_LITTLE-----(utf-16le')的文件头

CL_ABAP_CHAR_UTILITIES=>BYTE_ORDER_MARK_UTF8-------(utf-8)的文件