Скопируйте текст из WPF DataGrid в буфер обмена в Excel

У меня есть WPF DataGrid (VS2010 С#). Я скопировал данные из DataGrid в буфер обмена и записал их в файл Excel. Ниже мой код.

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

Все работает нормально, за исключением того, что когда я открываю файл excel, он дает мне два предупреждения:

«Файл, который вы пытаетесь открыть «test.xls», имеет формат, отличный от указанного в расширении файла. Прежде чем открывать файл, убедитесь, что файл не поврежден и получен из надежного источника. Вы хотите открыть файл? в настоящее время?"

«Excel обнаружил, что файл test.xls является файлом SYLK, но не может его загрузить».

Но после того, как я щелкаю по нему, он все равно открывает файл excel OK, и данные форматируются так, как должны быть. Но я не могу найти, как избавиться от двух предупреждений перед открытием файла excel.


person KMC    schedule 16.02.2011    source источник
comment
Я думаю, это потому, что файл не имеет правильного расширения.   -  person Jaime Oro    schedule 16.02.2011
comment
Excel имеет расширение .xls... не так ли?   -  person KMC    schedule 16.02.2011
comment
Таблицы Excel имеют формат .xls. Но Excel может открывать и другие форматы файлов, например, файл со значениями, разделенными запятыми (.csv).   -  person Brian J    schedule 11.06.2013


Ответы (2)



Вам нужно использовать csv в качестве расширения. Xls — это расширение файла Excel. Так

string path1 = "C:\\test.csv";

должно сработать.

person Sammas    schedule 27.07.2011