Открытие файлов Excel с правильным разделителем списка CSV

В некоторых регионах (например, в Европе) файлы Excel, загруженные из Harvest Admin в формате .CSV (с разделителями-запятыми), не будут открываться правильно, а данные внутри будут отображаться неправильно.

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

Ниже приведены методы для Windows и MacOS для изменения разделителя списка по умолчанию:

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

Примечание. Это работает, только если «десятичный символ» также не является запятой. Если вы не хотите изменять этот параметр, существует другой способ открытия файлов с разделителями-запятыми ниже.

  1. Перейти в Системные настройки
  2. Откройте Панель «Язык и регион» и перейдите к параметру «Дополнительно».
  3. Измените «Десятичный разделитель» на один из следующих сценариев.

Для MacOS, если Десятичный разделитель — это точка (.), тогда разделителем CSV будет запятая.
Если Десятичный разделитель — это запятая (,), то разделителем CSV будет точка с запятой.

Если вы не хотите изменять разделитель списка по умолчанию или десятичные символы, то приведенный ниже метод будет альтернативой для тем временем:

  1. Откройте новую пустую электронную таблицу в Excel.
  2. Перейдите на вкладку «Данные» и выберите «Из текста»
  3. Выберите файл, который хотите открыть.
  4. Выберите ‘Delimited’ вариант и нажмите кнопку Далее
  5. Выберите правильный разделитель который будет правильно отображать метаданные на панели предварительного просмотра ниже
  6. Внесите изменения в файл и сохраните его как .TXT (с разделителями табуляции) , чтобы файл был разделен табуляцией вместо переменного символа.

Примечание : Инструкции могут незначительно отличаться в MacOS



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

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

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

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

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

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


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

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


В Windows вы можете изменить Разделитель списка в Язык и региональные стандарты , как указано на веб-сайте поддержки Office:

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

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

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

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

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


119

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

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

Это очень простой прием, позволяющий избежать изменения региональных настроек Windows и получить стабильный результат. Но это специфично для Excel.

Улучшите этот ответ
отредактировал 19 сентября ’17 в 23:43
О’Руни
23322 серебряные знаки1212 бронзовых знаков
ответ дан 10 дек ’13 в 17: 38
  • 1
    Убедитесь, что вы используете это только для просмотра файла , и не изменять его, иначе вы можете столкнуться с одной из следующих проблем: theonemanitdepartment.wordpress.com/2014/12/15/… — Wouter, 16 декабря 2014 г., 15:53 ​​
  • Еще лучше, если вам нужно распространить этот файл среди других, так что вы сделаете уверен, что Excel сможет понять файл независимо от его конфигурации. Я всегда использую csv, чтобы иметь возможность использовать любую систему контроля версий для совместного использования и совместной работы над этими файлами, но я боролся с запятой и точкой с запятой и всегда заставлял всех менять свои конфигурации, не более того. Большое спасибо! — Рафарейно, 10 сен 2016, 12:56
  • 1
    Один поверх чего? — NateS 18 окт., В 19:13
  • Это ИМЕННО то, что мне нужно, спасибо! Мне кажется безумным, что вам нужны региональные системные настройки для того, что должно быть опцией в диалоговом окне открытия файла Excel, возможно, или в опциях Excel. — Бинни 3 июн. ’20 в 11:47
добавить комментарий |

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

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

Это очень простой способ избежать изменения региональных настроек Windows и получить стабильный результат. Но это специфично для Excel.


13

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

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

Улучшите этот ответ
отредактировано 02 июн., 17:02
Vylix
1,67133 золотых знака1818 серебряных знаков2323 бронзовых знака
ответил 02 июня ’17 в 12:27
добавить комментарий |

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

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


9

Принято ответ правильный, но я визуальный человек. Вот каждый шаг в формате скриншота того, как это сделать в Windows 10.

Улучшите этот ответ
ответил 21 июля ’18 в 11:55
  • 2
    Очень полезно! Просто помните (как уже упоминалось где-то выше), что Разделитель списка будет проигнорирован, если тот же символ используется для десятичного символа . Вы часто найдете , как десятичный символ, поэтому обязательно замените его на что-то другое (например, . ) при установке Разделитель списка на , . — Дирк 23 окт. ’18 в 14:55
добавить комментарий |

Принятый ответ правильный, но я визуальный человек. Вот каждый шаг в формате скриншота того, как это сделать в Windows 10.


2

Когда разделитель в в региональных настройках используется не запятая, а точка с запятой (голландский разделитель), переименуйте файл CSV в файл TXT. Щелкните файл TXT правой кнопкой мыши и выберите «Открыть с помощью» и выберите «Excel». В Excel выберите первый столбец, выберите данные на ленте и разделить текст на столбцы.

ИЛИ

Установите LibreOffice и откройте файл CSV с помощью LibreOffice Calc.

Улучшите этот ответ
отредактировал 25 июня ’18 в 15:09
robinCTS
4,18444 золотых знака1717 серебряных знаков2828 бронзовых знаков
ответил 25 июня ’18 в 14:46
добавить комментарий |

