Время от времени появляется задача выгрузить отчет в Excel и выполнить перенос строки внутри ячейки. Вот и мне такая попалась.

Пара пустяков, подумал я. Добавим код переноса строки «
» в необходимые нам места текста и profit. Однако, не все так просто. Хотя, просто конечно, но не так :^) Но, обо всем по порядку.

Добавив перенос строки в текст и выгрузив файл видим следующую картину:

Рис.1

Excel не понял чего мы хотим. Да и откуда ему знать?

Начинаем копать. Сохраняем выгруженный файл как таблицу XML.

Рис.2

Открываем, находим наш текст.

Рис.3

Ага! Вот и ответ. При выгрузке наш амперсант успешно заменился на «&», т.е. Excel принял его за часть «полезного» текста, а не за служебный символ и честно отобразил.

Что ж, проблема понятна. Для того, чтобы ее решить напишем небольшой макрос VBA, который запустится после выгрузки и заменит все символы «
» на разрыв строки.

Реализация на ABAP.

ZWWW

Макрос VBA:

XSLT-трансформация

В случае выгрузки через XSLT-трансформацию можно сделать так:

XLSX Workbench

Для переноса строки внутри ячейки при выгрузке через XLSX Workbench сделайте так:

Раз:

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.