95

CSVファイルは一般的にどのように作成されますか?カンマまたはセミコロンを使用しますか?どれを使うべきかについて何かアドバイスはありますか?

4

10 に答える 10

87

Windowsでは、リストセパレータが表示される[地域と言語のオプション]カスタマイズ画面に依存しています。これは、WindowsアプリケーションがCSV区切り文字として期待する文字です。

もちろん、これはWindowsアプリケーションでのみ効果があります。たとえば、ファイルが上記の区切り文字を使用していない場合、Excelはデータを列に自動的に分割しません。Windowsの地域設定を使用するすべてのアプリケーションで、この動作が行われます。

他のアプリケーションでCSVをインポートする必要があるWindows用のプログラムを作成していて、ターゲットマシンに設定されているリストセパレータがであることがわかっている場合は,、それを選択してください。そうでない場合は;、小数点、数字のグループ化の問題が少ないため、私は好みます。多くのテキストには表示されません。

于 2012-04-13T12:49:07.573 に答える
63

CSVは、RFC 4180(2005年)で概説されている標準形式であるため、標準に欠けることはありません。 https://www.ietf.org/rfc/rfc4180.txt

そしてその前でさえ、CSVのCは常にセミコロンではなくコンマを表しています:(

マイクロソフトがそれを無視し続け、数十年前にそれを変えた怪物にまだ固執しているのは残念です(確かに、RFCが作成される前でした)。

  • 引用されたテキスト内に改行がない限り、1行に1つのレコード(以下を参照)。
  • 列区切り文字としてのコンマ。セミコロンはありません。
  • 数値の小数点としてのPERIOD。カンマは使用しないでください。
  • 「二重引用符」で囲まれたコンマ、ピリオド、改行を含むテキスト。
  • テキストが二重引用符で囲まれている場合にのみ、テキスト内のそのような引用符は二重引用符でエスケープされます。これらの例は、同じ3つのフィールドを表しています。

    1、"このテキストには""引用符"""、3が含まれています

    1、このテキストには「引用符」が含まれています、3

この規格は日付と時刻の値をカバーしていません。個人的には、日/月/年-月/日/年の混乱を避けるためにISO8601形式に固執しようとしています。

于 2015-06-18T14:45:35.847 に答える
56

広く認識され理解されているので、コンマに固執すると思います。ただし、必ず値を引用し、引用をエスケープしてください。

ID,NAME,AGE
"23434","Norris, Chuck","24"
"34343","Bond, James ""master""","57"
于 2012-04-13T12:41:44.827 に答える
44

これも関連性がありますが、特に優れているのは、この回答と、CSVの先頭に次の行を挿入して提案する他の回答を見てください。

"sep=,"

どのセパレータを期待するかをExcelに通知する

于 2016-11-21T12:23:45.950 に答える
11

1.>ファイル形式を.CSV(セミコロン区切り)に変更します

目的の結果を得るには、オプションのdelimiter設定を一時的に変更する必要があります。Excel

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

「システム区切り文字を使用する」設定のチェックを外し、「小数点記号」フィールドにコンマを入力します。

ここで、ファイルを.CSV形式で保存すると、セミコロンで区切られた形式で保存されます。

于 2016-08-09T13:47:23.627 に答える
6

当初はコンマでしたが、コンマは小数点として使用されることが多いため、このような適切な区切り文字ではありません。したがって、セミコロンのような他の文字は、ほとんどが国によって異なります。

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

于 2012-04-13T12:44:10.273 に答える
4

CSVはカンマ区切りファイルです。通常、区切り文字はコンマですが、区切り文字として使用される他の多くの文字を見てきました。それらはそれほど頻繁には使用されません。

何を使用するかについてアドバイスすることに関しては、私たちはあなたのアプリケーションを知る必要があります。ファイルはアプリケーション/プログラムに固有ですか、それとも他のプログラムで機能する必要がありますか?

于 2012-04-13T12:40:28.660 に答える
3

CSVのデフォルトのExcel区切り文字としてカンマをセミコロンに変更するには、[地域]->[追加設定]->[数値]タブ->[リスト区切り文字]に移動し、;と入力します。デフォルトの代わりに、

于 2016-02-15T07:50:29.947 に答える
2

セミコロンについていくつかのことわざを持っているだけです。多くの国では、コンマはピリオドではなく小数に使用されます。世界の半分で構成されるほとんどのEUコロニー、残りの半分は英国の標準(英国のO_Oが非常に大きい)に準拠しているため、Excelが区切り文字として認識しないため、数値を含むデータベースにコンマを使用すると頭痛の種になります。 。

私の国のベトナムと同じように、フランスの標準に従います。パートナーの香港は英国の標準を使用しているため、コンマを使用するとCSVが使用できなくなり、\tまたは;を使用します。代わりに国際的に使用されますが、CSVのドキュメントではまだ「標準」ではありません。

于 2016-11-16T08:17:46.093 に答える
-3

最良の方法は、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)

ファイルが存在しています:

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
于 2017-07-31T06:28:00.683 に答える