J'ai essayé depuis un certain temps maintenant d'exporter une table de données à CSV en studio visuel après l'enregistrement de données.Streamwriter ajoutant des sauts de ligne supplémentaires au hasard lors de l'exportation de Visual Studio à CSV C#
Pour une raison quelconque, je reçois des résultats bizarres lors de l'importation dans Excel alors que le bloc-notes est très bien. Il semble que des sauts de ligne sont ajoutés mais à des points aléatoires dans les données. Je me bats depuis un moment maintenant, donc toute aide est appréciée!
void SaveAllData()
{
{
saveFileDialog1.InitialDirectory = "C"; // open save file window
saveFileDialog1.Title = "Save as CSV File"; // promt save as csv
saveFileDialog1.FileName = DateTime.Now.ToString("dd.MM.yy_HH.mm");
saveFileDialog1.Filter = "CSV File | *.csv"; // csv format
if (saveFileDialog1.ShowDialog() != DialogResult.Cancel) // if save dialog opens
{
string value = "";
DataGridViewRow dr = new DataGridViewRow();
StreamWriter swOut = new StreamWriter(saveFileDialog1.FileName, true, Encoding.ASCII);
//write header rows to csv
for (int i = 0; i <= IncomingDataTable.Columns.Count - 1; i++)
{
if (i > 0)
{
swOut.Write(",");
}
swOut.Write(IncomingDataTable.Columns[i].HeaderText);
}
swOut.WriteLine();
//write DataGridView rows to csv
for (int j = 0; j <= IncomingDataTable.Rows.Count - 1; j++)
{
if (j > 0)
{
swOut.WriteLine();
}
dr = IncomingDataTable.Rows[j];
for (int i = 0; i <= IncomingDataTable.Columns.Count - 1; i++)
{
if (i > 0)
{
swOut.Write(",");
}
value = dr.Cells[i].Value.ToString();
swOut.Write(value);
}
}
swOut.Close();
}
MessageBox.Show("Your data has been successfully saved.", "Message", MessageBoxButtons.OK, MessageBoxIcon.Information); // alert user file has saved
serialPort1.Close(); // close serial port
Setup_Page f1 = new Setup_Page(); // open setup page
this.Hide();
f1.ShowDialog();
Close(); // close this page
}
}
Il existe des bibliothèques qui le font pour vous: https://www.nuget.org/packages/CsvHelper/ – Magnus
@Magnus Mon problème n'est pas l'exportation en tant que fichier CSV, mais lors de l'exportation, j'obtiens des sauts de ligne dans mes données. – charley
Vos données entrantes contiennent-elles des sauts de ligne? Essayez d'ouvrir le fichier CSV dans WordPad à la place du Bloc-notes, car WordPad se casse à la ligne, mais pas le Bloc-notes. Si c'est le problème, coupez toutes vos données entrantes avant de l'écrire. – Lithis