2015-10-19 5 views
-1

Я ищу, как выводить данные в файл csv с помощью C#, в csv Мне нужно 4 столбца, но теперь все данные записываются в один столбец. То, что я сделал до сих пор является:Вывод данных в файл CSV

var first = barcode[i]; 
var second = a2; 
var third = a4; 
var fourth = a6; 
var line = string.Format("{0}{1}{2}{3}", first, second, third, fourth); 
stream.WriteLine(line); 

Я получаю этот результат: enter image description here

Мне нужно это: enter image description here

Может быть кто-нибудь знает, как это сделать?

EDIT: Если я использую запятые, я получаю: enter image description here

СДЕЛАНО: Я нашел ошибку, мне нужно добавить между графы с запятой, и я получаю то, что мне нужно:

var line = string.Format("{0};{1};{2};{3}", first, second, third, fourth); 
+2

Я никогда не решался вручную выводить CSV. Слишком много ловушек, чтобы застрять. Лучше используйте библиотеку для экспорта CSV. –

+0

Это зависит от того, как вы импортируете файл в Excel. Если вы скажете, что импорт excel будет разделен на «,», вы должны работать. –

+1

Возможный дубликат [Запись данных в CSV-файл] (http://stackoverflow.com/questions/18757097/writing-data-into-csv-file) –

ответ

0
var line = string.Format("{0}{1}{2}{3}", first, second, third, 
fourth); 

не имеет разделителя. Попробуйте что-то вроде этого:

var line = string.Format("{0},{1},{2},{3}", first, second, third, fourth); 

CSV обычно означает «значения, разделенные запятыми», где идея заключается в том, чтобы использовать этот знак препинания в качестве разделителя, так один знает, какие данные, какой столбец.


Другие общие разделители будут полуколонами для другой идеи, если вы хотите сохранить этот существующий код.

Если вы хотите получить вывод Excel, рассмотрите код в http://csharp.net-informations.com/excel/csharp-format-excel.htm, который использует Interop для лучшего интерпретации данных. Часть этого кода:

 xlApp = new Excel.Application(); 
     xlWorkBook = xlApp.Workbooks.Add(misValue); 
     xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); 

     //add data 
     xlWorkSheet.Cells[4, 2] = ""; 
     xlWorkSheet.Cells[4, 3] = "Student1"; 
     xlWorkSheet.Cells[4, 4] = "Student2"; 
     xlWorkSheet.Cells[4, 5] = "Student3"; 
+2

_CSV обычно означает «Comma Separated Values» _, это ответ. +1. – ryanyuyu

+0

Я редактирую свой пост, я покажу, что произойдет, если я добавлю запятые – LTU

+0

, можете ли вы обновить код, который вы использовали? –