gifts2017

Вредные советы (загрузка из таблиц Excel)

Опубликовал Павел Опарин (opx) в раздел Программирование - Практика программирования

Программисты просят вас предоставить данные в xls для загрузки? Обязательно почитайте и проверьте все ли пункты присутствуют в вашем файле.... Иначе загрузка будет скучной и не интересной для них.

С чего я написал эту статью? А с того, что один заказчик сказал, что все данные есть и он мне их даст в xls. Файлов было около 12 и открыв первые два немного поплевался, но решил, что сделаю алгоритм и исправлю эти мелкие недочеты (которые, впринципе есть всегда) своим кодом. В результает все файлы переделал вручную с помощью LibreOffice... благо времени для запуска всего проекта было много - целая ночь :) А срывать сроки только из-за того, чтобы объяснять заказчикам каие должны быть файлы - могло растянуться на неделю-другую. И весь этот негатив от моих "придирок" и проваленных сроках естественно ушел бы на меня. Кстати нижеперечисленные пункты взяты не из головы. Я даже думаю, что заказчик читал похожие советы где-то, иначе откуда бы взялись такие файлы?

И так: Программисты просят вас предоставить данные в xls для загрузки? Обязательно почитайте и проверьте все ли пункты присутствуют в вашем файле.... Иначе загрузка будет скучной и не интересной для них.

  1. Скртые строки (усложняют, но не сильно... сильно усложняют только тогда, когда в скрытых строках содержаться данные)

  2. Объединенные ячейки (сильно усложняют)

  3. Несколько файлов, в которых подразумевается шапка, но в шапке некоторых файлов встречаются по разному названные колонки. Напр: «Макс. Нагрузка» и «Максимальная нагрузка» для алгоритма совершенно разные колонки (сильно усложняет)

  4. Визуальное разделение ячейки. Напр: Данные «это строка» и «это другая строка» относятся к разным колонкам, но разделены произвольным количеством пробелов (обычно от 6-10) (сильно усложняет)

  5. Оформление ячеек, такое как разлиновка, раскраска, выделение жирным (не усложняет вовсе, но алгоритму на них все равно и заказчик при этом может потратить пол дня на украшения)

  6. Мусор в ячейках. Напр: ячейки не должны содержать данных, но в них есть какие-либо символы (пробел, кавычка, запятая и т. д.). Это же и ежу понятно, что мусор, но только не алгоритму (сильно усложняет)

  7. Часть данных записана в строке n, а часть данных в строке n+1, причем в произвольном порядке. Но ведь они разделены рамками таблицы (сильно усложняет, вплоть до невозможности обработки)

  8. Колонка подразумевает вполне четкие значения, но везде записаны по разному. Напр: валюта (сильно усложняет если называть ее значения по разному: «руб.» он же «руб», он же «рубль», он же «руб .» - это все одно значение для человека, но разные для алгоритма. Посмотрите внимательно, чем они отличаются.

  9. В ячейке, которая должна быть числом содержаться строковые данные. Напр.: Цена во всех ячейках выглядит как 8, 9,10.01, 11,12 и т. д. но встречаются ячейки в которых записано 10 шт. или 9 штук (усложняют только когда они имеют суффикс и по возможности не повторяются. Причем «шт.» и «штук» уже не повторяются см. п.8)

  10. Адрес записан в одной ячейке, но в результате должен быть разделен на город, улицу, квартиру, корпус, дом, строение и офис (Сильно усложняет вплоть до невозможности обработки адреса)

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Nio Nio (Nio) 02.04.12 11:45
2. Александр Овсянников (_LEV_) 02.04.12 16:05
Дать бы почитать список клиентам, которые присылают заказы в Екселе.
Думаю они даже переплюнут этот список в несколько раз, такое творят, мама не горюй :(
oninfostart; Voblhned; mdzen; opx; +4 Ответить
3. Николай (provnick) 04.04.12 06:33
Встретился такой вариант артикула (Каталожный номер), в одной ячейке одно число, обозначающее что то известное только производителю, в другой ячейке марка автомобиля (цифрами), в третьей некая загадочная цифра, в четвертой еще одна цифра. Говорят нам все это нужно. Вот теперь не знаю, то ли загнать это все в артикул, то ли доп. реквизиты в номенклатуре создавать, то ли задать пять почему, как в публикации http://infostart.ru/public/123716/
4. Соколов Михаил (atarix) 04.04.12 06:49
вот такой вариант - вместо того чтобы ввести в 3 колонке вводят в 1 и добивают пробелами что стояло там где надо
еще очень нравятся присылаемые файлы со ссылками на другие книги вместо данных.
5. Михаил Русанов (RainyAugust22) 04.04.12 07:02
(1)Это в книжке есть чтоли?:)
6. GalKo GalKo (GalKo) 04.04.12 07:31
Глупость! К программированию никакого отношения не имеет, просто это надо отнести к самообразованию пользователя 1С и Офиса. И коммент тоже глупый.
7. rasswet (rasswet) 04.04.12 12:07
да много что могут пользователи подпортить..
8. Максим Волков (maxlenium) 04.04.12 17:28
Спасибо автору. Очень интересно.
9. Сергей (1C82) 07.04.12 03:35
А слабо сделать так, чтобы пользователь если даже и захотел, то не напортачил? Я знаю решение !!!! Снести EXCEL с компьютера :) а лучше его совсем выключить...
10. Андрей (sttt) 07.04.12 15:49
все легко решается, не вижу проблем в описанном, единственное больше кода
11. Сергей Борзенков (flashorl) 07.04.12 18:32
Заходер отдыхает со своими советами))
12. Павел Опарин (opx) 08.04.12 13:13
(10)Иногда встает вопрос: "а как быстрее?" и "больше кода" бывает неуместно
13. Андрей (sttt) 08.04.12 13:23
(12) opx, как правило вопрос-ответ с часик занимает, если не минут
14. Ирли Бёрд (EarlyBird) 13.05.12 09:30
(13) sttt, фигню-то не неси.
Автор всё правильно говорит. Юзеров нужно прессовать, и требовать от них нормального исполнения юзерских обязанностей.
Иначе они совсем оборзеют, думать перестанут, а потом все косяки свалят на тебя и на программу, которая дескать "сама неправильно посчитала".
smaximaa; holostyak; +2 Ответить 2
15. Андрей (sttt) 13.05.12 11:08
(14) EarlyBird,
Ваше дело, у меня такого бардака нет и все довольны )))
16. Андрей (sttt) 13.05.12 11:08
(14) EarlyBird, бедные юзеры...
17. Eugeneer (Eugeneer) 31.08.12 15:31
Ставлю твердый минус статье - потому что никаких подобных сложностей нет и быть не может.
Все это ерунда и все загружается. Говорю как человек продавший свою загрузку более 500 раз и видавший столько же видов прайс листов.
Все элементарно решается и колонки, и ячейки и символы и все остальное!
18. Сергей Графчиков (Sergeant82) 31.08.12 22:38
(17) Eugeneer, ну зато вам было не скучно при загрузке =)
19. Роман (Raminus) 04.09.12 08:24
Ну в чем то конечно автор прав, но все же при желании все можно решить, да и скучно не будет :))
20. Александр Цегельников (markers) 04.09.12 13:55
На прошлом месте работы, была подобная проблема систематически. Пользователям отправляется прайс в некотором формате в котором есть колонка "Заказ", где подразумевается указание желаемого количества для заказа, и изначальный алгоритм их обработки автоматической был фиксированный под оригинальный прайс. Но часто клиенты присылали либо количество заказываемого товара не в той колонке, либо некоторые колонки удаляют (типа ненужные), либо присылают заказ вообще непохожий на оригинальный (например печатную форму заказа поставщику в Excel), в результате пользователям в 99% случаев приходилось ставить обработчику заказа в ручную номера колонок с необходимой информацией.
И тогда я решил попробовать это устранить, в результате получился код, который автоматически определяет назначение колонок (не по названию, а по содержимому) и сам обрабатывает, за счет чего стали обрабатываться > 99% заказов.
Конечно данный алгоритм сильно зависим от базы и не настраивается, из-за чего я суда его и не выложил, но плюс в нем ещё тот, который мне пригождался позже, это обработка XLS, XLSX, ODS.
Но конечно, в моем случае, тут обработка на регулярной основе однотипных данных....
21. Тарас Лохтин (Одинец) 29.08.15 19:37
Интересная статья и содержательное обсуждение в комментариях!
22. Артем Гусаров (Flashback1979SE) 24.08.16 05:01
Есть замечательное высказывание Лаврова на эту тему)))
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа