Excel作为数据源?

时间:2012-02-06 16:32:55

标签: c# excel sharepoint-2010 excel-vba vba

我正面临一些巨大的挑战,一些excel表格是用90年代写的,用于一些财务计算。基本上有大约100种不同的excel表(结构,内容,公式,宏等不同),这需要集成到一个单独的应用程序中,从而使所有这些excels退役。

Excel工作表的一些功能:

  • 每个Excel工作表都有一些已定义数量的工作表,其中包含与之关联的公式和宏。这些宏是用VBA编写的,并以XLL的形式使用了大量的插件。

  • 每个Excel工作表还有一些用户定义的工作表,它们依赖于用户输入数据和预定义工作表来计算工具价格。最重要的是用户将数据输入到用户创建的工作表中,在预定义的工作表中引用。预定义工作表基于此计算某些内容,并在用户定义的工作表中再次引用结果。

我们正在考虑各种解决方法,如下所示:

  • 将Excel Services与Sharepoint 2010一起使用,将Excel工作表公开为Web服务,并编写一个客户端应用程序,该应用程序将执行用户定义的部分,然后与excel服务进行通信以获得结果。(它还必须写入excel服务中托管的预定义工作表)

  • 使用excel自动化(??)

我向你提出的问题是退出这些excels的最佳可行方法是什么?。我要做的就是写入excel单元格,让公式/宏在那里发挥作用来计算结果,取回结果。我们也非常热衷于不重新创建整个excel设置,即重新创建公式的/ addins,而不是整合它们。

任何建议都会非常感谢!!!

干杯, -Mike

2 个答案:

答案 0 :(得分:1)

我不熟悉Sharepoint,因此无法比较,但使用Excel自动化,确实可以打开工作表,在那里输入一些值并读取结果。它甚至可以直观地完成,好像有人在屏幕上打开Excel并在其中执行某些操作。如果您的旧纸张兼容,我会使用一些现代的.Net语言。

答案 1 :(得分:1)

如果我们忽略特定技术,您可以使用三种基本选项,但可以进行组合:

  1. 将现有Excel工作簿保留在后台并提供新的前端。
  2. 将VBA迁移到某个新工具。
  3. 与您的用户确认他们今天和明天所需的功能并实施该功能。
  4. 如果选项1没有给你最便宜和最快的整合,我会感到惊讶。缺点是你仍然依赖那些旧的Excel工作簿。它们是基于早期版本的Excel还是已经向前迁移?如果没有,他们是否使用最新的硬件和操作系统?他们会使用明天的硬件和操作系统吗? Microsoft为维护向后兼容性做出了巨大努力,但这并不意味着它们实现了100%的向后兼容性,也不意味着它们可以或将来会保持向后兼容性。

    选项2是否可行?你知道每个工作簿的作用吗?可以将VBA迁移/转换为新工具但是加载项呢?你有源吗?你有文件吗?依赖文档的麻烦在于,一些错误会成为人们使用的无证功能。

    使用选项3,您无需担心带来任何进展。您为今天和明天选择了正确的工具,并使用它来实现您需要的功能。你必须要小心点。如果你询问用户是否需要X设施,他们会说是的。要问的问题是:你使用X设施做什么?

    这些选项中的每一个都有风险吗?您是否有获取风险的信息?您能否对与这些选项相关的工作和风险进行量化?只有你能够选择一种方法,然后才能选择技术。