2012-02-06 93 views
0

我正面临着一些在90年代为某些财务计算书写的Excel表单的巨大挑战。基本上有大约100个不同的Excel表格(不同的结构,内容,公式,宏等),这需要集成到一个单一的应用程序,从而退役所有这些擅长。Excel作为数据源?

一些excel工作表的特征:

  • 每个练成片具有一些定义的与它相关联的公式和宏张数。这些宏是用VBA编写的,并且以XLL的形式使用了大量的插件。

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

我们正在考虑的各种方法如下decommision这样的:

  • 与2010年的Sharepoint使用Excel服务,暴露Excel工作表作为Web服务和编写客户端应用程序,它会做的用户定义的部分,然后与用于结果Excel服务通信。(它也将具有写入在Excel服务托管的所述预定表)

  • 使用Excel自动化(??)

我给你的问题是什么是最好的可行途径这里退役那些过人之处?我。所有要做的就是写入Excel单元格,让公式/宏在那里打球的一部分来计算结果,得到支持结果。我们也非常热衷于不重新创建整个excel设置,即重新创建公式/插件,而是将它们合并。

任何意见将不胜感激!

干杯, -Mike

+0

Sharepoint上的Excel Services将是最“有利于职业生涯”的方法。有这种经验的程序员有很多工作可用。 – jfrankcarr 2012-02-06 16:37:56

+0

VBA函数不会在服务器上运行,所以您需要首先转换所有这些函数。在我看来,Excel Services服务的致命弱点就在于此。 – 2012-02-06 16:42:19

+0

@Paul:我们该怎么做?有很多代码作为VBA代码进入了Excel表格,有没有更简单的方法将它们转换成某种东西并使用它? – Mike 2012-02-06 17:00:46

回答

1

如果我们忽略特定技术,有三个基本的选择,虽然组合:

  1. 保留现有的Excel工作簿中的背景,并提供一个新的前端。
  2. 将VBA迁移到某个新工具。
  3. 识别你的用户,他们今天和明天需要的功能并实现它。

如果选项1没有给您提供最便宜和最快速的整合,我会感到惊讶。缺点是您仍然依赖于那些旧的Excel工作簿。它们是基于早期版本的Excel还是已经迁移?如果不是,他们是否使用最新的硬件和操作系统?他们会使用明天的硬件和操作系统吗? Microsoft为保持向后兼容性付出了巨大的努力,但这并不意味着它们实现了100%的向后兼容性,也未表示它们将来可以或将保持向后兼容性。

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

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

这些选项都有风险吗?你有没有获取风险的信息?您能否计算与这些选项相关的工作和风险?只有当你能够,你才能够选择一种方法,然后选择一种技术。

+0

谢谢Tony.I想到Option 1,但问题在于,excel是一个你不能保留在后台的工具,让用户在新界面上运行。每次你对excel进行修改时,它都会一直提示你保存。或者我错过了一些东西,有没有办法让excel工作簿保持在后台,让用户玩一个全新的视觉效果并修改excel工作簿,并从中读取值? – Mike 2012-02-07 11:29:21

+0

本机Excel专为直接用户控制而设计。许多VBA是为了增强用户体验而编写的,并假设用户在那里回答问题。但是VBA不一定要这样写。例如,除非被告知不要,'Workbook.Close'会询问用户是否保存工作簿。但是VBA可以在关闭之前保存工作簿。或'Workbook.Close'具有参数:“不保存”或“不询问保存”。这将涉及到更新VBA以消除Excel提出用户问题的情况。 _继续下一评论。_ – 2012-02-07 14:03:45

+0

另一种方法是拦截问题并自行回答问题或以非Excel方式询问用户的前端。你知道在这些方法之间做出选择吗?我希望我不公平,但给人的印象是,你希望在确定问题的范围和大小之前选择方法和技术。 – 2012-02-07 14:04:16

1

我不熟悉与SharePoint,所以无法比较,但与Excel自动化真的是可以打开一个表,输入一些值存在并读取结果。它甚至可以在视觉上完成,就像有人在屏幕上打开Excel并在其中执行某些操作一样。如果您的旧工作表兼容,我会使用一些现代.Net语言。

+0

这是另一个要求,即Excel表格应该完全隐藏在用户面前,他应该只能够使用他创建的表单/视觉效果。对于自动化方法,我们是否可以隐藏预定义表单,向其写入值,让公式/宏计算出某些内容,然后再读取它? – Mike 2012-02-06 17:02:45

+0

我在想你打开完全隐藏的Excel,并允许用户与全新的软件交互。如果您希望用户与Excel进行交互,恐怕他能够打开您隐藏的任何工作表(如果他知道如何)。 – Dims 2012-02-06 17:22:09

+0

如何让Excel完全隐藏用户,但仍然对其进行修改,刷新并从中读取值?我尝试了自动化的方式,并且我可以看到它每次进行仪式操作时都会提示保存,或者我完全错过了什么? – Mike 2012-02-07 11:31:07