Excel数据访问

时间:2011-07-11 09:44:01

标签: .net wcf excel odata wcf-data-services

我正在尝试设计一个用于访问Excel 2010(和以前版本)中的数据的解决方案。一些高级要求/约束​​如下:

  • 数据存储在数据库中。
  • 用户不应该直接连接到数据库。
  • 他们可能想要的数据访问类型将被其他应用程序使用。
  • 用户希望通过直接导入工作表以及通过VBA来处理数据。

据我所知,我想到了以下

  • WCF服务
    • 可以被其他应用程序使用
    • 会引入延迟(如果这是一个问题)
    • 无法在没有VBA的工作表中直接使用?
  • WCF数据服务
    • 可以被其他应用程序使用
    • 公开(通过EF)和使用(RESTful,OData)
    • 的模型
    • 会引入延迟(如果这是一个问题)
    • 可直接使用PowerPivot
    • 无法在没有VBA的工作表中直接使用?
    • 仅与没有VBA的2010兼容
  • 网络查询
    • 需要更多努力来构建(需要将ASP.NET外观放在数据库前面)
    • 可以直接在没有VBA的工作表中使用
    • 与所有必需的Excel版本兼容
    • 为其他应用程序公开数据的机制不佳(非Excel)

我开始认为没有一种尺寸适合所有解决方案都不存在,并且必须为直接工作表访问创建一个接口,并为其他所有内容创建另一个接口,无论是SOAP还是REST类型的数据服务。

有没有人有任何建议/经验?

由于

1 个答案:

答案 0 :(得分:0)

我认为你可以通过一个接口逃脱,只暴露两个端点,一个用于SOAP,一个用于REST(或者你甚至不需要SOAP端点?)。这对我来说似乎是两全其美的。听起来它符合您的要求(Excel / PowerPivot可以使用RESTful服务),并且会阻止您复制代码。

看看this SO question for an example