Я знаю, что это старый вопрос, но проблема скоро не исчезнет. CSV-файлы легко сгенерированы с большинства языков программирования, довольно маленькие, удобные для чтения в хрусте с текстовым редактором и повсеместно.
Проблема заключается не только в датах в текстовых полях, но и в том, что числовые числа также преобразуются из текста в числа. Несколько примеров, где это проблематично:
, который иногда может начинаться с одного или нескольких нулей (0), которые отбрасываются при преобразовании в числовое. Или значение содержит символы, которые можно спутать с математическими операторами (как в датах: /, -).
Два случая, о которых я могу думать, что решение «prepending =», как упоминалось ранее, может быть не идеальным, это
Если один из pre / добавляет в числозначительный и / или не-даты символ, значение будет распознаваться как текст и не преобразовываться. Непечатаемый символ будет хорош, так как он не изменит отображаемое значение. Однако простой старый символ пространства (\ s, ASCII 32) не работает для этого, поскольку он отрубается Excel, а затем значение все еще преобразуется. Но есть и другие печатные и непечатные пробелы, которые будут хорошо работать. Самый простой способ - добавить (добавить после) простой символ табуляции (\ t, ASCII 9).
Преимущества этого подхода:
Если есть причина, по которой вы не хотите использовать вкладку, посмотрите в таблицу Unicode, чтобы что-то еще было подходящим.
может состоять в том, чтобы генерировать XML-файлы, для которых определенный формат также принимается для импорта более новыми версиями MS Excel и который позволяет намного больше параметров, похожих на .XLS формат, но у меня нет опыта с этим.
Таким образом, существуют различные варианты. В зависимости от ваших требований / приложений, возможно, лучше других.
Следует сказать, что более новые версии (2013+) MS Excel не открывают CSV в электронной таблице формат больше - еще один speedbump в рабочем процессе делает Excel менее полезным ... По крайней мере, существуют инструкции по обходу. См. this Stackoverflow: Как правильно отображать CSV-файлы в Excel 2013? .