С чего я написал эту статью? А с того, что один заказчик сказал, что все данные есть и он мне их даст в xls. Файлов было около 12 и открыв первые два немного поплевался, но решил, что сделаю алгоритм и исправлю эти мелкие недочеты (которые, впринципе есть всегда) своим кодом. В результает все файлы переделал вручную с помощью LibreOffice... благо времени для запуска всего проекта было много - целая ночь :) А срывать сроки только из-за того, чтобы объяснять заказчикам каие должны быть файлы - могло растянуться на неделю-другую. И весь этот негатив от моих "придирок" и проваленных сроках естественно ушел бы на меня. Кстати нижеперечисленные пункты взяты не из головы. Я даже думаю, что заказчик читал похожие советы где-то, иначе откуда бы взялись такие файлы?
И так: Программисты просят вас предоставить данные в xls для загрузки? Обязательно почитайте и проверьте все ли пункты присутствуют в вашем файле.... Иначе загрузка будет скучной и не интересной для них.
-
Скртые строки (усложняют, но не сильно... сильно усложняют только тогда, когда в скрытых строках содержаться данные)
-
Объединенные ячейки (сильно усложняют)
-
Несколько файлов, в которых подразумевается шапка, но в шапке некоторых файлов встречаются по разному названные колонки. Напр: «Макс. Нагрузка» и «Максимальная нагрузка» для алгоритма совершенно разные колонки (сильно усложняет)
-
Визуальное разделение ячейки. Напр: Данные «это строка» и «это другая строка» относятся к разным колонкам, но разделены произвольным количеством пробелов (обычно от 6-10) (сильно усложняет)
-
Оформление ячеек, такое как разлиновка, раскраска, выделение жирным (не усложняет вовсе, но алгоритму на них все равно и заказчик при этом может потратить пол дня на украшения)
-
Мусор в ячейках. Напр: ячейки не должны содержать данных, но в них есть какие-либо символы (пробел, кавычка, запятая и т. д.). Это же и ежу понятно, что мусор, но только не алгоритму (сильно усложняет)
-
Часть данных записана в строке n, а часть данных в строке n+1, причем в произвольном порядке. Но ведь они разделены рамками таблицы (сильно усложняет, вплоть до невозможности обработки)
-
Колонка подразумевает вполне четкие значения, но везде записаны по разному. Напр: валюта (сильно усложняет если называть ее значения по разному: «руб.» он же «руб», он же «рубль», он же «руб .» - это все одно значение для человека, но разные для алгоритма. Посмотрите внимательно, чем они отличаются.
-
В ячейке, которая должна быть числом содержаться строковые данные. Напр.: Цена во всех ячейках выглядит как 8, 9,10.01, 11,12 и т. д. но встречаются ячейки в которых записано 10 шт. или 9 штук (усложняют только когда они имеют суффикс и по возможности не повторяются. Причем «шт.» и «штук» уже не повторяются см. п.8)
-
Адрес записан в одной ячейке, но в результате должен быть разделен на город, улицу, квартиру, корпус, дом, строение и офис (Сильно усложняет вплоть до невозможности обработки адреса)