Nel caso che si vuole esportare il risultato di una select in Linq in Csv, il frammento di codice qui di seguito permette tale scenario.
Come si vede dal frammento di codice, dobbiamo inserire i valori separati da punto e virgola, tramite l'oggetto StringBuilder, aggiungiamo le singole righe e tramite Response generiamo il file.
Qui di seguito l'esempio in C#
var Valori = GetDati().Where(p => p.CampoID== "valore").ToList();
var risultato = from n in Valori
orderby n.campoA ascending
select new
{
Riga = n.CampoA,
Colonna = n.CampoB,
Lunghezza = n.CampoC
};
string Testo = "IntestazioneA;IntestazioneB;IntestazioneC";
var sb = new StringBuilder();
sb.AppendLine(Testo );
foreach (var elemento in risultato)
{
Testo = elemento.CampoA+ ";" + elemento.CampoB+ ";" + elemento.CampoC + ";" ;
sb.AppendLine(Testo);
}
string attachment = "attachment; filename=NomeFile.csv";
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.ClearHeaders();
HttpContext.Current.Response.ClearContent();
HttpContext.Current.Response.AddHeader("content-disposition", attachment);
HttpContext.Current.Response.ContentType = "text/csv";
HttpContext.Current.Response.AddHeader("Pragma", "public");
HttpContext.Current.Response.Write(sb.ToString());
HttpContext.Current.Response.End();
sabato 7 febbraio 2015
Iscriviti a:
Commenti sul post (Atom)
Nessun commento:
Posta un commento