Tag: office addins

列出客户机中的所有Excel加载项

问题: 我想列出安装在机器上的每个Excel版本的所有Excel加载项( 而不是COM加载项 )。 请给我一些线索或build议吗? 我做了什么 我试图从registry项中获取信息。 对于Office 2013,它在这里。 HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes下\安装\组件\ 72EFF0976DEDB96428D4154EFA5A5807 但对于Office 2007,它不在那里。 密钥的数据是: analys32.xll Data = Analysis ToolPak \提供用于统计和工程分析的数据分析工具 atpvbaen.xlam 数据=分析工具库 – 分析工具库的VBA \ VBA函数 eurotool.xlam 数据=欧元货币工具\欧元货币的转换和格式 solver.xlam Data = Solver Add-in \ Tool用于优化和方程求解 有没有办法实现这个没有硬编码每个Excel版本的组件GUID?

BindingDataChanged在Excel Web App中不起作用

我正在使用office.js库处理Office加载项(以前的Office应用程序)。 我的应用程序添加了一个处理程序来获取有关Excel表中数据更改的通知: Microsoft.Office.WebExtension.select("bindings#orderBinding", onBindingNotFound) .addHandlerAsync( Microsoft.Office.WebExtension.EventType.BindingDataChanged, (eventArgs) => { console.dir('Data changed in excel'); } ); 当我在Excel中使用这个应用程序时,它工作正常。 但是,当我在网上运行它时,它不起作用(Excel Online)。 在Web中,处理程序已成功添加。 但是,当数据在Excel中更改时,处理程序不会被调用。

在新的JavaScript API for Excel中,加载项的任何更改都将清除“撤消/重做”堆栈

运行这个简单的代码后,Undo / Redo堆栈被清除: Excel.run(function (ctx) { return ctx.sync(); }); 有谁知道如何解决或避免这个?

在现有工作簿中debugging由JavaScript API编写的Excel加载项

我正在尝试使用JavaScript API for Excel开发Excel加载项。 我已经可以运行一些示例,在Visual Studio下启动debugging。 每次当我启动debugging时,它会打开 Excel 的新工作簿 。 但是,大多数情况下,我需要在现有工作簿上debugging加载项。 例如, 这是一个加载项示例,它打开一个空白工作簿并向其中添加空白工作表。 但是,我希望它将空白工作表添加到现有(打开)工作簿。 有谁知道我应该设置在现有(打开)工作簿上进行debugging吗? 我应该修改一些代码行吗? 编辑1:

是否可以创build一个与2010到2016版的所有Excel版本兼容的Excel添加项?

我有Visual Studio 2015年社区,我有以下选项来创build一个新的项目。 这些项目中的任何一个都会创build一个可以在所有版本的Excel 2010到2016(如果可能的话)的插件? 我想要做的就是在function区中添加一个button,并将一些数据提交给Web服务。 如果我可以只写一次加载项就会很好。 Excel加载项 Excel 2013和2016 VSTO加载项 Excel 2010 VSTO加载项 提前致谢 :)

Office 2013 JavaScript API – 删除表格筛选器button

我无法删除表格filterbutton , 我正在使用下面的代码 Office.context.document.setSelectedDataAsync(sampleDataForExcel, { tableOptions: { filterButton: false } }, function (asyncResult) { if (asyncResult.status === Office.AsyncResultStatus.Failed) { app.showNotification('Could not insert sample data', 'Please choose a different selection range.'); } else { Office.context.document.bindings.addFromSelectionAsync( Office.BindingType.Table, { id: "myBinding" }, function (asyncResult) { if (asyncResult.status === Office.AsyncResultStatus.Failed) { app.showNotification('Error binding data'); } else { window.location.href = […]

如何检测在哪个Excel工作簿被点击?

使用Excel-2010,Visual-Studio-2013 Professional, 我试图找出编程方式,其中Excel的工作簿鼠标单击发生(或键盘快捷方式发生也将是可以接受的)? 有几个想法我说服了,但他们都performance出同样的问题:所使用的Excel-AddIn会得到执行所有打开的Excel工作簿和混淆了所需的信息,因为它确实给了我错误的鼠标起源点击(或键盘快捷方式点击)。 它不告诉我所需的原点窗口,但告诉我,点击发生在一个非活跃的窗口! 我真的不知道为什么下面的代码片段返回任意的工作簿的起源(但从来没有我需要的,这是一个窗口,我点击里面!)… 什么是最好的方法来告诉从哪个窗口中鼠标点击(或键盘快捷方式)发生有几个Excel的工作簿打开使用相同的Excel-AddIn代码? 这是我到目前为止所尝试的: A)如此处所见,全局键盘钩子不是解决scheme。 B)GetActiveWindow() const int nChars = 256; IntPtr handle1 = GetActiveWindow(); StringBuilder Buff1 = new StringBuilder(nChars); if (GetWindowText(handle1, Buff1, nChars) > 0) { MessageBox.Show(Buff1.ToString()); } C)GetForegroundWindow() const int nChars = 256; IntPtr handle2 = GetForegroundWindow(); StringBuilder Buff2 = new StringBuilder(nChars); if (GetWindowText(handle2, Buff2, nChars) > 0) { […]

Excel加载项来显示所有的控件

我正在做一个加载项,将显示Excel文档中的每个控件的消息框。 但是,当我用一些Excel文档(有许多button/checkbox控件)打开它时,通过将它添加为COM加载项,没有任何反应,当我再次打开COM加载项时,我看到我的add在没有选中:( 可能是什么问题? 这是代码: private void ThisAddIn_Startup(object sender, System.EventArgs e) { Tools.Worksheet vstoWork = Globals.Factory.GetVstoObject(this.Application.ActiveWorkbook.Worksheets[0]); foreach (Control c in vstoWork.Controls) { MessageBox.Show(c.Name); } } 我的最终目标是确定所有button的控件并单击它们,但这是现在。 谢谢。

Office 2016 JavaScript API – 删除表格筛选器button

在Office 2013版本的Office Javascript API中,我将创build一个表格,如下所示: Office.context.document.setSelectedDataAsync( tbl, { coercianType: Office.CoercionType.Table, cellFormat: tableCellFormats, tableOptions: { filterButton: false } }); 现在用范围转换为表的新方法,我错过了一件事。 也就是说,我怎样才能创build与filterbuttonclosures。 我没有看到一个Table.options属性,我可以设置filterbutton = false。 (见下面的片段): Excel.run(function (ctx) { ctx.workbook.tables.add('Sheet1!A1:E7', true); return ctx.sync(); }).catch(function (error) { console.log(error); }); 有人可以请发表一个JavaScript代码片段如何做到这一点?

Excel任务窗格加载项显示来自外部源的内容

我正在尝试构buildExcel / Word任务窗格外接程序,该外接程序应显示来自我们网站的内容。 内容/数据以XML格式传递。 我试图做的是以下几点: Office.initialize = function (reason) { $(document).ready(function () { app.initialize(); $.support.cors = true; var data = ''; $.ajax({ type: "GET", contentType: "application/json; charset=utf-8", url: 'http://addons.mysite.com/excel-taskpane-data.php', data: data, dataType: "json", success: onQuerySuccess, error: onQueryError }); function onQuerySuccess(res, statusText) { console.log('success!!' + res.statusText); } function onQueryError(res, statusText){ console.log('failed!!' + res.statusText); } }); }; […]