如何在自定义 OLE 对象中实现类似 Excel 的 OLE 链接行为
在 Word 中,您可以链接到 Excel 电子表格中的特定单元格 - 该电子表格本身可以作为单独的文件存在,也可以作为 Word 文档中的嵌入对象存在。 然后,您可以创建指向该电子表格中特定单元格的链接,通常是从就地激活的电子表格中复制单元格,然后使用“选择性粘贴”将链接粘贴到复制的单元格。该链接在链接名称中使用 Excel 的 !Sheet1!R2C1 格式来标识单元格(您可以编辑此名称以链接到不同的单元格)。
如何为自定义 OLE 对象(使用 MFC OLE 类构建)实现相同的效果?
是否有可能,或者 Word 是否使用有关 Excel 的内置知识来做到这一点?
In Word, you can link to specific cells in an Excel spreadsheet - which can itself exist as a separate file, or as an embedded object in the word doc.
You can then create links to specific cells in that spreadsheet, usually by copying the cells from the in-place activated spreadsheet, and using Paste Special to paste a link to the copied cells. The link uses excel's !Sheet1!R2C1 format in the link name to identify the cells (and you can edit this name to link to different cells).
How do I go about achieving the same effect for a custom OLE object (built using MFC OLE classes)?
Is it even possible, or does Word use built-in knowledge about Excel to do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
简短的答案是项目名称。您需要实现 IOleItemContainer 来执行此操作。
长的答案是否定的,Word 不会利用有关 Excel 的秘密知识(反之亦然),尽管我确信 OLE 是通过将 Excel 嵌入到 Word 作为主要用例而构建的,这会有所帮助。
您还可以在 Internet Explorer 或几乎任何支持嵌入的内容中嵌入 Excel 范围。您还可以使用
Set oRange = GetObject("c:\path\to\spreadsheet.xls!Sheet1!R2C1")
或类似方法从 VBScript 访问范围对象并更改其属性。The short answer is Item Moniker. You need to implement
IOleItemContainer
to do this.The long answer is no, Word does not make use of secret knowledge about Excel (or vice-versa), though I am sure it helps that OLE was built with embedding Excel into Word as a major use-case.
You can also embed an Excel Range in Internet Explorer, or pretty much anything that supports embedding. And you can access a range object and alter its properties from VBScript, by using
Set oRange = GetObject("c:\path\to\spreadsheet.xls!Sheet1!R2C1")
or similar.