2016-09-07 2 views
0

Я пытаюсь создать файл csv в C#. Сначала я написал небольшой фрагмент кода для тестирования. Я видел на 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()); 

Это создать правильно линии, но все в колонке 1

ответ

2

Предполагая csv быть StringBuilder , необходимо создать файл

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

, который является допустимым CSV-файлом с двумя столбцами и тремя строками (и заголовками).

Вы случайно используете неанглийский язык (в частности, тот, который использует запятую в качестве разделителя десятичных чисел) и пытается загрузить CSV в Excel? В этом случае Excel принимает ; как разделитель полей вместо ,. При необходимости вы можете разделить данные с пользовательскими настройками (я считаю, что функция называется «Текст в поля» или «Текст в столбцы» на вкладке «Данные» на ленте).

+0

Вы правы, у меня есть английский язык без английского. Я пытался с ';' и он работает. Но мое приложение будет работать на разных компьютерах, английском и неанглийском. Как я могу быть уверен, что пользователь использует английскую версию? (Я не знаю, что такое лента) –

+0

Я обнаружил, что: 'System.Globalization.CultureInfo.CurrentCulture.TextInfo.ListSeparator' работает хорошо, надеюсь, что он будет работать для английской версии. Спасибо за помощь –

+0

'([cultureinfo] :: new ('en-us')). TextInfo.ListSeparator' в PowerShell возвращает', ', поэтому должно быть хорошо. Однако CSV-файлы не имеют возможности привязать к ним культуру, поэтому неплохо, чтобы они меняли свой формат в зависимости от региональных настроек. Я склонен придерживаться позиции, что обменные форматы всегда должны быть одинаковыми. В вашем случае теперь все будет нормально работать на каждом компьютере, когда приложение и Excel будут работать там, но * обменять эти файлы затруднено. – Joey

Смежные вопросы