导出到Excel时的新行符号

时间:2017-02-03 10:14:07

标签: excel abap

我需要用一个数据填充一个单元格,用“新行”符号分隔。 我试过了:

 data: l_con_sepa TYPE c VALUE cl_abap_char_utilities=>newline.
...
    CONCATENATE  <gf_aufk>-tplnr " 6000000159 Korchagin AS 02.02.2017
                      <gf_aufk>-pltxt
                      l_con_sepa
                      <gf_aufk>-aufnr
                      INTO lv_str
            SEPARATED BY space.

试图使用CL_ABAP_CHAR_UTILITIES=>CR_LF。试图用“&amp;”和“#”符号。试图用引号括起lv_str。没有。 我要么按原样使用符号,要么只是一个空白空间'alt + enter'等效。

2 个答案:

答案 0 :(得分:2)

使用Excel进行的简单实验,即创建一个包含Alt+Enter个字符的单元格并将其另存为CSV文件,可以看出这样的新行符号是LF而不是CR_LF。此外,它用双引号括起来。

所以只需使用双引号和CL_ABAP_CHAR_UTILITIES=>NEWLINE

Excel

Notepad++

必须使用CSV。您没有指定用于将数据导出为XLS格式的API,因此我无法对其进行测试。如果你不介意在问题中加入这些细节,请这样做。

假设你使用FM SAP_CONVERT_TO_XLS_FORMAT,甚至不需要双引号。

REPORT YYY.

TYPES: BEGIN OF gty_my_type,
    col1 TYPE char255,
    col2 TYPE char255,
  END OF gty_my_type,
  gtty_my_type TYPE STANDARD TABLE OF gty_my_type WITH EMPTY KEY.

START-OF-SELECTION.
  DATA(gt_string_table) = VALUE gtty_my_type(
    (
      col1 = 'aaa'
        && cl_abap_char_utilities=>newline
        && 'bbb'
        && cl_abap_char_utilities=>newline
        && 'ccc'
      col2 = 'ddd'
    )
  ).

  CALL FUNCTION 'SAP_CONVERT_TO_XLS_FORMAT'
    EXPORTING
      i_filename                 = 'D:\temp\abap.xlsx'
    TABLES
      i_tab_sap_data             = gt_string_table
    EXCEPTIONS
      conversion_failed          = 1
      OTHERS                     = 2.

  ASSERT sy-subrc = 0.

结果如下所示

Convert to XLS format result

我认为它可能是由CONCATENATE .. INTO .. SEPARATED BY space引起的,但事实并非如此。请执行以下程序以查看它。

REPORT YYY.

TYPES: BEGIN OF gty_my_type,
    col1 TYPE char255,
    col2 TYPE char255,
  END OF gty_my_type,
  gtty_my_type TYPE STANDARD TABLE OF gty_my_type WITH EMPTY KEY.
DATA: gs_string TYPE gty_my_type.
DATA: gt_string_table TYPE gtty_my_type.

START-OF-SELECTION.
  CONCATENATE 'aaa' cl_abap_char_utilities=>newline 'bbb' cl_abap_char_utilities=>newline 'ccc'
    INTO gs_string-col1 SEPARATED BY space.
  gs_string-col2 = 'ddd'.
  APPEND gs_string TO gt_string_table.


  CALL FUNCTION 'SAP_CONVERT_TO_XLS_FORMAT'
    EXPORTING
      i_filename                 = 'D:\temp\abap.xlsx'
    TABLES
      i_tab_sap_data             = gt_string_table
    EXCEPTIONS
      conversion_failed          = 1
      OTHERS                     = 2.

  ASSERT sy-subrc = 0.

Result Excel with CONCATENATE SEPARATED BY

所以问题必定在其他地方。您没有向我们展示您的整个代码。也许您使用某种第三方软件包来处理您的Excel文件?

答案 1 :(得分:0)

我不记得是否需要添加&#34;行结束&#34;符号。 只需将每一行附加到表格中,然后使用FM SAP_CONVERT_TO_XLS_FORMAT下载整个表格。