gpt4 book ai didi

javascript - 如何连接到 Javascript 中的 Excel 事件

转载 作者:太空狗 更新时间:2023-10-29 14:38:44 24 4
gpt4 key购买 nike

在客户端网络应用程序中,我想:

  1. 打开 Excel 电子表格,
  2. 将一些应用程序数据导出到 Excel,
  3. 允许用户使用它,并且
  4. 完成后,将(可能更改的)数据读回我的应用程序。

我希望用户拥有流畅的体验,并通过连接到 BeforeClose 事件来检测他们何时完成了 excel,但我发现我无法连接到 javascript/HTML 中的 Excel 事件。

function BeforeCloseEventHandler(cancel) {
// TODO: read values from spreadsheet
alert("Closing...");
}

function openExcel() {
var excel = new ActiveXObject("Excel.Application");
var workbook = excel.Workbooks.Add();
var worksheet = workbook.Worksheets(1);
worksheet.Cells(1, 1).Value = "First Cell";
worksheet.Cells(1, 2).Value = "Second Cell";
workbook.BeforeClose = BeforeCloseEventHandler; // THIS DOESN'T WORK
excel.Visible = true;
excel.UserControl = true;
}

有人有什么建议吗?

最佳答案

经过一些研究,我发现我无法在 javascript 中将事件连接到动态 ActiveX 对象(即由 new ActiveXObject 构造函数创建的对象)。

一个想法是我创建一个包装器 Windows 窗体用户控件,它将托管在 <object> 中。网络应用程序中的标记。用户控件将调用 Excel 并接收事件,并将事件返回到 javascript,我可以使用 <script for="..." event="..."> 连接它机制。不确定这是否有效,但我会尝试。

即使它确实有效,我对这个解决方案也不是特别满意。层数太多——从 silverlight 控件调用 javascript 意味着我的数据必须跨越 3 个边界来回:Silverlight -> Javascript -> Hosted Winform User Control -> Excel

消除其中一些界限会很好。

关于javascript - 如何连接到 Javascript 中的 Excel 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/436563/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com