首页 > 解决方案 > 由 JavaScript 用作 WebView2 控件中的 hostObject 时 Excel COM 的问题

问题描述

我有一个包含 WebView2 控件的自定义任务窗格的 ExcelDNA 项目。
(参见此处的演示项目:https ://github.com/alaincao/ExcelDNASamples/tree/automation_issue_cs_js/CustomTaskPane )
然后,我正在尝试使用 JavaScript 控制 Excel 应用程序。因此,在 C# 方面,我使用AddHostObjectToScript()

wv.CoreWebView2.AddHostObjectToScript( "excel", ExcelDna.Integration.ExcelDnaUtil.Application );

当我尝试hostObject从 JavaScript 中使用它时会出现问题。有些功能似乎可以正常工作,但其他功能则不行。
例如,这确实可以毫无问题地设置当前单元格的值:
chrome.webview.hostObjects.excel.ActiveCell.Value = 123;
但这:
chrome.webview.hostObjects.excel.ActiveCell.Cells(2, 2).Value = 123;
崩溃

VM6:2 Uncaught Error: Member not found. (0x80020003)
Uncaught (in promise) {remoteObjectId: 0, methodName: "", parameters: {�}, callId: 16}
Promise.then(async)
createPublicObject @VM6: 1
applyHostFunction @VM6: 1
apply @VM6: 1
    (anonymous) @VM289: 1

从我能找到的情况来看,它似乎知道有什么东西被调用.Cells但无法调用它。
(即它甚至是一个函数吗?)

我对COM一点也不熟悉。有谁知道如何正确地与 Excel 的引用进行交互,或者这是否可能?

标签: excel-dnawebview2

解决方案


推荐阅读