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