Простой эксперимент с Excel, а именно создание ячейки с символами Alt+Enter
и сохранение ее как файла CSV, показывает, что такой новый символ строки LF
, а не CR_LF
. Более того, он помещается туда в двойные кавычки.
Так что просто используйте двойные кавычки и CL_ABAP_CHAR_UTILITIES=>NEWLINE
.
Он должен работать с CSV. Вы не указали, какой API вы используете для экспорта своих данных в формат XLS, поэтому я не могу его протестировать. Если вы не возражаете поставить эти детали в вопросе, пожалуйста, сделайте это.
Предполагая, что вы используете 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