Страницы: 1
RSS
Макрос для очистки текста
 
Добрый день! Требуется написание макроса для очистки текста в ячейках по условиям. Есть выгрузка товаров от поставщика в формате CSV, где построчно заполнены товары, а по столбцам идут различные характеристики данных товаров (категория, атрибуты, ссылка на фото и т.д.). Всего выгрузка содержит чуть более 18 000 товаров. В столбце атрибутами для каждого товара в одной ячейке содержится сразу множество атрибутов и их значений, разделенные HTML-тегами.
Пример:
Код
<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>).

Соответственно требуется макрос, так как процедура будет регулярная и файл постоянно новый скачивается, который бы удалял в первом случае лишний тег и сам атрибут (<dt>Материал корпуса</dt><</dd>), а во втором случае только лишний тег (<</dd>).
 
Написал в личку для ознакомления. В работе.
Оплачено!
Изменено: skais675 - 11.12.2017 16:01:29
 
Автору: измените логин в своем профиле. Отображаемое имя с нарушением правил форума.
 
Цитата
vikttur написал:
Автору: измените логин в своем профиле. Отображаемое имя с нарушением правил форума.
Изменил
Страницы: 1
Наверх