ericdu93
Messages postés56Date d'inscriptiondimanche 1 août 2004StatutMembreDernière intervention28 août 2008
-
17 mars 2008 à 21:39
ericdu93
Messages postés56Date d'inscriptiondimanche 1 août 2004StatutMembreDernière intervention28 août 2008
-
19 mars 2008 à 16:22
j'obtiens bien mon fichier csv avec les points virgules. Le problème c'est que lorsque j'ouvre dans excel 2007, tout apparaît dans une seul colonne, comme ca
Colonne A:
toto;toto;titi
tata;tptp;tutu
Colonne B:
(rien)
Par contre si je fais un copier coller du contenu de ce fichier csv dans un nouveau fichier que j'aurai créer à la main et que je colle la dedans en renommant le fichier en .csv et que je réouvre avec Excel, alors les données sont bien séparées dans les différentes colonnes.
Ce n'est pas normal, avez vous une explication ?
Merci d'avance.
PS: je vous copie colle le code qui exporte la datatable vers csv:
public void CreateCSVFromDataTable(DataTable dt, bool WriteHeaders)
{
try
{
// Create the CSV file to which grid data will be exported.
StreamWriter sw = new StreamWriter(this.FileName, false, Encoding.Unicode);
int ColumnsCount = dt.Columns.Count;
#region Write the headers
// If required, write the headers.
if (WriteHeaders)
{
for (int i = 0; i < ColumnsCount; i++)
{
if(this.HeaderToCapitalLetters)
sw.Write(dt.Columns[i].ToString().ToUpper()); // TO MAKE IN UCASE
else
sw.Write(dt.Columns[i]);
if (i < ColumnsCount - 1)
{
sw.Write(GetSeparator());
}
}
sw.Write(sw.NewLine);
}
#endregion
#region Check Table Content Separator Conflicts
if (this.CheckTableContentSeparatorConflicts)
{
foreach (DataRow dr in dt.Rows)
{
foreach (object dc in dr.ItemArray)
{
if (Convert.ToString(dc).Contains(GetSeparator().ToString()))
throw new CSVDataTableConflictsException("Le contenu de la table n'est pas compatible avec le séparateur choisi : '" + GetSeparator() + "'.");
}
}
}
#endregion
#region Write the rows
// Write all the rows.
foreach (DataRow dr in dt.Rows)
{
for (int i = 0; i < ColumnsCount; i++)
{
if (!Convert.IsDBNull(dr[i]))
{
sw.Write(dr[i].ToString());
}
if (i < ColumnsCount - 1)
{
sw.Write(GetSeparator());
}
}
sw.Write(sw.NewLine);
}
Arthenius
Messages postés1182Date d'inscriptionmercredi 21 janvier 2004StatutMembreDernière intervention 6 septembre 201114 19 mars 2008 à 13:47
l'assitant d'ouverture de fichier csv ce lance pas a l'ouverture du csv ??
je ne pense pas que le pb vient de ton fichier csv, mais de la maniere par laquel tu ouvre ce csv sous excel
(deja eu ce pb)
pour le resoudre, lance excel, fais ficheir ouvrir et cherche ton csv
du coup un assistant doit ce lancer
suivnat point virgule suivant suivnat et voila c'est fini
ericdu93
Messages postés56Date d'inscriptiondimanche 1 août 2004StatutMembreDernière intervention28 août 20081 19 mars 2008 à 16:22
okay, justement je me suis résolu à utiliser l'assistant pour résoudre ce souci de colonne.
J'ai fait des recherches sur le net, j'ai vu que ça pouvait être dû au format d'encodage, j'ai donc testé les différents formats (UTF8, unicode, UTF16) finalement ça n'a pas été concluant.