作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
在客户端网络应用程序中,我想:
我希望用户拥有流畅的体验,并通过连接到 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/
我是一名优秀的程序员,十分优秀!