Я генерирую файл CSV с расширением .csv, в котором каждый фрагмент данных в одной строке разделяется запятой:
1,2,3,4
1,2,3,4
Файл отправляется по электронной почте, и я хочу, чтобы, когда клиент открывает его, он видел данные, сгруппированные в столбцы.
Возможна ли такая вещь?
PS: я могу свободно менять разделитель.
Ответы:
Используйте вкладку вместо запятой. И если это не сработает, дайте вашему файлу с разделителями табуляции расширение xls.
источник
если это только для того, чтобы получить
csv
читабельность в каждой системе, есть недокументированный трюк: в первой строке пишитеSEP=;
. Эта строка сообщает EXCEL, какой символ использовать в качестве разделителя (фактически вы можете использовать любой (один) символ (;,|@#'
...))ПРИМЕЧАНИЕ: эта строка является частью самого
csv
файла. Он не станет частью распространения в EXCEL. это означает, что он не будет показан и не будет записан, независимо от того, какой формат вы определяете для записи или экспорта.источник
Поведение Excel при открытии файлов CSV сильно зависит от ваших локальных настроек и используемых
list separator
вRegion and language » Formats » Advanced
. По умолчанию Excel будет предполагать, что каждый CSV был сохранен с этим разделителем. Что верно, если CSV не прибыл из другой страны!Если ваши клиенты находятся в других странах, они могут увидеть другие результаты, чем вы думаете.
Например, здесь вы видите, что немецкий Excel будет использовать точку с запятой вместо запятой, как в США.
Чтобы еще больше сбить вас с толку, эта настройка мешает десятичному символу, который можно установить отдельно в
Excel Options » Advanced » Use system separators
региональных настройках или с помощью региональных настроек, как показано выше. Excel не может использовать тот же символ, что и десятичная табуляция и разделитель списка. Он будет автоматически использовать запятую или точку с запятой в качестве разделителя резервных копий. ПодробнееЯ возьму ваш пример, чтобы создать 3 файла. У каждого свой разделитель и откройте его в Excel.
Не так, как ваш Excel? Я так думала.
Итак, давайте вручную изменим расширение с тех же файлов CSV на XLS и посмотрим, что происходит сейчас. Во-первых, Excel выдаст предупреждение о том, что расширение файла не соответствует содержимому, и Excel пытается угадать, что внутри.
Вывод: TAB + переименование + игнорировать предупреждение = Win на каждой системе?
Возможно, но я не был бы так уверен для клиентов за пределами вашей страны.
Лучший способ - попросить ваших клиентов сначала открыть пустой Excel, а затем перейти
Data » Get data from text
и вручную выбрать запятую в качестве разделителя.источник
Вы можете заменить «.csv» на «.txt», запустить Excel и открыть этот файл .txt. Затем Excel покажет вам помощника, где вы можете указать «» в качестве разделителя. Когда вы снова сохраните этот файл как .csv, в следующий раз Excel откроет его так, как вам нужно.
источник
Другое решение, которое я использовал в этой ситуации, заключалось в выводе простого файла HTML вместо CSV. Excel может открыть это без ошибки. Он может прочитать хотя бы часть форматирования в файле.
источник
Это самый глупый ответ, но он сработал. Я использую файлы CSV ежедневно. Я создаю их все время и смотрю в Excel. Сегодня, после 12 лет никогда не видя этой проблемы, это случилось со мной. Он не будет открывать CSV-файл и форматировать столбцы. Даже некоторые CSV-файлы, которые я создал вчера вечером с помощью Excel, открывались в один столбец на строку.
Решение. Проверьте диспетчер задач на наличие всех открытых экземпляров Excel.exe. Убейте все экземпляры и попробуйте снова открыть файл csv.
Facepalm
источник
В краткосрочной перспективе, если вам нужно только открыть файл CSV, который был отправлен вам из другой страны -
Откройте файл в WordPad и используйте поиск и замену, чтобы изменить каждый разделитель, используемый в стране выдачи (например,;), и замените запятую. (например,).
Просто проверьте, что страна-эмитент не использует запятую вместо другого символа (например, в Испании они используют запятую, где мы используем десятичное место, поэтому вам нужно будет найти и заменить запятую на десятичное место, а затем найти и заменить другой символ с запятой).
Не долгосрочное решение, но достаточно хорошее, чтобы сделать сам файл читаемым, если вы спешите и не можете получить доступ к панели управления на работе.
источник
Я подошел к той же проблеме. У меня был файл CSV, который Excel неправильно анализировал, и мне нужен был мастер импорта.
Простым решением было переименовать CSV в TXT, и появился Мастер, помогающий правильно распознать структуру столбца.
источник
Ответ, связанный с этим - особенно для проблем MacOS / OSX с распознаванием запятых
в Excel : в Excel 2019 неправильно открывается CSV - нет разбора столбцов: /superuser//a/1506042/1116939
источник