问题标签 [office-addins]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
966 浏览

excel - excel添加保存内部数据?

我是编写 excel 插件(在 C# 中)的新手,并试图找出保存一些内部数据结构的正确方法,以便下次打开文件时可以恢复状态。如果它使事情变得更容易,我可以将数据转换为 xml 或 base64 字符串。我不想维护一个单独的文件,而是想将此信息嵌入到 Excel 工作表中。

非常感谢您的帮助。

0 投票
1 回答
2401 浏览

c# - 使用 WiX 安装 VSTO Office 插件

我制作了一个 Excel 插件并尝试使用以下答案安装它: How do you use WiX to deploy VSTO 3.0 addins?

它不能以这种方式工作,我发现当 Visual Studio 部署插件时,它会在 HKEY_CURRENT_USER\Software\Microsoft\VSTO\SolutionMetadata 下创建额外的注册表项。我已经手动向我的安装程序添加了相应的密钥,它现在可以工作了,但我认为这不是一种优雅/安全的方法。我究竟做错了什么?

0 投票
1 回答
457 浏览

interop - 在 Excel 中从 VBA7 引用的 64 位程序集中使用 .NET Framework 库

我有一个用 C# 编写的库,它使用标准的 .NET 框架库(System、System.Windows.Forms)。这个库是 COMVisible 以及它的类,我只有两个类: - TestClass(一个具有一种方法的类) - TestForm(一个空表单)

我按照此处的建议注册了程序集:C# COM DLL: do I use Regasm, or Regsvr32?

然后我转到我的 Excel 加载项并添加对生成的 .TLB 文件的引用。

我能够创建我的“TestClass”的一个实例并毫无问题地调用它的方法,但是当我尝试创建我的“TestForm”的一个实例时,它向我显示了这个错误:

根据我在尝试让类工作时看到的问题,问题是 Excel 没有找到其中一个依赖项(我猜是 System.Windows.Forms)。

如何从我的 64 位 Office 加载项打开用 .NET 编写的表单?

提前致谢

0 投票
1 回答
117 浏览

c# - 从 Office 加载项调用进程?

我有一个共享办公室加载项,它使用单独的进程使用以下代码删除文件:

即使它与加载项位于同一目录中,这似乎也随机无法找到该进程。我想避免将目录添加到 PATH 变量中。

有任何想法吗?

0 投票
0 回答
318 浏览

.net - 如何从 .net 在 Office 插件上注册自定义活动

我正在尝试为 Word 2010 编写一个加载项,该加载项将允许 .NET 应用程序注册来自加载项的自定义事件。我让它大部分工作,因为我的加载项运行正确,并且可以将一个对象传递给我的 .NET 片段,该片段实现了一个可供 .NET 应用程序使用的接口。这适用于基本方法调用,但是当我尝试注册接口中声明的事件时,我得到了这个异常:

Unable to cast object of type 'System.__ComObject' to type 'System.EventHandler'.

这是我的相关代码:

插件类:

这是从加载项共享到 .NET 应用程序的对象的类:

这是共享对象使用的接口:

最后,这是 .NET 应用程序尝试使用加载项的方式:

一切正常,直到addinObject.UserActivityStarted += OnUserActivityStarted;被调用的行,这是引发异常的地方。在这种情况下,我需要做什么才能附加到事件?

0 投票
1 回答
1241 浏览

.net - 多个 Windows 上的 Powerpoint 2010 VSTO AddIn 任务窗格

我想在每个文档窗口上显示一个任务窗格,我已经阅读了所有关于它的 MSDN 文章,但它不起作用。

当 3 或 4 个文档打开时,我单击 ToggleButton1,我得到 3 或 4 个任务窗格,但在同一个文档窗口上。

编辑 :

我想我没有正确解释这个问题,对不起。

新尝试:当打开 3 或 4 个文档时,我在演示 1 窗口上单击 ToggleButton1,我在 Prestation 1 窗口中获得 3 或 4 个任务窗格,其他演示文稿的窗口为空。

我想要的是一个共享的任务窗格和所有演示文稿的同步可见性

这个插件.vb

Ribbon1.vb

我也尝试过:

0 投票
1 回答
911 浏览

c# - Office 2003 Add In 在 Visual Studio 2005 Professional、Win XP 中使用 VSTO 2005 SE 和 C#

我使用 VSTO 2005 SE 在 C# 中为 Word 2003 开发了一个插件。Add In 在 Help 按钮附近创建一个名为 International Projects 的按钮。当加载项加载时,它会从 Sharepoint 2007 库中获取一些数据,并基于该数据,当单击 International Projects 菜单中的按钮时,它会为正在运行的文档生成一些自定义属性。在我开发 Add In 的机器上,它运行良好。我尝试在我的解决方案中创建一个安装项目,以便我可以在其他机器上安装插件。我使用此处的说明创建了安装程序:http: //msdn.microsoft.com/en-us/library/cc136646 (v=office.12).aspx , http: //blogs.msdn.com/b/vsto /archive/2008/12/17/deploying-office-2003-solutions-with-windows-installer-mary-lee.aspx和许多其他类似的网站。我遇到的问题是,当我在用户计算机上运行安装程序时,安装程​​序运行正常,日志或事件查看器中没有错误,注册表看起来很好,文件被复制到指定的地址在安装程序中,加载项出现在添加/删除程序中,但在启动 Word 时不会加载,并且在 Word 中不作为 COM 加载项存在。我从 VSTO 2005 SE Runtime Sample V3 中获取的 SetSecurity 项目,将其添加到我的解决方案中并将输出插入到我的设置项目中。我仍然认为这是 Office 和我的插件之间的信任问题。office 的 PIA 存在于 assembley 中,并且 VSTO 接缝可以正确安装。我还创建了另一个项目,它只是在启动和关闭时显示一个 MessageBox,并且可以在用户机器上安装并正常工作。我注意到的一些奇怪的事情是,当我构建我的项目时,没有创建 .vsto 文件但有一个 .vsto.manifest 文件,我在论坛上读到 vsto 运行时可能会尝试使用 .net 1.1 而不是 2.0两者都安装了,但我安装了一个补丁来解决这个问题,还有一个补丁,Visual Studio 2005 可能有一些问题,我也找到并安装了一个补丁,但这些都没有解决我的问题。在过去的两周里,我一直在努力尝试各种解决方案,但没有任何结果。您有为 Office 2003 插件创建设置的经验吗?如果有人这样做,请帮助我!谢谢!0 当两者都安装时,但我安装了一个补丁来解决这个问题,另外一个是 Visual Studio 2005 可能有一些问题,我也找到并安装了一个补丁,但这些都没有解决我的问题。在过去的两周里,我一直在努力尝试各种解决方案,但没有任何结果。您有为 Office 2003 插件创建设置的经验吗?如果有人这样做,请帮助我!谢谢!0 当两者都安装时,但我安装了一个补丁来解决这个问题,另外一个是 Visual Studio 2005 可能有一些问题,我也找到并安装了一个补丁,但这些都没有解决我的问题。在过去的两周里,我一直在努力尝试各种解决方案,但没有任何结果。您有为 Office 2003 插件创建设置的经验吗?如果有人这样做,请帮助我!谢谢!

0 投票
1 回答
2431 浏览

c# - 从 C# 代码激活 Excel ComAddin

事实上,我有一个正在运行的 C# 应用程序。
当它启动时,它会运行一个 excel 实例并将其保存到一个变量中:
excelApp = new Excel.Application();

然后我循环浏览每个 excel 的插件以找到我自己创建的添加:

问题是,我的插件可能在停用的元素列表中。(由于一些崩溃)

然后我必须去(在excel的框架上):
File >Options >AddIns >Manage >Deactivated elements >Achieve >"myAddin" >Activate
让我的插件再次工作(在excel重新启动后)......

我尝试使用插件的属性重新激活它,但在这种情况下应用程序可能会再次崩溃。

有人知道如何解决它/使用 C# 自动重新激活禁用的插件?

0 投票
1 回答
5138 浏览

c# - 在 XML 功能区中以编程方式访问功能区元素

这似乎已经在这里被问了好几次,但没有真正的答案:

在 XML 功能区中以编程方式访问功能区控件

Office 功能区:使用 XML 创建功能区时如何访问控件

如果使用功能区 xml 创建功能区,据我所知,该 xml 中定义的组件没有编程公开。更改这些组件状态的唯一明显有限的方法是使用诸如 onAction、getContent、getImage 事件之类的东西,而 IRibbonControl 元素几乎没有提供用于操作相关元素的功能(更不用说,这些函数中的大多数只运行一次,首次渲染时)。

所以我试图找到一种以编程方式访问这些 xml 功能区元素的方法。

0 投票
2 回答
1281 浏览

c# - 在代码中的 Excel 选项卡之间切换

无论如何在代码中的excel选项卡之间切换?

我正在创建和加载项,它将在某些条件下加载。然后我希望我的加载项选项卡在启动时被选为默认选项卡...

谢谢

编辑: 伙计们,我说的是功能区中的 TABS。例如,我想在启动时选择功能区中的“公式”选项卡。不是床单……