2

我正在开发一个 Delphi 项目,我需要将值导出到 Excel 工作表。我的项目支持两种方法来实现这一点:1)使用管理工作表创建的第三方 dll 2)使用内置的 dde,并在此之上执行命令。

两种方式都很好,但现在我想添加对将图像导出到 Excel 工作表的支持。使用第一种方式,这很容易实现。

我的问题是如何使用 DDE 命令将图像添加到 Excel 工作表?所有受支持的 dde ​​命令的完整列表也将不胜感激。我来到了这个,但它似乎并没有解决我的问题....

4

3 回答 3

4

找出与 Excel 进行 OLE 通信的正确语法可能是一件非常痛苦的事情,甚至是不可能的。我从来没有从 Delphi 中找到关于如何做到这一点的完整文档。我通常最终会进行大量的试错测试,添加和删除括号和方括号等。Excel 中针对格式错误的语法的错误消息毫无价值,这无济于事。

我建议您考虑一种混合方法,在这种方法中,您使用 Delphi 在 Excel 中启动宏,如有必要,之前将参数插入隐藏 (xlVeryHidden) 工作表。然后,您可以在 VBA 中执行所有操作,这打开了示例代码和支持的世界(例如,MrExcel.com 论坛是一个极好的帮助来源。)

你知道 Deborah Pate 的网站,不是: http: //www.djpate.freeserve.co.uk/AutoExcl.htm

于 2012-02-17T13:51:16.060 回答
0

仅使用 DDE 是无法做到的。

我相信正确的方法不是 DDE,而是 OLE 自动化(COM IDispatch 接口)。DDE 仅用于通过其三个主要读/写/执行命令将您的应用程序链接到另一个应用程序,因此功能比 OLE 自动化更有限。您可以是 DDE 客户端,并且可以连接到 Excel。Excel 可以是 DDE 服务器或 DDE 客户端。在这种情况下,您可以使用 Excel 并使用 DDE 轻松编写文本。

但是,我不相信您可以将位图图像信息写入 DDE,但是您可以编写文本、数字和公式。我在 Excel 和 Delphi 中大量使用了 DDE,但从未见过任何迹象表明它是可能的。DDE 具有三个基本操作:

  • 偷看(阅读)

  • 戳(写)

  • 执行(调用函数)

如果你问如何使用 OLE 自动化,那将是另一回事,使用 Delphi 相对容易,因为 Delphi 流畅地支持 COM 和 OLE 自动化。

罗伯特弗兰克的回答似乎也不错。您可以使用 VBA 宏并从 DDE Execute 调用它们,但我无法建议如何使用它们。

于 2012-02-18T18:42:28.740 回答
-1

就我而言,它使用以下命令:

EXCEL -> SYSTEM -> [INSERT.PICTURE("C:\temp\picture.jpg")]

于 2016-05-25T09:07:35.080 回答