Скопируйте текст из WPF DataGrid в буфер обмена в Excel - PullRequest
6 голосов
/ 16 февраля 2011

У меня есть WPF DataGrid (VS2010 C #). Я скопировал данные из 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, и данные будут отформатированы, как и должно быть. Но я не могу найти, как избавиться от двух предупреждений до открытия файла Excel.

Ответы [ 2 ]

4 голосов
/ 27 июля 2011

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

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

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

2 голосов
/ 16 февраля 2011

Проблема, подобная вашей, уже описана здесь: генерация / открытие CSV из консоли - файл в неправильном формате ошибка . Это помогает решить вашу?

Редактировать: вот Microsoft KB относится => http://support.microsoft.com/kb/323626

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...