【问题标题】:Copy text from WPF DataGrid to Clipboard to Excel将文本从 WPF DataGrid 复制到剪贴板到 Excel
【发布时间】:2012-04-05 22:05:48
【问题描述】:

我有 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文件之前我找不到如何摆脱这两个警告。

【问题讨论】:

  • 我认为这是因为文件没有正确的扩展名。
  • Excel 的扩展名为“.xls”...不是吗?
  • Excel 电子表格是 .xls。但 Excel 也可以打开其他文件格式,例如逗号分隔值文件 (.csv)

标签: wpf clipboard


【解决方案1】:

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

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

应该可以。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2012-12-02
      • 1970-01-01
      • 2013-03-22
      • 1970-01-01
      • 1970-01-01
      • 2013-10-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多