Excelでの簡単な実験、つまりAlt+Enter
文字のセルを作成してCSVファイルとして保存すると、そのような新しい行のシンボルはLF
であり、CR_LF
ではありません。さらに二重引用符で囲まれています。
したがって、二重引用符とCL_ABAP_CHAR_UTILITIES=>NEWLINE
を使用してください。
それは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.
を次のように結果が見え、私はそれが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.
だから、問題はどこか別の場所でなければなりません。あなたは私たちにあなたのコード全体を示しているわけではありません。たぶん、Excelファイルを処理するために何らかのサードパーティ製のパッケージを使用していますか?
もちろん、エクスポートする必要はありません。しかしクライアントは、AUFNRと同じセルの次の行(TPLNR)でそれをフォーマットしたいと考えています。 – AlexanderK
なぜ内部テーブルを作成して列のフィールドを分割しないのですか?私はそれが良い内部テーブルを使用していると思うし、必要に応じてそれを使用して... –
それはxlsファイルは、その中にマクロの束を持っているので、だから... – AlexanderK