Copy text from WPF DataGrid to Clipboard to Excel

2019-04-28 06:05发布

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.

标签: wpf clipboard
2条回答
贪生不怕死
2楼-- · 2019-04-28 06:16

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

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

should work.

查看更多
地球回转人心会变
3楼-- · 2019-04-28 06:34

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

查看更多
登录 后发表回答