2016-09-07 2 views
0

C#에서 CSV 파일을 만들려고합니다. 먼저 테스트 할 코드 조각을 작성했습니다. that post에서 ","문자가 다른 열을 만드는 데 사용되지만 나를 위해 작동하지 않는다는 것을 알았습니다. CSV에 다른 열을 만들 수 없습니다

나는 다른 주제에 대한 검색하지만 모든 대답은 String.Format("{0},{1}", first, second);

내 코드 같은 있습니다 : 열에서이 바르게 선을 만들

String first = "Test name"; 
String second = "Value"; 
String newLine = String.Format("{0},{1}", first, second); 
csv.AppendLine(newLine); 
for (int i = 0; i < 3; i++) 
{ 
    first = "Test_" + i; 
    second = i.ToString(); 
    newLine = String.Format("{0},{1}", first, second); 
    csv.AppendLine(newLine); 
} 
System.IO.File.WriteAllText(path, csv.ToString()); 

하지만 모든 일

답변

2

StringBuilder을 할 csv 가정 파일을 만들어야합니다.

Test name,Value 
Test_0,0 
Test_1,1 
Test_2,2 

은 2 열 3 행 (및 헤더)이있는 유효한 CSV 파일입니다.

비 영어 로켈 (특히 쉼표를 소수 구분 기호로 사용하는)을 사용하고 Excel에서 CSV를로드하려고합니까? 이 경우 Excel에서는 , 대신 필드 구분 기호로 ;을 사용합니다. 필요한 경우 사용자 정의 설정으로 데이터를 분할 할 수 있습니다 (이 기능은 "텍스트 필드로"또는 리본의 데이터 탭에있는 "텍스트로 열"이라고합니다).

+0

맞아, 영어가 아닌 Excel이 있습니다. 나는'; '을 시도해 보았습니다. 하지만 내 응용 프로그램은 영어와 영어가 아닌 다른 컴퓨터에서 실행됩니다. 사용자가 영어 버전을 사용하고 있는지 어떻게 알 수 있습니까? (나는 리본이 뭔지 모르겠다.) –

+0

'System.Globalization.CultureInfo.CurrentCulture.TextInfo.ListSeparator' 그것은 잘 작동한다. 영어 버전에서 작동하길 바란다. 도움을 주셔서 감사합니다 –

+0

'([cultureinfo] :: new ('en-us')) .TextInfo.ListSeparator'는 PowerShell에서','를 반환하므로 괜찮을 것입니다. 그러나 CSV 파일에는 문화권을 첨부 할 수있는 방법이 없으므로 지역 설정에 따라 형식을 변경하게하는 것이 좋지 않습니다. 나는 교환 형식이 항상 동일해야한다는 입장을 취하는 경향이 있습니다. 귀하의 경우에는 이제 응용 프로그램과 Excel이 실행될 때 각 컴퓨터에서 문제가 없지만 해당 파일의 상호 교환이 방해됩니다. – Joey

관련 문제