【发布时间】:2014-10-29 14:49:59
【问题描述】:
我正在使用 TOleContainer 从应用程序访问 Excel。在 Olecontainer 对象中,我们有 MS Excel 2003 工作表,但我需要打开 Excel Workbook 2010 版本。谁能帮我。 谢谢。
【问题讨论】:
我正在使用 TOleContainer 从应用程序访问 Excel。在 Olecontainer 对象中,我们有 MS Excel 2003 工作表,但我需要打开 Excel Workbook 2010 版本。谁能帮我。 谢谢。
【问题讨论】:
使用TOleContainer.CreateObjectFromFile。来自documentation(链接到当前文档,但TOleContainer 的年龄没有改变,因此它与您使用的Delphi 版本相关):
根据文件内容创建嵌入的 OLE 对象。
调用 CreateObjectFromFile 从由 FileName 参数指定的文件创建 OLE 对象。 Iconic 参数指示对象是显示为图标 (true) 还是像在服务器应用程序中一样显示 (false)。如果容器中已经有一个 OLE 对象,则该对象将被销毁,并且用户对其所做的任何更改都将被丢弃。
使用示例如下:
OleContainer1.CreateObjectFromFile('C:\temp\test.xlsx', False);
如果您知道 OLE 类的类名,也可以使用TOleContainer.CreateObject。您可以通过使用CreateObjectFromFile 来加载现有的Excel 文件并读取TOleContainer.OleClassName。 (这也可以在documentation 中找到。)使用与上述相同版本的 Excel 的示例:
OleContainer1.CreateObject('Excel.Sheet.12', False);
【讨论】: