2012-03-06 4 views
0

Следующий код выводит результат в файл csv. Допустим, что в «valueDataList» есть 10 значений ... Когда это выполняется, в файл выводится только одна строка. Как я могу прокручивать код для печати файла для всех значений «сразу» в «valueDataList».Добавить выход в конце файла - Как?

foreach (var value in valueDataList) 

    { 
     var value1 = xxxxxxx // this value is set here based on a query.. 
     int value2 = xxxxxxxx // this value is set here based on a query.. 

     byte[] content; 

     using (var ms = new MemoryStream()) 
      { 
       using (var writer = new StreamWriter(ms)) 
       { 
        writer.WriteLine("ValueHeading1 " + " ValueHeading2"); 
        writer.WriteLine(value1 + "    " + value2);       
       } 
        content = ms.ToArray(); 
        return File(content, "text/csv", "demo.csv"); 
      } 
    } 

В принципе, я хочу, чтобы иметь возможность добавлять к существующему файлу csv на каждой итерации цикла. Как я могу это сделать? Спасибо за вашу помощь.

ответ

1

ли вы имеете в виду вы хотите записать все строки из valueDataList в CSV-файл? Если это так;

using (var ms = new MemoryStream()) 
using (var writer = new StreamWriter(ms)) 
{ 
    writer.WriteLine("ValueHeading1 " + " ValueHeading2"); 

    foreach (var value in valueDataList) 
    { 
     var value1 = xxxxxxx // this value is set here based on a query.. 
     int value2 = xxxxxxxx // this value is set here based on a query.. 

     writer.WriteLine(value1 + "    " + value2);       
    } 

    byte[] content = ms.ToArray(); 
    return File(content, "text/csv", "demo.csv"); 
} 
+0

Это сработало отлично .. Как я могу изменить файл на excel-выход, например. – ZVenue

+0

Для создания реального файла excel сложно, но если вы измените подход с фиксированной шириной на значения с разделителями с запятой и измените расширение файла на .xls, я думаю, вы будете довольны тем, как Excel открывает файл для вас. Удачи. –

+0

Спасибо за комментарий. да, это вариант. Но я пытаюсь это сделать ... http://code.google.com/p/excellibrary/, пока это был хороший прогресс. После того, как я закончу, я уточню. – ZVenue

0

Что относительно File.AppendText(...)?

Я смотрел на это для справки:

http://www.4guysfromrolla.com/articles/072303-1.2.aspx

+0

Кажется, что не работает. Эта строка кода возвращает файл уже в тот момент. Вероятно, мне нужно добавить эту строку кода. – ZVenue

+0

Возможно, вместо того, чтобы возвращать новый файл, вы должны создать файл, добавить к нему и вернуть его. Я не парень из аспа, поэтому все это AFAIK. – prelic

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