Bonjour,

je cherche à générer un fichier CSV. J'utilise ce code pour la construction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
private void BuildCsv(ref MemoryStream memStream)
  {
    StreamWriter sw = new StreamWriter(memStream,System.Text.Encoding.UTF8);
 
    sw.WriteLine("Un texte de résumé"); 
 
    // En-tête
    sw.WriteLine(String.Format("\"{0}\" ; \"{1}\" ; \"{2}\" ; \"{3}\" ; \"{4}\" ; \"{5}\" ; \"{6}\"",
      col1,
      col2,
      col3,
      col4,
      col5,
      col6,
      col7));
 
    // Donnees
    foreach (IStnDes res in maliste)
    {
      sw.WriteLine(String.Format("\"{0}\" ; \"{1}\" ; \"{2}\" ; \"{3}\" ; \"{4}\" ; \"{5}\" ; \"{6}\"",
      res.ch1, 
      res.ch2, 
      res.ch3, 
      res.ch4, 
      res.ch5, 
      res.ch6, 
      res.ch7));
    }
 
    // Nettoyage du streamwritter
    sw.Flush();
    sw.Close();
  }
L'envoi à l'utilisateur se fait ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
byte[] byteArray = memStream.ToArray();
 
            //Nettoyage du MemoryStream
            memStream.Flush();
            memStream.Close();
            // Nettoyage du contenu de sortie
            Context.Response.Clear();
            // Header HTTP qui donne le fichier par défaut à aller chercher
            Context.Response.AddHeader("Content-Disposition", "attachment; filename=" + strCsvFileName + ".csv");
            // Header HTTP qui contient la taille de fichier
            Context.Response.AddHeader("Content-Length", byteArray.Length.ToString());
            // MIME type
            Context.Response.ContentType = "application/octet-stream";
            // Ecriture des données binaire sur le flux de sortie
            Context.Response.BinaryWrite(byteArray);
Avec ceci, lorsque je suis en UTF8, les accents passent bien mais Excel ne "voit" pas les colonnes (tout est importé dans la même colonne).
Si j'encode en ASCII, les accents sont affichés comme des points d'interrogation, mais les colonnes sont bien "détectées".

Je ne comprends pas bien pourquoi... donc si vous aviez une piste !

Merci d'avance !

Alban