WPF
DataGrid의 내용을 CSV 파일로 출력할때 행과 열이 맞지않는 경우의 해결방법
지오준
2022. 5. 12. 10:00
반응형
1. 원인 : CSV파일 출력 내용중에서 콤마(,)를 포함할 경우에는 열이 추가로 생성되는 문제가 발생할 수 있습니다.
2. 해결방법 : CSV파일 출력 내용을 ""포함해서(예 ”내용”) 설정해주면 정상적으로 행과 열이 일치하게 됩니다.
3. 샘플코드
// CSV파일생성
using (var streamWriter = new StreamWriter(filePath, false, Encoding.GetEncoding("Shift_JIS")))
{
// DataGrid헤더(컬럼)행출력
streamWriter.WriteLine(string.Join(",", DataGrid.Columns.Select(e => e.Header)));
// DataGrid내용행 출력
foreach (var itemSource in DataGrid.ItemsSource)
{
// DataGrid내용행 리스트 취득
var values = itemSource.ToList();
// DataGrid컬럼별 설정값 취득
for (int i = 0; i < values.Count(); i++)
{
//DataGrid컬럼별 설정값을 ""안으로 넣어서 문자열화시킴
values[i] = (object)(string.Format("\"{0}\"", values[i]));
}
// DataGrid컬럼별 설정값행을 출력
streamWriter.WriteLine(string.Join(",", values));
}
}
반응형