从DataGridView到Excel 2002的隐秘异常复制/粘贴

时间:2011-02-23 15:49:52

标签: c# .net winforms excel

早上好,

运行Visual Studio 2008(C#3.5)。手动加载DataGridView(不是数据绑定)。复制/粘贴到记事本/写字板工作正常,但当我尝试复制/粘贴到Excel时,我得到这个奇怪的异常:

Invalid FORMATETC structure (Exception from HRESULT: 0x80040064 (DV_E_FORMATETC))

这是截至上周五的工作。我完全难过了。我很确定这在过去是有效的。我尝试重新启动,重新添加DataGridView控件。任何帮助非常感谢。

此致 -Alan。

3 个答案:

答案 0 :(得分:1)

也许您的某些数据被Excel解释为公式(如5/0)。

你可以先尝试Pat的建议(这更容易!)。

另外,首先尝试将文本粘贴到记事本中,从记事本中复制所有内容,然后将其粘贴到Excel中。

如果仍然出现错误,请尝试在记事本中粘贴文本的前半部分。如果成功,请粘贴下半部分。他们的关键是尝试缩小哪个文本字符串导致Excel上的Barf。

答案 1 :(得分:1)

请尝试以下操作:Clipboard.SetDataObject(dataObject),而不是致电Clipboard.SetDataObject(dataObject, true);。 'true'参数告诉剪贴板获取数据对象的副本。它对我有用。

答案 2 :(得分:0)

我的建议是不使用ctrl + v粘贴到excel中,右键单击并选择paste special并选择文本格式。当您将内容复制到剪贴板时,听起来有一种不同的编码方式(ctrl + c) 如果右键单击鼠标按钮而不是使用粘贴热键(ctrl + p),还有一些其他可用于粘贴的选项。 希望这有助于你 -Pat