|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
06.09.2018, 19:08 | #1 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
Excel 2010 съедает нули в начале артикула позиции
Здравствуйте. Сегодня столкнулся со следующей проблемой, объясню на конкретном примере ...
Есть много файлов (24), которые приходят в разных форматах: какие то в CSV, какие то в XLSX, какие то в XLS. Все файлы необходимо прочищать от всякой нечисти, вроде служебных символов (для правильного составления SQL). Прочистка выполняется для каждого файла отдельно с помощью VB-скрипта, и всё это выполняется под Excel 2010. Ну и разумеется, для некоего упрощения жизни всё это дело сохраняется в CSV. Теперь по примеру. Есть два файла - CSV и XLSX. Есть артикул запчасти (она же позиция) - 03674. Если первый файл открыть с помощью блокнота - то там присутствует артикул именно в таком виде. Если этот же файл открыть в экселе - то там артикул уже без нуля. Второй файл блокнотом проверить затруднительно, но в экселе он изначально идёт без нуля. НО, на сайте поставщика артикул с нулём, то есть по идее, в прайс тоже изначально записывается артикул правильно. Теперь о сути проблемы: в моём случае 03674 != 3674, а эксель так не думает. Делал формат ячеек текстовый, бесполезно. Как подскажете бороться ?
Подпись ? Не, не слышал ...
|
06.09.2018, 19:45 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,238
|
попробуйте в CSV файле задать перед нулями, которые нужно сохранить, поставить символ '
например, Код:
но, в любом случае, такая проблема есть и Excel будет Вам мешать изо всех сил. |
06.09.2018, 19:47 | #3 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
Это служебный символ в SQL. Они у меня тоже прочищаются макросом в Excel.
Иначе выполнение запросов сыпется на синтаксисе.
Подпись ? Не, не слышал ...
|
06.09.2018, 22:43 | #4 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
а) не не проблема excel 2010, это стиль работы Excel вообще
б) есть добрый десяток если не сотни способов решения проблемы описываете свою задачу: что делаете, что получается, а что хотите получить и, возможно, Вам смогут подсказать как это сделать.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
07.09.2018, 01:22 | #5 | |||||||
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
Цитата:
Ещё раз, разложу в том порядке, в котором вы попросили: Что есть: Цитата:
Что делаю: Цитата:
При этом, такое поведение Excel фиксируется ещё до обработки, то есть - до того, как я сделал что то. Цитата:
должно быть понятно исходя из сути проблемы Цитата:
Цитата:
Среди служебных символов та самая одинарная кавычка, о чём я упомянул выше: Цитата:
P. S. Как вы могли догадаться - линейного мышления здесь не хватит, для того что бы понять суть проблемы. Так как я уже имею определённые наработки, в которых что то из чего то следует.
Подпись ? Не, не слышал ...
Последний раз редактировалось OmegaBerkut; 07.09.2018 в 01:32. |
|||||||
07.09.2018, 02:37 | #6 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
0. Скопируйте файлы во вложении себе на диск.
1. откройте Excel 2. откройте file.SCV. Видите нули в артикулах? 3. закройте file.SCV 4. откройте файл ОткрытьCSVFile 5. жмите кнопку Открыть file.csv. Видите нули в артикулах??
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
07.09.2018, 02:44 | #7 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
IgorGO, вы кажется забыли вложить сам макрос ... =)
В файле CSV нули видны в блокноте, а в экселе не видны ни при втором, ни при пятом пунктах. P. S. При пятом пункте я открывал файл из папки, а не по кнопке, ибо см. скриншот.
Подпись ? Не, не слышал ...
|
07.09.2018, 02:47 | #8 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
Упс сори.
Забыл "Разрешить редактирование". Щас нули появились. Где фокус-покус ?
Подпись ? Не, не слышал ...
|
07.09.2018, 02:55 | #9 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
см. макрос в файле ОткрытьCSVFile (там всего пара строк)
а вообще фокус в том, что достаточно понимать что делать и сделать это
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
07.09.2018, 03:02 | #10 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
В принципе, разобрался ...
Хорошо, едем дальше по моей ситуации. Есть 24 файла, и в каждом файле есть колонка с артикулом, её расположение зависит исключительно от фантазии того, кто писал генератор каждого отдельного файла прайса. В прочем, как и содержимое этих колонок тоже зависит далеко не от меня, и даже не от поставщиков, а от тех, кто эти артикулы создаёт. В частности, довольно большое количество артикулов начинаются с нуля, а иногда этих нулей может быть несколько. Таким образом я имею две проблемы: 1) колонки с нужными данными для редактирования могут располагаться не в фиксированном месте; 2) сами артикулы могут быть изначально проблемными, но, не все. То есть, мне в самом простом случае нужно под каждый файл прайса подбивать данные, где нужно выставить эти апострофы, и они будут не только там, где нужно, но это ладно. Суть в том, что это довольно таки затратная процедура, а прайсы обновлять нужно каждый день. 1. Есть ли возможность отключить эту дикую дичь в экселе, типа "вот я тут подумал, а нафига тебе тут нули, когда это число". Мы уже разобрались, что это текст. 2. Или: есть ли возможность обойтись без экселя ? По поводу второго пункта: я пытался накодить собственный парсер с использованием библиотек для работы с файлами Excel. Но на практике выясняется, что парсинг нескольких миллионов позиций - довольно затратная операция, макрос в экселе работает наиболее быстро (от пары секунд до пол минуты в зависимости от количества позиций в одном прайсе). С чем это связано - мне пока что не понятно. Собственный парсер с одним файлом работал больше трёх минут, на этом я программу закрыл, и больше не открывал (вроде как даже удалил проект).
Подпись ? Не, не слышал ...
Последний раз редактировалось OmegaBerkut; 07.09.2018 в 03:07. |
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Выставить артикула друг напротив друга в ms excel | Djshap | Помощь студентам | 1 | 31.01.2017 20:48 |
text-overflow: ellipsis - как сделать, чтобы он обрезал предложение в начале и ставил многоточие в начале? | orion1212 | HTML и CSS | 4 | 06.11.2016 20:01 |
Нули заменить пустыми ячейками. Excel | ДТВ | Помощь студентам | 0 | 16.04.2013 18:23 |
Excel обрезает нули | W0LF | Общие вопросы Delphi | 1 | 14.02.2013 22:57 |
Расцепить 18 столбцов и убрать нули в Excel 2003 | явген | Microsoft Office Excel | 10 | 17.08.2011 23:46 |