Добрый день! Требуется написание макроса для очистки текста в ячейках по условиям. Есть выгрузка товаров от поставщика в формате CSV, где построчно заполнены товары, а по столбцам идут различные характеристики данных товаров (категория, атрибуты, ссылка на фото и т.д.). Всего выгрузка содержит чуть более 18 000 товаров. В столбце атрибутами для каждого товара в одной ячейке содержится сразу множество атрибутов и их значений, разделенные HTML-тегами.
Пример:
В обоих случаях проблема в предпоследней строке. В первом случае выгрузился атрибут, но нет его значения (<dt>Материал корпуса</dt><</dd>), во втором случае просто появился лишний тег (<</dd>).
Соответственно требуется макрос, так как процедура будет регулярная и файл постоянно новый скачивается, который бы удалял в первом случае лишний тег и сам атрибут (<dt>Материал корпуса</dt><</dd>), а во втором случае только лишний тег (<</dd>).
Пример:
Код |
---|
<dl> <dt>Страна происхождения</dt><dd>Южная Корея</dd> <dt>Подсветка</dt><dd>Нет</dd> <dt>Стразы</dt><dd>Нет</dd> <dt>Материал корпуса</dt><dd>Пластик</dd> <dt>Тип механизма</dt><dd>Кварцевые</dd> <dt>Ход</dt><dd>Плавный</dd> <dt>Цвет циферблата</dt><dd>Белый</dd> <dt>Цифры</dt><dd>Арабские</dd> <dt>ГАРАНТИЯ</dt><dd>1 год</dd> <dt>Мелодия</dt><dd>Нет</dd> </dl> |
Но в данной выгрузке у примерно 650 товаров есть проблемы с атрибутами, которые мешают дальнейшей загрузке на сайт. Выражается это обрезанной информации и проявляется это всего 2 случаями. Примеры проблемных случаев:
Код |
---|
Первый случай: <dl> <dt>Класс водонепроницаемости</dt><dd>WR100 (10 атм)</dd> <dt>Материал браслета/ремешка</dt><dd>Нержавеющая сталь</dd> <dt>Стразы</dt><dd>Нет</dd><dt>ГАРАНТИЯ</dt><dd>2 года</dd> <dt>Ремешок/Браслет</dt><dd>Браслет</dd> <dt>Противоударные</dt><dd>Нет</dd> <dt>Спорт-функции</dt><dd>Нет</dd> <dt>Детские</dt><dd>Нет</dd> <dt>Дополнительные функции</dt><dd>Календарь</dd> <dt>Подсветка</dt><dd>Стрелок</dd> <dt>Цифры</dt><dd>Арабские</dd> <dt>Отображение даты</dt><dd>Число</dd> <dt>Bluetooth</dt><dd>Нет</dd> <dt>Дополнительные циферблаты</dt><dd>Нет</dd> <dt>Водонепроницаемые</dt><dd>Да</dd> <dt>Хронограф</dt><dd>Нет</dd> <dt>Будильник</dt><dd>Нет</dd> <dt>Стекло</dt><dd>Минеральное</dd> <dt>Форма</dt><dd>Круг</dd> <dt>Тип механизма</dt><dd>Кварцевые</dd> <dt>Способ отображения времени</dt><dd>Аналоговый (стрелки)</dd> <dt>Цвет браслета/ремешка</dt><dd>Хром</dd> <dt>Источник энергии</dt><dd>От батарейки</dd> <dt>Принадлежность</dt><dd>Мужские</dd> <dt>Говорящие</dt><dd>Нет</dd> <dt>Цвет циферблата</dt><dd>Черный</dd> <dt>Материал корпуса</dt><</dd> </dl> Второй случай: <dl> <dt>Дополнительные функции</dt><dd>Второй часовой пояс+Календарь</dd> <dt>Спорт-функции</dt><dd>Секундомер</dd> <dt>Страна происхождения</dt><dd>Япония</dd> <dt>Стиль</dt><dd>Спортивный</dd> <dt>Цвет браслета/ремешка</dt><dd>Черный</dd> <dt>Будильник</dt><dd>Да</dd> <dt>Материал корпуса</dt><dd>Пластик</dd> <dt>Говорящие</dt><dd>Нет</dd> <dt>Способ отображения времени</dt><dd>Цифровой (электронный)</dd> <dt>Источник энергии</dt><dd>От батарейки</dd> <dt>Принадлежность</dt><dd>Мужские</dd> <dt>Материал браслета/ремешка</dt><dd>Пластик</dd> <dt>Bluetooth</dt><dd>Нет</dd> <dt>Дополнительные циферблаты</dt><dd>Нет</dd> <dt>Подсветка</dt><dd>Дисплея</dd> <dt>Хронограф</dt><dd>Нет</dd> <dt>Водонепроницаемые</dt><dd>Нет</dd> <dt>Класс водонепроницаемости</dt><dd>WR30 (3 атм)</dd> <dt>Цифры</dt><dd>Арабские</dd> <dt>Цвет циферблата</dt><dd>Lcd</dd> <dt>Тип механизма</dt><dd>Электронные</dd> <dt>Форма</dt><dd>Квадрат</dd> <dt>Противоударные</dt><dd>Нет</dd> <dt>Детские</dt><dd>Нет</dd> <dt>Стразы</dt><dd>Нет</dd> <dt>ГАРАНТИЯ</dt><dd>2 года</dd> <</dd> </dl> |
Соответственно требуется макрос, так как процедура будет регулярная и файл постоянно новый скачивается, который бы удалял в первом случае лишний тег и сам атрибут (<dt>Материал корпуса</dt><</dd>), а во втором случае только лишний тег (<</dd>).