2017-02-03 7 views
2

セルに「改行」記号で区切られたデータを入力する必要があります。 は、私が試してみた:エクセルに書き出すときの改行記号

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を使用しようとしました。 "&"と "#"記号を使用しようとしました。引用符付きでlv_strをラップしようとしました。何もない。 私はシンボルをそのまま、またはalt + enterの同等のインスタントスペースを持っています。

答えて

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ファイルを処理するために何らかのサードパーティ製のパッケージを使用していますか?

0

"end of line"シンボルを追加する必要があるかどうかはわかりません。 各行をテーブルに追加して、FM SAP_CONVERT_TO_XLS_FORMATを使用してテーブル全体をダウンロードしてください。

+0

もちろん、エクスポートする必要はありません。しかしクライアントは、AUFNRと同じセルの次の行(TPLNR)でそれをフォーマットしたいと考えています。 – AlexanderK

+0

なぜ内部テーブルを作成して列のフィールドを分割しないのですか?私はそれが良い内部テーブルを使用していると思うし、必要に応じてそれを使用して... –

+0

それはxlsファイルは、その中にマクロの束を持っているので、だから... – AlexanderK

関連する問題