CSV文件一般如何构建?用逗号还是分号?关于使用哪一个的任何建议?
Answers:
在Windows中,它取决于“区域和语言选项”自定义屏幕,您可以在其中找到列表分隔符。Windows应用程序期望将其作为CSV分隔符。
当然,这仅在Windows应用程序中有效,例如,如果文件未使用上述分隔符,则Excel不会自动将数据拆分为列。使用Windows区域设置的所有应用程序将具有此行为。
如果您要为Windows编写程序,而该程序需要在其他应用程序中导入CSV,并且知道为目标计算机设置的列表分隔符为,
,那么请继续使用它,否则,我宁愿这样做,;
因为它会减少小数点和数字分组的问题并且不会以太多文字显示。
sep=;
顶部。
C
或C++
在Windows下进行编程,则可以使用以下API检索系统范围或用户定界符:GetLocaleInfo(lcid, LOCALE_SLIST, buff, _countof(buff));
我要说的是逗号,因为它已被广泛认可和理解。请务必引用您的值,但不要使用引号。
ID,NAME,AGE
"23434","Norris, Chuck","24"
"34343","Bond, James ""master""","57"
CSV是RFC 4180(在2005年)中概述的一种标准格式,因此不乏标准。 https://www.ietf.org/rfc/rfc4180.txt
甚至在此之前,CSV中的C一直代表逗号,而不是分号:(
遗憾的是,Microsoft一直无视它,并且仍然坚持数十年前将其转变为怪胎的方式(是的,我承认,那是在创建RFC之前)。
仅当文本用双引号引起来时,文本中的此类引号才会通过加倍转义。这些示例代表相同的三个字段:
1,“此文本包含”“引号”“”,3
1,此文本包含“引号”,3
该标准不包括日期和时间值,我个人尝试遵循ISO 8601格式以避免日/月/年-月/日/年的混乱。
最初它是一个逗号,但是由于逗号通常用作小数点,所以它不是很好的分隔符,因此,其他分号(例如分号)主要取决于国家/地区
http://en.wikipedia.org/wiki/Comma-separated_values#Lack_of_a_standard
CSV是逗号分隔的文件。通常,分隔符是逗号,但是我已经看到许多其他字符用作分隔符。它们只是不经常使用。
至于为您提供使用建议,我们需要了解您的应用程序。文件是特定于您的应用程序/程序的,还是需要与其他程序一起使用的文件?
"quote"
自己的价值观就没关系。
只是对分号有一些说法。在许多国家/地区,逗号是小数点而不是句点的用途。大多数情况下,欧盟殖民地占世界的一半,另一半则遵循英国标准(英国到底怎么这么大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:\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