[ASP.NET/C#]Export CSV via HttpResponse
Bonjour,
J'ai besoin de faire des exports CSV à partir de plusieurs tables au travers d'un click sur un bouton. Il y a ainsi plusieurs appels au code suivant sur l'événement click d'un bouton d'export :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
public static void DoExporterEnFluxCSV(DataTable aTable, HttpResponse aResponse, string aFiltreCSV, string aNomDuFichierCSV)
{
DataRow[] LignesExport = aTable.Select(aFiltreCSV);
DataTable DatExport = aTable.Clone();
LignesExport.CopyToDataTable(DatExport, System.Data.LoadOption.OverwriteChanges);
aResponse.Clear();
aResponse.Buffer = true;
aResponse.ContentEncoding = System.Text.Encoding.UTF8;
aResponse.ContentType = "text/csv";
// Si chargement dans le navigateur
// aResponse.AddHeader("Content-Disposition", "inline;filename="+aNomDuFichierCSV);
// Si récupération du fichier
aResponse.AddHeader("Content-Disposition", "attachment;filename=" + aNomDuFichierCSV);
aResponse.Charset = "";
DataTableExport.ExportCSV(DatExport, aResponse.Output, true, true);
aResponse.End();
} |
Cela marche très bien pour une seule table exportée, mais quand il y a plusieurs tables exportées d'affilée, seul le premier export est effectué...
Je ne connais pas trop le mécanisme du HttpResponse, est-ce que cela vient de là ?