Как избежать преобразования чисел в дату при использовании [DYNAMICVALUES]?

Тема в разделе "Решение различных задач по парсингу", создана пользователем weresa, 1 мар 2019.

  1. weresa

    weresa Active Member Пользователи

    Регистрация:
    14 сен 2014
    Сообщения:
    237
    Доброго времени суток.
    Настроен проект, все работает, используется [DYNAMICVALUES] для распределения характеристик товара по отдельным колонкам.
    Проблема вылезает такая, что некоторые характеристики с числами, имеющие в своем составе слэш или дефис, в выгрузке превращаются в дату... (
    В обычных границах я делаю замену слэш на обратный или что-то другое. А как здесь выкрутиться, подскажите?
    Если где-то уже подобный вопрос задавали, то прошу направить почитать. Заранее спасибо)
     
    Последнее редактирование: 1 мар 2019
  2. Dron25

    Dron25 Well-Known Member Пользователи

    Регистрация:
    17 июн 2014
    Сообщения:
    263
    Добрый день
    в даты переобразовывается в екселе скорее всего
    откройте файл либерти офисом и пересохраните в xlsx
     
  3. weresa

    weresa Active Member Пользователи

    Регистрация:
    14 сен 2014
    Сообщения:
    237
    спасибо, но мне необходим именно формат *.csv , с целью последующего импорта
     
  4. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Это уже вопросы к поддержке MS Excell.

    Для чего вы его вообще используете? При импорте в магазин такого "паразитного" преобразования происходить не будет.
     
  5. weresa

    weresa Active Member Пользователи

    Регистрация:
    14 сен 2014
    Сообщения:
    237
    Root, Вы имеете ввиду, что даже если я вижу в файле дату, импортируется нормально?

    Или категорически нельзя открывать его Экселем?
    Но есть необходимость редактировать файл перед импортом.

    Я пыталась использовать макрос [FINAL_REPLACE]. Но если в него оборачивать весь шаблон вывода сразу, то замены применяются вообще ко всем столбцам, где они совсем не нужны. А прицепить этот макрос только к характеристикам не получается((
     
    Последнее редактирование: 1 мар 2019
  6. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Если не пересохранять в Excel файл, то импортируется нормально (я уже писал, что это преобразование делает Excel).

    Я не понимаю, в чем проблема применить макрос поиск-замены только к нужной части результата. Примените его только к характеристикам.
     
  7. weresa

    weresa Active Member Пользователи

    Регистрация:
    14 сен 2014
    Сообщения:
    237
    Root, я ставлю макрос вокруг границы характеристик:
    [VERTTABLE][PREFIX]<CD_GRAN_6!>[CSVCS]<CD_GRAN_7!>[CSVCS]<CD_GRAN_12!>[CSVCS]<CD_GRAN_3!>[CSVCS]<CD_GRAN_1!>[CSVCS]<CD_GRAN_2!>[CSVCS]<CD_GRAN_4!>[CSVCS]<CD_GRAN_5!>[CSVCS]<CD_CYCLE_GRAN_1!>[CSVCS]<CD_GRAN_8!>[CSVCS][TOTRANSLITE:regdown,clear,convertspaces]<CD_GRAN_3!>[/TOTRANSLITE][/PREFIX][MIN]2[/MIN][FINAL_REPLACE(.|,{break}/|\)]<CD_GRAN_11!>[/FINAL_REPLACE][/VERTTABLE]
    Но у меня в заголовок первой характеристики влезает сам макрос, а замена все равно не срабатывает (см. скрин). [​IMG]
    В какое место правильно будет поставить этот макрос?
     
  8. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Говорите про характеристики, а сами применяете замену к ИМЕНАМ характеристик. Также зачем-то пытаетесь использовать макросы шаблона вывода в строке заголовка.

    2019-03-01_23-46-16.png
     
    weresa нравится это.
  9. weresa

    weresa Active Member Пользователи

    Регистрация:
    14 сен 2014
    Сообщения:
    237
    Если просто заменой в настройках границы, то точка на запятую еще прокатывает, а вот слэш и дефис менять нельзя, т.к. они стоят в тегах ...
     
  10. weresa

    weresa Active Member Пользователи

    Регистрация:
    14 сен 2014
    Сообщения:
    237
    Вот знала же, что все просто! век живи - век учись!
    Root, СПАСИБО!

    П.С. Извиняюсь за свое косноязычие)
     
    Root нравится это.
  11. cherkas

    cherkas Member Пользователи

    Регистрация:
    20 авг 2013
    Сообщения:
    54
    Адрес:
    Украина
    тоже боролся с такой же проблемой, нашел решение при котором не нужно менять точки, слеши и т.д. всё работает на ура

    предположим что значение характеристики у нас в границе парсинга 10, тогда в выводе пишем так

    ...[CSVCS]="<CD_GRAN_10!>"[CSVCS]...

    а в границах парсинга 10 ставим поиск замену
    "|"&""""&"

    как это работет

    при открытии в excel в ячейке будет не просто значение а формула примерно так

    ="спарсенные данные"

    и какие бы знаки небыли внутри кавычек значение останется неизменным

    поиск замена нужна для того, если в самих спарсенных данных будет кавычка, тогда она заменится на соединение нескольких частей до кавычки, самой кавычки, и после кавычки т.е.

    к примеру у нас попалось значение

    спарсенные" данные

    будет одна поиск/замена
    в итоге получится формула

    ="спарсенные"&""""&"данные"
    где

    ="____________- начало формулы и открытие кавычек перед <CD_GRAN_10!>
    спарсенное _____- сарсенная часть до кавычки
    "&""""&"________- закрытие кавычки, & - знак объединения, """" - кавычка, & - знак объединения и " - открытие новой кавычки
    данные________- спарсенная часть после кавычки
    " _____________- закрытие кавычки после <CD_GRAN_10!>

    после открытия в excel нужно просто выделить всё и вставить как значения, при этом формулы пропадут и в ячейке будет не преобразованные в дату данные.

    ВНИМАНИЕ! - если сохранить фаил в формате csv то сохраниться всё правильно, но при повторном открытии где есть проблема с преобразованием всё станет датами. Если же сохранить как xls или xlsx то при повторном открытии проблем не будет, по этому храните и редактируйте фаил в формате xls а уже непосредственно перед загрузкой, когда все данные отредактированы, сохраните как csv и смело загружайте.

    такой вариант считаю более предпочтительным, чем изменять данные, так как мы не теряем информативность этих данных. К примеру диаметр 3/4 дюйма по другому, привычно и понятно для покупателя в магазине написать не как, а excel открывает такое значение как 03.апр. Ну а если заменить 3/4 на что то другое то становиться не понятно покупателю.
     
    Root и kagorec нравится это.

Поделиться этой страницей