Если разделителем в региональных настройках является не запятая, а точка с запятой (голландский разделитель), переименуйте файл CSV в файл TXT. Щелкните правой кнопкой мыши файл TXT, выберите «Открыть с помощью» и выберите «Excel». В Excel выберите первый столбец, выберите данные на ленте и разделите текст на столбцы.

ИЛИ

Установите LibreOffice и откройте файл CSV с помощью LibreOffice Calc.


1

У меня был . csv с разделителем ; и региональными настройками, установленными на Разделитель списка ; . Однако Excel все еще не проанализировал столбцы.

Оказалось, проблема в кодировке. Файлы были экспортированы из SQL Server Management Studio 2005 и закодированы в UCS-2 LE BOM . Используя Notepad ++, я переключил кодировку на UTF-8 , и все начало работать.

Улучшите этот ответ
ответил 23 сен ’19 в 12:03
добавить комментарий |

У меня был файл .csv с разделителем ; и в региональных настройках установлено значение Разделитель списка ; . Однако Excel все еще не проанализировал столбцы.

Оказалось, проблема в кодировке. Файлы были экспортированы из SQL Server Management Studio 2005 и закодированы в UCS-2 LE BOM . Используя Notepad ++, я переключил кодировку на UTF-8 , и все начало работать.


0

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

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

Улучшите этот ответ
ответил 12 июня ’17 в 17:22
добавить комментарий |

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

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


0

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

  Sub ExportToCSV ()  Dim i, j как целое число Dim Name As String Dim pathfile As String Dim fs As Object Dim stream As Object Set fs = CreateObject ("Scripting.FileSystemObject") При ошибке GoTo fileexists i = 15 Name = Format (Now (), "ddmmyyHHmmss  ") pathfile =" D:  1  "& Name &" .csv "Установить stream = fs.CreateTextFile (pathfile, False, True) fileexists: Если Err.Number = 58, то MsgBox" Файл уже существует "'Ваш код здесь  Return End If On Error GoTo 0 j = 1 До IsEmpty (ThisWorkbook.ActiveSheet.Cells (i, 1) .Value) stream.WriteLine (ThisWorkbook.Worksheets (1) .Cells (i, 1) .Value & ";"  & Заменить (ThisWorkbook.Worksheets (1) .Cells (i, 6) .Value, ".", ",")) J = j  + 1 i = i + 1 Loopstream. CloseEnd Sub  

Улучшите этот ответ
ответил 31 июля ’17 в 6:30
добавить комментарий |

Лучше всего сохранить его в текстовом файле с расширением 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") При ошибке GoTo fileexists i = 15 Name = Format (Now (  ), "ddmmyyHHmmss") pathfile = "D:  1 " & Name & ".csv" Установить stream = fs.CreateTextFile (pathfile, False, True) fileexists: Если Err.Number = 58, то MsgBox "Файл уже существует"  'Ваш код здесь 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 Loopstream.CloseEnd Sub   

0

Для голландского языка у меня возникла проблема Excel 2008 на Windo ws 7 не соответствовал RFC4180:

«Поля, содержащие разрывы строк (CRLF), двойные кавычки и запятые, должны быть заключены в двойные кавычки».

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

Входные данные выглядят так:

  «06-07-2017 17:03:18», «********», 0: 01: 04, Uitgaand, «0,1879», «0,2273»,  "0,0395", 21  

Решение было предоставлено @ user280725:

Используйте Блокнот для вставки в качестве первой строки :

  sep =,  

(Это означает, что примечание пользователя @zakinster в его решении больше не нуждается в для применения.)


Интересно: если файл csv все еще загружен, если вы теперь установите локаль на английский (США) в панели управления и сохраните файл, он будет преобразован в формат английского языка США (запятая как разделитель списка и точка как десятичный разделитель).

Улучшите этот ответ
отредактировано 24 января ’18 в 7:52
ответил 22 января ’18 в 13:50
добавить комментарий |

Для голландского языка у меня была проблема, связанная с тем, что Excel 2008 в Windows 7 не соответствовал RFC4180:

«Поля, содержащие разрывы строк (CRLF), двойные кавычки и запятые, должны быть заключены в двойные кавычки.»

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

Входные данные выглядят так:

  «06-07-2017 17:03:18», «********», 0: 01: 04, Uitgaand, «0,1879», «0,2273»,  "0,0395", 21  

Решение было предоставлено @ user280725:

Используйте Блокнот для вставки в качестве первой строки :

  sep =,  

(Это означает, что примечание пользователя @zakinster в его решении больше не нуждается в для применения.)


Интересно: если файл csv все еще загружен, если вы теперь установите локаль на английский (США) в панели управления и сохраните файл, он будет преобразован в формат английского языка США (запятая как разделитель списка и точка как десятичный разделитель).

Оцените статью
logicle.ru
Добавить комментарий