将文本从WPF DataGrid复制到剪贴板到Excel

时间:2011-02-16 10:45:54

标签: wpf clipboard

我有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 个答案:

答案 0 :(得分:4)

您需要使用csv作为扩展名。 Xls是Excel文件扩展名。 所以

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

应该有用。

答案 1 :(得分:2)

这里已经描述了像你这样的问题:generating/opening CSV from console - file is in wrong format error。 解决问题有助于解决问题吗?

编辑:这是与Microsoft KB相关的=> http://support.microsoft.com/kb/323626