Некоторое время я искал, пытаясь выяснить, как вывести файл CSV таким образом, чтобы заставить Excel интерпретировать значения как строку, а не пытаться преобразовать их в числа или даты.
например:
"141", "10/11/2002", "350.00", "1311742251"
Excel пытается «разумно» преобразовать все это в свои родные форматы даты / числа. Есть ли способ обойти это?
РЕДАКТИРОВАТЬ: разъяснил смысл моего вопроса, извините за путаницу.
источник
"=""123"""
противном случае он плохо сформирован. Поля, содержащие a,"
должны быть разделены, а"
s в поле экранировано другими"
s.="123"
не является допустимым полем CSV, так как оно содержит символ разделителя полей"
без правильного разграничения его или поля. Дело в том, что Excel считал его формулой исключительно для Excel и не имеет ничего общего с CSV-файлом.Как и многие, я боролся с теми же решениями, которые принимает Microsoft, и пробовал различные предлагаемые решения.
Для Excel 2007:
Тем не мение:
Помещение табуляции перед всеми значениями перед тем, как заключить в них двойные кавычки, препятствует преобразованию в даты и препятствует обрезанию начальных или конечных нулей, и на листе даже не отображаются неприятные предупреждающие маркеры в верхнем левом углу каждой ячейки.
Например:
Обратите внимание, что символ табуляции должен быть в двойных кавычках. Редактировать: оказывается, что двойные кавычки даже не нужны.
Двойной щелчок по файлу csv может открыть файл в виде электронной таблицы в Excel, показывающей все значения, которые обрабатываются как выше, как текстовые данные. Убедитесь, что в Excel установлено «.» в качестве десятичной точки, а не ',' или каждая строка файла CSV будет заканчиваться как один текст в первой ячейке каждой строки. По-видимому, Microsoft считает, что CSV означает «не десятичная точка» разделенное значение.
источник
Использование функции импорта в Excel позволяет указать формат (авто, текст или дату), который должен интерпретироваться для каждого столбца и не требует каких-либо изменений в файлах данных.
Вы можете найти его как
Data
→Get External Data
→From Text
в Excel 2007/2010.Или
Data
→Import External Data
→Import Data
в Excel 2003.Вот изображение мастера импорта текста в Excel 2003 в действии с данными примера, показывающее, как импортировать последние два столбца в виде текста:
источник
Пример от Саймона у меня не сработал, и я подозреваю, что это языковая разница. В C # вот как выглядит строка моего рабочего формата:
и вот как выглядит выходной файл:
Как можно видеть, формат в выходном файле
="VALUE",
не тот,"=""VALUE""",
который, я считаю, может быть соглашением Visual Basic.Я использую Excel 2010. Кстати, Google Sheets не будет открывать / конвертировать файл, отформатированный таким образом. Это будет работать, если вы удалите знак равенства таким образом
"VALUE",
- Excel все равно откроет файл, но проигнорирует тот факт, что вы хотите, чтобы ваши столбцы были строками.источник
Простой способ заставить Excel интерпретировать дату как текст - это поставить одну кавычку перед датой, вместо использования полных кавычек, как в:
Если вы можете импортировать CSV вместо его открытия, вы можете указать Excel, в каком формате должен быть каждый столбец. Посмотрите на этот вопрос, который я задал .
источник