OData WCF数据服务作为Excel中的源

时间:2014-02-20 00:21:17

标签: excel wcf odata expand dataservice

我有一个OData WCF数据服务,我使用Reflection Provider来公开数据。目前我公开了Environments的集合,它们具有以下结构:

{环境}
-name
-id
-Description
- 的 {}注册
--StartTime
--EndTime

,其中{UpdateTime} - ComplexType是时间的集合,当环境更新且此处的关系为1:N时。

我正在使用Excel从该OData服务生成一些报告。导入数据后,UpdateTime集合未显示在表中。我也尝试过对环境集合的扩展,但它对我也不起作用。我想到的唯一方法是将相关集合公开为实体类型并设置关系,但{UpdateTime}集合对它自己没有意义。

问题:有没有办法让ComplexTypes显示在Excel中?

谢谢!

2 个答案:

答案 0 :(得分:4)

我不确定您使用哪种功能从OData服务导入数据。但我猜你没有使用Power Query for Excel,因为我一直在使用它来导入包含这些扩展要求的数据,并且它的工作非常完美。

Power Query for Excel是Microsoft正式制作的Excel扩展程序,您可以在此处下载:http://www.microsoft.com/en-in/download/details.aspx?id=39379。它比默认安装Excel的“DATA”选项卡更强大,您可以对数据集进行大量的整形和合并。

安装完成后,它将作为新选项卡显示在Excel上,您可以轻松地从OData源导入数据,并在Power Query查询编辑器中展开包含集合的复杂类型。

抱歉,我没有足够的声誉来附加图片。但您可以导航到此页面作为示例:http://office.microsoft.com/en-in/excel-help/expand-a-column-containing-a-related-table-HA103993865.aspx

答案 1 :(得分:1)

据我所知,Excel应该可以导入复杂的值而不会出现问题。这是我做的:

  1. 在Excel中,转到数据 - >来自其他来源 - >来自OData数据Feed
  2. 对于数据Feed的位置,我输入了http://services.odata.org/v3/odata/odata.svc/Suppliers测试服务。每个供应商都有一个名为Address的复杂类型。
  3. 在Excel中,所有地址信息都显示正常。

    所以我猜你的服务或你提供给Excel的网址有问题。如果您从浏览器请求Feed,复杂值是否正确显示?