复制和;将嵌入对象粘贴到文件系统

时间:2014-12-29 08:43:29

标签: c#

交叉发布于:https://social.msdn.microsoft.com/Forums/vstudio/en-US/8669c828-4919-43cc-b1ce-03c0b03def6e/copy-paste-embeded-object-to-file-system?forum=exceldev

背景:

我在Excel工作簿中编写了一大段VBA代码,以帮助处理大量重复工作。我发现使用“池”VBA编辑器维护和修改代码很痛苦。然后,我决定将这些VBA代码移动到C#解决方案,我想我可以从现代编辑器 - Visual Studio中受益。

问题:

虽然我对VBA知之甚少,但我对C#的了解甚少。因此,当我尝试将我的VBA代码“翻译”为C#时,我遇到了一些问题,这里有一个:

我为Excel创建了一个文档级解决方案。 我需要将一些文件(.cab,.exe)嵌入到解决方案中,因此当我运行一个方法(例如通过单击一个按钮)时,这些文件将被复制到文件系统,并完成一些工作。

在VBA中,我将这些文件嵌入到Excel工作簿中,然后我可以使用以下VBA代码将嵌入的对象复制到剪贴板:

Sheet1.OLEObjects("obj_cab").COpy

然后我可以使用以下VBA代码将对象粘贴到文件系统:

CreateObject("Shell.Application").Namespace("C:\Sample\").Self.InvokeVerb "Paste"

在C#解决方案中,我可以使用以下等效方法将嵌入对象复制到剪贴板:

Microsoft.Office.Interop.Excel.OLEObject OLEobj = (Microsoft.Office.Interop.Excel.OLEObject)sheet1.OLEObjects("obj_cab");
OLEobj.Copy();

然后我卡在这里,我不知道如何从剪贴板中获取此对象并将其放入文件系统。 C#中不存在'CreateObject'方法。

任何人都可以提供帮助?是嵌入这些文件的更好方法还是将这些对象(文件)从剪贴板粘贴到文件系统的工作方式?

非常感谢!

0 个答案:

没有答案