Как заставить Excel интерпретировать запятую как разделитель по умолчанию в файлах CSV?

У меня есть несколько CSV-файлов. Некоторые из них разделены запятыми, некоторые из них ограничены табуляцией (возможно, их следует называть .tsv …)

Расширение csv связано с Excel при установке Excel. Однако, если я открываю один из этих файлов с помощью excel, все сбрасывается в один столбец, а запятая не интерпретируется как разделитель.

Я могу вместо File -> Import … выбрать файл и выбрать точный способ интерпретации содержимого (разделители, типы данных и т. Д.). Но большую часть времени я просто хочу посмотреть файл через ясный Табличный вид. Я не хочу обрабатывать его с помощью Excel.

Есть ли способ заставить Excel автоматически интерпретировать разделитель и показать CSV-файл как правильную таблицу сразу после ее открытия? Мне нужно это, поэтому я могу использовать Excel в качестве быстрого просмотра для таких файлов.

Я подозреваю, что должен быть способ, иначе Excel не будет ассоциироваться с файлами CSV.

5 Solutions collect form web for “Как заставить Excel интерпретировать запятую как разделитель по умолчанию в файлах CSV?”

Открывая файлы CSV, Excel будет использовать системный региональный параметр, называемый List separator чтобы определить, какой разделитель по умолчанию использовать.

Microsoft Excel откроет файлы .csv, но в зависимости от региональных настроек системы он может ожидать точку с запятой как разделитель вместо запятой, так как на некоторых языках запятая используется как разделитель десятичных чисел. (Из Википедии )


В Windows вы можете изменить параметр List separator в Regional and Language Options как указано на веб-сайте поддержки Office :

Изменение разделителя в текстовом файле CSV

  1. Откройте меню «Пуск» Windows.
  2. Нажмите «Панель управления».
  3. Откройте диалоговое окно «Язык и региональные стандарты».
  4. Нажмите вкладку Региональные параметры.
  5. Нажмите «Настроить / Дополнительные настройки» (Win10).
  6. Введите новый разделитель в поле «Селектор списков».
  7. Дважды нажмите кнопку ОК.

Примечание : это работает только в том случае, если десятичный символ также не обозначен как запятая (в соответствии с цитированием Википедии выше). Если это так, Excel не будет использовать запятую в качестве разделителя List, даже если она выбрана. Для многих регионов, не входящих в США, запятая является десятичным символом по умолчанию.

В Mac OS X этот параметр, как представляется, выводится из установки десятичного разделителя (в области Язык и Регион Системных настроек перейдите к Дополнительно ). Если Десятичный разделитель является точкой, то разделитель CSV по умолчанию будет запятой, но если Десятичный разделитель представляет собой запятую, разделитель CSV по умолчанию будет точкой с запятой.

Как вы сами сказали в комментарии, есть альтернатива пользователям Mac быстро просматривать эти файлы CSV. Это плагин для Quick Look, называемый quicklook-csv, который обрабатывает обнаружение разделителей.

Если вы не хотите изменять файл, вы можете использовать следующий трюк Excel, который поможет вам.

Добавьте новую строку (в одиночку) сверху с текстом "sep=," (включая кавычки), чтобы Excel мог открыть файл с помощью «,» в качестве разделителя списков.

Это очень простой трюк, чтобы не менять региональные настройки конфигурации окон.

Вам не нужны кавычки вокруг sep=, – если это первая строка файла, она будет работать, по крайней мере, с Excel 2016.

Я обнаружил, что если файл имеет разделитель табуляции, sep=\t работает нормально, с кавычками и без них.

Лучший способ – сохранить его в текстовом файле с расширением csv

 Sub ExportToCSV() Dim i, j As Integer Dim Name As String Dim pathfile As String Dim fs As Object Dim stream As Object Set fs = CreateObject("Scripting.FileSystemObject") On Error GoTo fileexists i = 15 Name = Format(Now(), "ddmmyyHHmmss") pathfile = "D:\1\" & Name & ".csv" Set stream = fs.CreateTextFile(pathfile, False, True) fileexists: If Err.Number = 58 Then MsgBox "File already Exists" 'Your code here Return End If On Error GoTo 0 j = 1 Do Until IsEmpty(ThisWorkbook.ActiveSheet.Cells(i, 1).Value) stream.WriteLine (ThisWorkbook.Worksheets(1).Cells(i, 1).Value & ";" & Replace(ThisWorkbook.Worksheets(1).Cells(i, 6).Value, ".", ",")) j = j + 1 i = i + 1 Loop stream.Close End Sub 

Обязательно проверьте CSV-файл в простом редакторе, например «Блокнот», чтобы убедиться, что он правильно отформатирован.

Я добавил этот ответ после того, как я решил глупую ошибку, в которой файлы CSV, созданные мной с помощью VB, не были открыты с отдельными столбцами в Excel. Я обнаружил, что так, как я написал строки, завернутые в каждую строку кавычками. Excel спрятал кавычки и показал всю строку в столбце A, заставляя ее выглядеть так, как будто она игнорировала мои разделители запятой.

  • Ячейки показывают формулу, а не результат формулы
  • Как заставить Excel (и другие продукты Microsoft Office) прекратить открытие файлов в одном приложении?
  • Как перенастроить базу данных Excel с 1 длинной строки, на 3 короткие строки и автоматически повторить процесс?
  • Как сделать этот график в Excel?
  • Большая функция Excel с дубликатами
  • Расширение формулы ячейки, разрешающей все ее ссылки (прецеденты)
  • Как получить заголовок Excel на каждой странице печати в качестве первой строки таблицы
  • Справка Excel. Возможно ли вернуть номер столбца второго совпадения в горизонтальном массиве?
  • Подсчет вхождения символа в таблицу Excel
  • В excel, как я могу автоматически изменить содержимое ячейки, если она равна определенному значению
  • Совместное использование листа Excel через сеть?
  • Interesting Posts

    Как создать круговую панель прогресса в Android, которая вращается на ней?

    Node.js getaddrinfo ENOTFOUND

    Не удается обновить ubuntu, не удалось загрузить файлы

    Что делает горячее развертывание «трудной проблемой»?

    Ошибка Opera «Не удается открыть каталог профиля пользователя, потому что вам не хватает достаточных привилегий». После потери мощности

    Scope ‘session’ неактивен для текущего streamа; IllegalStateException: запрос на привязку не найден

    WIN32_Processor :: Is ProcessorId Unique для всех компьютеров

    HttpServletRequest получает данные JSON POST

    Как обрабатывать OutOfMemoryError в Java?

    Как вы воссоздаете среду восстановления системы в Windows 7?

    Активность камеры, возвращающая нулевой андроид

    Таинственный новый ESP-накопитель в Windows 10

    Можно ли использовать адаптер питания для ноутбука с британским шнуром питания с сетевым шнуром США?

    Ошибка менеджера местоположений: (ошибка KCLErrorDomain 0)

    Используйте Invoke-WebRequest с именем пользователя и паролем для базовой проверки подлинности в API GitHub

    Давайте будем гением компьютера.