데이터 로깅 후 Visual Studio에서 CSV로 데이터 테이블을 내보내는 데 오래 동안 노력했습니다.비주얼 스튜디오에서 csv로 내보낼 때 Streamwriter가 무작위로 추가됨 C#
메모장이 괜찮지 만 Excel로 가져올 때 나는 이상한 결과를 얻는다. 줄 바꿈이 데이터에서 임의의 지점에 추가되는 것처럼 보입니다.
나는 지금 잠시 동안이 전투를 벌이므로 어떤 도움도 받으실 수 있습니다! Notepad Version
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
}
}
이 작업을 수행하는 라이브러리가 있습니다. https://www.nuget.org/packages/CsvHelper/ – Magnus
@Magnus 내 문제는 CSV로 내보내는 isnt입니다. 내보내기 중에 내 데이터가 줄 바꿈됩니다. – charley
들어오는 데이터에 줄 바꿈이 포함되어 있습니까? 메모장 대신 워드 패드에서 CSV 파일을 열어보십시오. 워드 패드는 줄 바꿈에서 중단되지만 메모장에서는 그렇지 않습니다. 그게 문제라면, 쓰기 전에 모든 들어오는 데이터를 정리하십시오. – Lithis