Ich habe diesen Code in meiner Anwendung verwendet, um Datagridview als CSV-Datei zu exportieren.Es hat gut funktioniert, aber csv zeigt Zellenwerte nicht korrekt.Siehe unten Bilder und ich habe auch meinen Code eingefügt.Was kann ich an diesem Code ändern, um dies zu beheben ?Warum zeigt die CSV-Datei beim Export keine Sonderzeichen?
ist die Datagridview
Dies ist die exportierte CSV und es zeigt, wie diese
Hier ist mein Code
public void writeCSV(DataGridView gridIn, string outputFile)
{
//test to see if the DataGridView has any rows
if (gridIn.RowCount > 0)
{
string value = "";
DataGridViewRow dr = new DataGridViewRow();
StreamWriter swOut = new StreamWriter(outputFile);
//write header rows to csv
for (int i = 0; i <= gridIn.Columns.Count - 1; i++)
{
if (i > 0)
{
swOut.Write(",");
}
swOut.Write(gridIn.Columns[i].HeaderText);
}
swOut.WriteLine();
//write DataGridView rows to csv
for (int j = 0; j <= gridIn.Rows.Count - 2; j++)
{
if (j > 0)
{
swOut.WriteLine();
}
dr = gridIn.Rows[j];
for (int i = 0; i <= gridIn.Columns.Count - 1; i++)
{
if (i > 0)
{
swOut.Write(",");
}
value = dr.Cells[i].Value.ToString();
//replace comma's with spaces
value = value.Replace(',', ' ');
//replace embedded newlines with spaces
value = value.Replace(Environment.NewLine, " ");
swOut.Write(value);
}
}
swOut.Close();
}
}
Sie konnten die CSV in Notepad öffnen? Ich wette, es ist exzellent, die numerischen Werte zu zerstören. –
Suchen Sie die Stückliste (Byte-Reihenfolge-Markierung), und beachten Sie, dass der Unterschied in der numerischen Genauigkeit der Unterschied zwischen Excel und Ihrer Anwendung ist. Siehe [this] (http://www.techrepublic.com/article/displaying-values-with-more-than-12-characters-in-excel/) für weitere Informationen. – john