3

我需要为excel开发一个插件。它的行为应该类似于 Eclipse 插件。它应该可以作为上下文相关菜单使用,应该可以访问当前打开的电子表格内容、图表内容等。

我看到了以下用于开发 Excel 加载项的链接:http: //msdn.microsoft.com/en-us/library/office/aa730920 (v=office.12).aspx#office2007excelXLL_DevelopingXLLs (使用 C & C++ 和XLL SDK)。

这是为 Excel 开发插件的唯一选择吗?

4

4 回答 4

3

微软网站上有很多关于创建加载项的信息。一些人建议阅读以指出正确的方向。

http://msdn.microsoft.com/en-us/library/ms268878.aspx

http://support.microsoft.com/kb/302901

http://msdn.microsoft.com/en-us/library/aa289518(v=vs.71).aspx

甚至在stackoverflow上的一些东西 使用C#为Excel创建加载项

于 2012-10-11T20:03:41.050 回答
2

您的加载项将做什么?在 Excel 的内置 VBA 中可能最容易做到这一点。

于 2012-10-27T15:08:03.877 回答
2

有三种不同的插件(插件)技术:-

  • VBA。内置于 Excel 基础。最简单的是,您甚至可以通过击键记录宏。最快的。部署很简单。最好的。被微软认为已过时。你需要写 EndIf 而不是 } 这对许多人来说是一个交易杀手。

  • .Net(C# 或 VB)。没有那么好的开发环境。需要 Visual Studio + 接口技术、VSTO(最差)、ExcelDNA 或 Belerus 系统(可能是最好的)。部署困难。由于 COM 使用,速度较慢。是 VBA 的替代品,但没有过时。

  • JavaScript。最新和最伟大的。很时尚。开发非常困难的客户端/服务器环境。部署非常困难。非常低效。有限的 API。

于 2019-02-02T23:51:44.823 回答
2

正如其他人所提到的,除了 XLL 之外,还有三种基本的 Office 技术,它们是 VSTO、VBA 和 Office JS API。

我与这三者一起工作的个人经验是,无论是 VB.NET 还是 C#,VSTO 都是最强大的,因为它们本质上是相同的语言。这两种语言的未来路线图将出现分歧,因为 C# 将获得更高端的功能,而 VB.NET 将被定位为对我们来说容易,但就这一点而言,两者在 Excel 编程方面几乎没有区别。VSTO 将提供预期的功能,具有用于版本控制、发布、自动更新和回滚的内置过程,并且能够在 .NET 库中执行任何操作。

VBA 是 Office 的原始编程语言,大多数示例都基于此。您可以使用它创建相当复杂的功能区和上下文菜单,但也就是说,它将无法进行异步/线程操作,并且对于与服务相关的工作来说是轻量级的。也就是说,如果您不需要此类操作,VBA 可以工作,但您应该有一些管理版本控制和代码管理的计划,这不是 VBA 领域的一部分,将完全由您管理。

Office API 就像用 Office 编程网页,定义和使用 JS 进行操作——较新的一种利用 React 和 Angular——将 HTML 和 CSS 用于面板。我最近转换 Outlook VSTO 加载项的经验令人沮丧,因为 VSTO/VBA 中的许多易于实现的功能在 JS 中不可用或者更复杂。体验和界面虽然相当不错,但比典型的 WinForm 更好看,而且它能够在基于 Web 的办公客户端中工作,这与 VSTO 不同。

您提供的 XLL 链接用于 C++ 的包装器。这可能比任何其他类型都更复杂,虽然降低的力量有,但你需要有经验和技能才能让它变得有价值。

概要:

  • 桌面:全部(VSTO、VBA、JS)
  • 网络/移动:仅限 JS
  • 轻松升级和代码管理:VSTO、JS
  • UI: JS is better looking, VSTO/VBA is WinForm-looking
  • Skills: HTML/CSS/JS (Web) vs VBA/WinForms vs VSTO/WinForms (C#/VB.NET)
  • Examples: VBA, VSTO, JS, in decreasing order
于 2019-02-04T19:10:52.260 回答