Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Copy text from WPF DataGrid to Clipboard to Excel

Tags:

clipboard

wpf

I have WPF DataGrid (VS2010 C#). I copied the data from DataGrid to Clipboard and write it to an Excel file. Below is my code.

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();

Everything works out OK except when I open the excel file it gives me two warning:

"The file you are trying to open 'test.xls' is in a different format than specified by the file extension. Verify that the file is not corrupted and is from a trusted source before opening the file. Do you want to open the file now?"

"Excel has detected that 'test.xls' is a SYLK file, but cannot load it."

But after I click through it, it still open the excel file OK and data are formated as it supposed to be. But I can't find how to get rid of the two warnings before the excel file is open.

like image 502
KMC Avatar asked Feb 16 '11 10:02

KMC


2 Answers

You need to use csv as extension. Xls is the Excel file extension. So

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

should work.

like image 59
Sammas Avatar answered Nov 11 '22 16:11

Sammas


A problem like yours has already been described here : generating/opening CSV from console - file is in wrong format error. Does it helps to solve yours ?

Edit : Here is the Microsoft KB related => http://support.microsoft.com/kb/323626

like image 40
Sebastien Avatar answered Nov 11 '22 16:11

Sebastien