2011-06-13 5 views
0

MVVM 컬렉션 클래스에 바인딩 된 wpf 데이터 격자가 있습니다. 그리고 MVVM 클래스의 일부 속성은 DataGrid에 바인딩되지만 모든 속성에는 바인딩되지 않습니다.wpf datagrid를 사용자 정의 Excel CSV 파일로 내보내기

DataGrid에서 Excel CSV 파일로 데이터를 내 보내야합니다. 그러나 DataGrid에 바인딩되지 않지만 Excel 파일에 표시해야하는 MVVM 클래스의 일부 속성이 있습니다. 그래서 사용자 정의 열 (datagrid + 일부 여분의 열)을 만들어야합니다.

importedDG.SelectAllCells(); 
importedDG.ClipboardCopyMode = DataGridClipboardCopyMode.IncludeHeader; 
ApplicationCommands.Copy.Execute(null, importedDG); 
importedDG.UnselectAllCells(); 
string path1 = "C:\\test.csv"; 
string result1 = (string)Clipboard.GetData(DataFormats.CommaSeparatedValue); 
Clipboard.Clear(); 
System.IO.StreamWriter file1 = new System.IO.StreamWriter(path1); 
file1.WriteLine(result1);file1.Close(); 

이 내가 원하는 정확한 총재의 열하지만 추가로 파일을 생성합니다 : 여기

내가 엑셀 ​​CSV 파일을 만들 현재 사용하고있는 코드입니다. 어떻게 추가 할 수 있습니까?

+0

어느 부분에서 어려움을 겪고 있습니까? –

+0

동일한 DataGrid 열을 사용하여 Excel 파일을 만들 수 있지만 DataGrid에는없는 다른 열을 추가하는 방법. – alice7

+0

현재 Excel 파일을 어떻게 작성하고 있습니까? –

답변

1

그리드 컨트롤에서 CSV를 생성하는 방법을 사용하고 계신 것 같습니까? 당신은 당신의 질문에 많이 언급하지 않았습니다.

그렇다면이 책임을 귀하의 뷰 모델로 옮길 것입니다. KBCsv과 같은 CSV 라이브러리를 사용하여 데이터를 쓰는 작업을 수행 할 수 있습니다.

+0

오류가 발생했습니다 : 참조 및 컴파일 중 어셈블리 생성에 실패했습니다. – alice7

+0

나는 그것을 해결했지만 이제는 csvwriter에 대한 initilizer 오류가 발생합니다. – alice7

+0

해결 되었습니까. 그러나 헤더 열 앞에 날짜와 같은 데이터를 넣어야하는 경우 데이터가 이어집니다. 어떤 방법이 있습니까? – alice7

관련 문제