2011-02-16 96 views
6

我有WPF DataGrid(VS2010 C#)。我将数据从DataGrid复制到剪贴板并将其写入Excel文件。以下是我的代码。将文本从WPF 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(); 

一切顺利OK除了当我打开Excel文件它给了我两个警告:

“你试图打开 ‘TEST.XLS’的文件是不同的格式 验证文件没有损坏 并且来自 打开文件之前的信任来源。是否要打开 该文件?

“Excel检测到'test.xls'是 SYLK文件,但无法加载它。”

但之后我通过点击它,它仍然打开Excel文件确定,因为它应该是数据被格式化。但是在excel文件打开之前我找不到如何摆脱这两个警告。

+0

我想这是因为该文件没有得到正确的扩展名。 – 2011-02-16 10:48:54

回答

4

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

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

应该工作。