Некорректная работа с Excel

kz_webmaster

Client
Регистрация
02.01.2013
Сообщения
237
Благодарностей
19
Баллы
18
Всем привет.

Парсю один сайт и данные заношу построчно в Ексель. При этом происходит непонятно почему в некоторых ячейках запись содержимого переменной в кавычках. Т.е. вот так - "значение". При этом само Значение переменной без кавычек. Проверял. В данной переменной содержится текст с html разметкой - возможно содержание значения имеет какое-то значение. Х.з.

Иногда (1 процент из 100), тоже не понятно почему происходит запись данного значения в две ячейки, а не в одну. Т.е. Сначала пишет кусок в ту я чейку которую и должен писать. Вторую часть в правую (последующую) ячейку. Запись значений последующих переменных соответственно сдвигается на ячейку вправо.

Цепочка переменных выглядит так:

{-Variable.Articul-}{-String.Tab-}{-String.Tab-}{-String.Tab-}{-Variable.Naimenovanie-}{-String.Tab-}{-Variable.title-}{-String.Tab-}{-Variable.description-}{-String.Tab-}{-Variable.keywords-}{-String.Tab-}{-Variable.Opisanie-}{-String.Tab-}{-Variable.VsePoCvetam-}{-String.Tab-}{-Variable.CenaMin-}{-String.Tab-}{-Variable.VseDopFoto-}{-String.Tab-}{-Variable.Kategoria-}{-String.Tab-}{-Variable.Brend-}{-String.Tab-}{-Variable.NalichieFotoVOrig-}{-String.Tab-}{-Variable.FotoPoluchenoIzXML-}{-String.Tab-}{-Variable.FotoIzMobVersii-}

Вроде без ошибок...

Данная канитель происходит с переменной {-Variable.Opisanie-}

Примечание: После переменной Articul идет три {-String.Tab-} - нужны пустые столбцы... Пояснение, что бы не задавали лишних вопросов.

Встречался ли кто с такой проблемой? Ну и если кто знает лечение, буду благодарен.

Просьба админов прокомментировать.
 
Последнее редактирование:

kz_webmaster

Client
Регистрация
02.01.2013
Сообщения
237
Благодарностей
19
Баллы
18
С кавычками разобрался. Оказывается они добавляются не Екселем, а Notepad-ом, когда я туда скидываю текст, что бы его просмотреть. Почему он их добавляет - пока х.з., но это и не важно. Тоже самое происходит и с HTML редакторм. Вообщем пока не понятно.

Остался второй пункт - почему идет запись в две ячейки...
 

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 417
Благодарностей
5 454
Баллы
113
Остался второй пункт - почему идет запись в две ячейки...
Рекомендую записывать в таблицу не построчно, а импортировать из текстового файла итоговые данные при завершении работы.

Дело в переносе строк в описании. Для екселя это зло.
Ниже представлю регулярки для описания, почистят текст от лишнего и уберут переносы.



1) Убирает ненужные символы (мнемоники, смайлики) на 95%.

Замена regex
Код:
[^\w\s\\\-/.,!?:;()]
меняем на
Код:
{-String.Space-}

2) На всякий случай убираем разделители.

Замена regex
Код:
(:|;)
меняем на
Код:
,
3) Самое главное. Убираем переносы строк и пробелы идущие подряд.
Замена regex
Код:
\s+
меняем на
Код:
{-String.Space-}
P.S. Эти регулярки нужно использовать, только в рамках одной переменной.
 
Последнее редактирование:
  • Спасибо
Реакции: kz_webmaster

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)