2011-02-23 77 views
8

早上好,从DataGridView隐藏的异常复制/粘贴到Excel 2002中

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

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

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

Regards, -Alan。

+0

您是使用默认复制程序还是创建自定义程序? – 2011-02-23 15:53:24

+0

也是你手工打开excel(打开excel然后打粘贴)或者你使用互操作来创建一个excel的实例? – 2011-02-23 15:54:30

+2

它似乎是一个报告的错误: http://connect.microsoft.com/VisualStudio/feedback/details/97153/unhandled-comexception-invalid-formatetc和http://connect.microsoft.com/VisualStudio/feedback/详细信息/ 97153/unhandled-comexception-invalid-formatetc# 有一条评论可能有所帮助:工具>>选项>>调试>>“将待处理的异常跨域应用程序边界或管理/未管理的边界视为未处理” – 2011-02-23 15:56:25

回答

0

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

+0

尝试过这些。没有影响:/ – CoolStraw 2011-04-01 09:57:17

1

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

您可以先尝试Pat的建议(更简单!)。

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

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

1

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

+0

这适用于VS 2015 – wrtsvkrfm 2016-12-11 20:27:27