CSV 파일은 일반적으로 어떻게 작성됩니까? 쉼표 또는 세미콜론으로? 어떤 것을 사용할 지에 대한 조언이 있습니까?
답변:
Windows에서는 목록 구분 기호가있는 "지역 및 언어 옵션"사용자 지정 화면에 따라 다릅니다. 이것은 Windows 응용 프로그램이 CSV 구분 기호로 예상되는 문자입니다.
물론 이것은 Windows 응용 프로그램에서만 효과가 있습니다. 예를 들어 파일이 위에서 언급 한 구분 기호를 사용하지 않는 경우 Excel은 데이터를 열로 자동 분할하지 않습니다. Windows 지역 설정을 사용하는 모든 응용 프로그램에는이 동작이 있습니다.
다른 응용 프로그램에서 CSV를 가져와야하는 Windows 용 프로그램을 작성하고 있고 대상 컴퓨터에 대한 목록 구분 기호 집합이라는 것을 알고 있다면 ,
그것을 선택하십시오. 그렇지 않으면 ;
소수점, 숫자 그룹화에 문제가 적기 때문에 선호합니다. 그리고 많은 텍스트에 나타나지 않습니다.
sep=;
하려면 CSV 파일 위에 추가 하십시오.
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는 항상 세미콜론이 아니라 쉼표를 나타냅니다.
마이크로 소프트가이를 계속 무시하고 수십 년 전으로 바꾼 괴수를 고수하고있는 것은 유감입니다.
텍스트가 큰 따옴표로 묶여있는 경우 에만 텍스트에서 이러한 따옴표는 두 배로 이스케이프됩니다. 이 예는 동일한 세 필드를 나타냅니다.
1, "이 텍스트에는" "따옴표" ""가 포함되어 있습니다. ", 3
1,이 텍스트에는 "따옴표"가 포함되어 있습니다.
이 표준은 날짜 및 시간 값을 다루지 않습니다. 개인적으로 일 / 월 / 년-월 / 일 / 년 혼동을 피하기 위해 ISO 8601 형식을 고수하려고합니다.
1.> 파일 형식을 .CSV (세미콜론으로 구분)로 변경
원하는 결과를 얻으려면 옵션 에서 delimiter
설정 을 임시로 변경해야합니다 Excel
.
Move to File -> Options -> Advanced -> Editing Section
"시스템 구분 기호 사용"설정을 선택 취소하고 "십진수 구분 기호"필드에 쉼표를 입력합니다.
이제 파일을 .CSV
형식으로 저장하면 세미콜론으로 구분 된 형식으로 저장됩니다.
처음에는 쉼표가되었지만 쉼표가 소수점으로 자주 사용되기 때문에 좋은 구분 기호가 아니므로 세미콜론과 같은 다른 항목은 대부분 국가에 따라 다릅니다.
http://en.wikipedia.org/wiki/Comma-separated_values#Lack_of_a_standard
CSV는 쉼표로 구분 된 파일입니다. 일반적으로 구분 기호는 쉼표이지만 구분 기호로 사용되는 다른 많은 문자를 보았습니다. 그들은 자주 사용되지 않습니다.
무엇을 사용해야하는지에 대한 조언에 관해서는 귀하의 애플리케이션을 알아야합니다. 파일이 응용 프로그램 / 프로그램에 고유합니까 아니면 다른 프로그램과 함께 작동해야합니까?
"quote"
의 가치 만큼 중요하지 않습니다 .
CSV의 기본 Excel 구분 기호로 쉼표를 세미콜론으로 변경하려면 지역-> 추가 설정-> 숫자 탭-> 목록 구분 기호로 이동하여 입력하십시오. 기본값 대신
,
소수점 구분 기호로 설정되어 있고 ,
Excel에서 열 때 구분 된 열이있는 파일을 내 보내면 텍스트가 하나의 열에 만 나타납니다. > 텍스트 컬럼에 - -> 선택 엑셀 2013 년 DATA로 이동, 첫 번째 열을 선택 Delimited
, 클릭 Next
만 선택 Comma
에 Delimiters
당신은에 변경 사항을 즉시 볼 수 있습니다 Data preview
그리고 마지막으로 클릭Finish
세미콜론에 대해 약간의 이야기를 나누는 것이 좋습니다. 많은 국가에서 쉼표는 마침표가 아닌 소수점으로 사용됩니다. 대부분 세계의 절반으로 구성된 EU 식민지, 나머지 절반은 영국 표준 (대체 영국이 그렇게 큰 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