CSV с запятой или точкой с запятой?


Как создается файл CSV в целом? Запятыми или точками с запятой? Любой совет, на котором использовать?

10 55
csv

10 ответов:

в Windows это зависит от" региональных и языковых параметров " настроить экран, где вы найдете разделитель списка. Это char Windows приложения ожидают быть разделителем CSV.

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

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

Я бы сказал, что придерживайтесь запятой, поскольку она широко признана и понятна. Не забудьте процитировать свои значения и избежать ваших цитат, хотя.

ID,NAME,AGE
"23434","Norris, Chuck","24"
"34343","Bond, James ""master""","57"

CSV-это стандартный формат, изложенный в RFC 4180 (в 2005 году), поэтому нет недостатка в стандарте. https://www.ietf.org/rfc/rfc4180.txt

и даже до этого, C в CSV всегда стоял за запятую, а не за точку с запятой : (

жаль, что Microsoft продолжает игнорировать это и все еще придерживается чудовища, в которое они превратили его десятилетия назад (да, я признаю, что это было до создания RFC).

  • одна запись в строке, если a новая строка встречается в тексте в кавычках (см. ниже).
  • запятая как разделитель столбцов. Никогда точка с запятой.
  • точка как десятичная точка в числах. Никогда не ставится запятая.
  • текст, содержащий запятые, точки и/или строки заключены в "двойные кавычки".
  • только если текст заключен в двойные кавычки, то такие кавычки в тексте экранируются путем удвоения. Эти примеры представляют те же три поля:

    1, "этот текст содержит ""кавычки""", 3

    1, этот текст содержит "кавычки", 3

стандарт не охватывает значения даты и времени, лично я стараюсь придерживаться формата ISO 8601, чтобы избежать путаницы день/месяц/год-месяц/день/год.

тоже актуально, но специально для excel, посмотрите на ответ и этот это предполагает, вставляя строку в начале CSV с

"sep=,"

сообщить excel, какой разделитель ожидать

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

http://en.wikipedia.org/wiki/Comma-separated_values#Lack_of_a_standard

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

Что касается консультирования вас о том, что использовать, мы должны знать ваше приложение. Этот файл специфичен для вашего приложения/программы, или это необходимо для работы с другими программами?

1.> Изменить формат файла .CSV (точка с запятой)

для достижения желаемого результата нам нужно временно изменить delimiter настройка в Excel варианты:

Move to File -> Options -> Advanced -> Editing Section

снимите флажок" Использовать системные разделители "и поставьте запятую в поле" десятичный разделитель".

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

чтобы изменить запятую на точку с запятой в качестве разделителя Excel по умолчанию для CSV-перейдите в область - > Дополнительные Настройки - > вкладка номера -> разделитель списка и введите ; вместо значения по умолчанию,

ну, чтобы просто сказать несколько слов о точке с запятой. В большинстве стран запятая-это то, что используется для десятичного не периода. В основном колонии ЕС, которые состоят из половины мира, другая половина следуют стандарту Великобритании (как, черт возьми, Великобритания так велика O_O), поэтому, в свою очередь, использование запятой для базы данных, включающей число, создает большую часть головной боли, потому что Excel отказывается признать его в качестве разделителя.

как мудрый в моей стране, Вьетнам, следовать стандартом Франции, нашим стандартом Великобритании пользы Гонконга партнера так запятая делает CSV непригодным для использования, и мы используем \t или ; вместо этого для международного использования, но это все еще не "стандарт" для документа CSV.

лучше всего будет сохранить его в текстовом файле с расширением 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:\" & 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