【问题标题】:Question on Excel document level deploymentExcel文档级部署问题
【发布时间】:2010-11-30 15:03:48
【问题描述】:

我们有一个 VSTO excel 文档级项目。作为该项目的一部分创建的 excel 文档有一个工作表(名为 Start Sheet),其中有一些 winforms 控件(如按钮、复选框等),还有许多其他主要包含数据的工作表。我们 使用 Windows Installer 将此解决方案部署到客户端计算机。 excel版本为excel 2007和VSTO 2010。

每当我们的解决方案部署在客户的机器上时,客户通常会在他们的机器上自定义 excel 文档。除了我们添加的工作表之外,他们还会添加一些新的工作表。他们还安装了一些插件,如 PI,将数据引入这些工作表。现在我们通常会收到客户的增强请求,其中大部分增强 正在向 excel 文档添加新工作表。几乎 99% 的请求都在添加新工作表。每张表后面的代码是一些业务逻辑,主要由开始表上的winform控件触发。

现在,他们每次安装解决方案的增强版本,最终都会得到一个新的 excel 文档,然后他们必须再次对其进行自定义(例如添加一些工作表、编写宏等),这对他们来说是很多工作.这几天对我们来说是个大问题 因为我们的客户根本不喜欢它。

有没有一种方法可以让他们部署新版本的解决方案并且仍然保持他们的 excel 文档自定义不变?我在 VSTO 方面的经验并不多,我们将不胜感激。

【问题讨论】:

  • 您的 vsto 文档级程序集是添加到 GAC 中,还是由 Excel 通过清单 (sxs) 访问?如果文档级程序集与 xlsx 并排部署,您的安装程序不能将新的 .vsto、myassembly.dll.manifest 和 myassembly.dll 推送到目标目录吗?

标签: excel deployment vsto


【解决方案1】:

我会改变项目的设计,使代码和模板元素(表格、格式、公式、控件、封装数据等)与用户的 Excel 文档分开,但可以生成或修改用户文档。 EUI 将是 Excel 菜单/工具栏或功能区选项卡。
通常您会通过创建 Excel 插件(XLA、XLL、COM 或自动化插件)来实现。

【讨论】:

  • 您好查尔斯,非常感谢您的回复。但是,如果我们将设计更改为 Excel Addin 类型的项目,那么当他们安装它时,他们启动的每个 excel 实例都将具有我们放入的功能(如工作表或 UI 控件等)。不是吗?
  • 工作表等都隐藏在插件中。您只需公开一个顶级菜单,其中包含以下下拉命令:创建新的特殊工作簿、添加工作表 TypeA 等。如果您愿意,您可以通过仅以创建特殊工作簿命令开始的插件变得更聪明,但动态识别用户何时打开您的特殊类型的工作簿(使用隐藏名称),然后动态添加更多菜单命令。这种方法的另一个优点是您可以轻松更新插件。
【解决方案2】:

另一种选择是有一个升级例程,在安装期间复制他们的旧文档,用新文档替换它,然后遍历旧副本以获取新工作表以及不带过来的内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 2022-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多