Problème d'exportation en CSV
Bonjour,
Contexte : Visual Studio 2010, ASPNET, C#, Base SQL, FrameWork 3.5
je génére un fichier CSV à partir d'une DataTable et je l'envois par Email à l'utilisateur qui le demande. L'objectif est qu'il récupére les données avec Excel.
ça marche bien sauf que dans Excel , toutes les accents sont remplaçés par des caractéres du genre : é
Avec mes recherches j'ai appris que c'est un problème d'encodage mais je n'ai pas trouvé de solution qui marche ....
QQN aurait t'il la solution ?
voici ma fonction :
Code:
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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
public void ExporterUneDataTableEnCsv(DataTable LaTable, string Titre, string Chemin, string Email)
{
string LaLigne = string.Empty;
string Route = Chemin + "Export.csv";
StreamWriter SW = new StreamWriter(@Route);
LaLigne = Titre;
SW.WriteLine(LaLigne, System.Text.Encoding.Default);
LaLigne = "Fichier généré via le site intranet de l'ATASH le : " + DateTime.Now.ToString();
SW.WriteLine(LaLigne);
LaLigne = " ";
SW.WriteLine(LaLigne);
LaLigne = string.Empty;
//ENTETES DE COLONNES
foreach (DataColumn Col in LaTable.Columns)
{
LaLigne = LaLigne + Col.Caption.ToString() + ";";
}
SW.WriteLine(LaLigne);
LaLigne = string.Empty;
//GENERATION DES LIGNES DE DONNEES
foreach (DataRow Lgn in LaTable.Rows)
{
foreach (DataColumn Col in LaTable.Columns)
{
LaLigne = LaLigne + Lgn[Col.ColumnName].ToString() + ";";
}
SW.WriteLine(LaLigne);
LaLigne = string.Empty;
}
SW.Close();
SW.Dispose();
//ENVOIS FICHIER EN PIECE JOINTE A L'UTILISATEUR EN COURS
Emails Courrier = new Emails();
//string Sujet = DateTime.Now + " - Export données intranet";
string Sujet = DateTime.Now + " - " + Titre;
string Message = "Email généré à votre demande par l'Intranet ATASH</BR>Voir le fichier CSV en pièce jointe";
Courrier.EnvoisMail(Email, Sujet, Message, Route);
Courrier = null;
}
} |
Merci d'avance pour vos réponses ...
Patrick