У меня есть база данных, которая отслеживает продажи виджетов по серийному номеру. Пользователи вводят данные и количество покупателя и сканируют каждый виджет в пользовательскую клиентскую программу. Затем они завершают заказ. Это все работает без нареканий.
Некоторым клиентам нужна совместимая с Excel электронная таблица приобретенных ими виджетов. Мы генерируем это с помощью PHP-скрипта, который запрашивает базу данных и выводит результат в виде CSV с именем магазина и связанными данными. Это тоже прекрасно работает.
При открытии в текстовом редакторе, таком как Блокнот или vi, файл выглядит следующим образом:
"Account Number","Store Name","S1","S2","S3","Widget Type","Date"
"4173","SpeedyCorp","268435459705526269","","268435459705526269","848 Model Widget","2011-01-17"
Как видите, серийные номера присутствуют (в этом случае дважды, не все вторичные серийные номера одинаковы) и представляют собой длинные строки чисел. Когда этот файл открывается в Excel, результат становится:
Account Number Store Name S1 S2 S3 Widget Type Date
4173 SpeedyCorp 2.68435E+17 2.68435E+17 848 Model Widget 2011-01-17
Как вы могли заметить, серийные номера заключены в двойные кавычки. В Excel, похоже, не учитываются квалификаторы текста в файлах .csv. При импорте этих файлов в Access у нас нет никаких трудностей. При открытии их как текста, никаких проблем вообще нет. Но Excel, в обязательном порядке, превращает эти файлы в бесполезный мусор. Попытка проинструктировать конечных пользователей об открытии файла CSV с приложением не по умолчанию становится, скажем так, утомительной. Есть ли надежда? Есть ли настройка, которую я не смог найти? Похоже, что это имеет место в Excel 2003, 2007 и 2010.