Время от времени появляется задача выгрузить отчет в Excel и выполнить перенос строки внутри ячейки. Вот и мне такая попалась.
Пара пустяков, подумал я. Добавим код переноса строки « » в необходимые нам места текста и profit. Однако, не все так просто. Хотя, просто конечно, но не так :^) Но, обо всем по порядку.
Добавив перенос строки в текст и выгрузив файл видим следующую картину:
Excel не понял чего мы хотим. Да и откуда ему знать?
Начинаем копать. Сохраняем выгруженный файл как таблицу XML.
Открываем, находим наш текст.
Ага! Вот и ответ. При выгрузке наш амперсант успешно заменился на «&», т.е. Excel принял его за часть «полезного» текста, а не за служебный символ и честно отобразил.
Что ж, проблема понятна. Для того, чтобы ее решить напишем небольшой макрос VBA, который запустится после выгрузки и заменит все символы «
» на разрыв строки.
Реализация на ABAP.
ZWWW
Макрос VBA:
XSLT-трансформация
В случае выгрузки через XSLT-трансформацию можно сделать так:
XLSX Workbench
Для переноса строки внутри ячейки при выгрузке через XLSX Workbench сделайте так:
Раз:
