从DataGridView到Excel 2002中隐藏的exception复制/粘贴

早上好,

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

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

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

问候,阿兰。

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

你可以先尝试Pat的build议(更简单!)。

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

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

而不是调用Clipboard.SetDataObject(dataObject) ,试试这个: Clipboard.SetDataObject(dataObject, true); 。 'true'参数告诉剪贴板获取数据对象的副本。 它为我工作。

我的build议是,而不是使用Ctrl + V粘贴到Excel中,右键单击并select粘贴特殊,并select文本格式。 当你将内容复制到剪贴板时,听起来好像还有一种不同的编码方式(ctrl + c)如果用鼠标右键单击而不是使用粘贴热键(ctrl + p),还有其他一些粘贴选项可供粘贴。 希望这有助于你出去