1

目标是将 Excel 单元格链接到 SQL Analysis Server 2008。

用户不想使用 Excel 数据透视表连接到多维数据集,因为他们需要对数据进行计算。#Ref's这会导致大量问题,在展开和折叠数据透视表层次结构时,主要引用的单元格会变成。我向他们展示了如何关闭 +/- 以使其只读,但这并不理想。

其次,我们不喜欢数据透视表生成工具,我们都更喜欢 SQL 2005 中的 Cube Browser,2008中使用 OWC 制作的 sql2012 中贬值了,而 Excel 2007 起也贬值了。

所以我有点苦恼。我一直在研究大量生成 MDX 的工具。Mosha Pasumansky 的出色MDX Studio和http://silverlight.galantis.comRanet Olap 库组件是其中的佼佼者

我现在想要实现的是使用 MDX 设置 Excel 单元格。就是这样:

  1. Excel > 数据选项卡 > 连接 > 连接到多维数据集
  2. 数据透视表,使用现有连接
  3. 将数据添加到数据透视表
  4. 双击数据透视表中的一个值以向下钻取,将创建一个新的工作表,其中包含数据的二维表示。
  5. 数据选项卡 > 连接 > 选择由 excel 创建的连接以进行向下钻取。
  6. 单击属性 > 定义并在命令文本字段中粘贴 MDX 查询 > 确定

这会用多维数据集数据填充单元格,但它只有一行,我不知道如何使它成为多行和分层,看看对话框后面是如何只有一行数据:

在此处输入图像描述

在生成 MDX 查询的工具中,它是多行的:

在此处输入图像描述

我知道尝试使这项工作正常进行是很长的一段时间,我什至怀疑它是否可能,但我已经没有想法了。

我尝试了PowerPivot工具,它很糟糕,它的多维数据集浏览器与 SQL 多维数据集浏览器的工作方式不同,您只能添加列!这就像倒退到标准数据透视表。

所以在这一点上,我已经试图在 Excel 中找到一个不错的数据透视表“浏览器”——市场上似乎没有任何东西?这就是为什么我求助于第 3 方工具来获取 MDX 并插入 Excel(通过 VSTO 以编程方式)。

我尝试的另一件事没有运气,但我想我会提到的是Display the MDX query of an Excel 2007 PivotTable

Private Sub Workbook_Open()
   Dim ptcon As CommandBar

   'See the following for list of menus in excel
   'http://support.microsoft.com/support/kb/articles/Q213/5/52.ASP
   'Title: XL2000: List of ID Numbers for Built-In CommandBar Controls
   Set ptcon = Application.CommandBars("PivotTable context menu")

insertDisplayMDX:
   Dim cmdMdx As CommandBarControl
   For Each btn In ptcon.Controls
       If btn.Caption = "MDX Query" Then GoTo doneDisplayMDX
   Next btn

   ' Add an item to the PivotTable context menu.
   Set cmdMdx = ptcon.Controls.Add(Type:=msoControlButton, temporary:=True)

   ' Set the properties of the menu item.
   cmdMdx.Caption = "MDX Query"
   cmdMdx.OnAction = "DisplayMDX"

doneDisplayMDX:

End Sub

'And this is the DisplayMDX subroutine, that you can insert in a separate module.

Sub DisplayMDX()
    Dim mdxQuery As String
    Dim pvt As PivotTable
    Dim ws As Worksheet

    Set pvt = ActiveCell.PivotTable
    mdxQuery = pvt.MDX

    ' Add a new worksheet.
    Set ws = Worksheets.Add
    ws.Range("A1") = mdxQuery
End Sub

不幸的是 pvt.MDX 属性是只读的!

如果你到这里感谢阅读,任何想法都是最受欢迎的:)

4

2 回答 2

0

Ranet PivotGrid can display data non grouping in a hierarchy (Members Group Mode) MDX query results can be exported to Excel. However, it will not be associated with data formulas. Process the Mdx query and generate Excel-file may be in code.

于 2013-03-17T17:09:32.570 回答
0

您可以构建一个 Excel 插件(参见其他帖子)。

此插件可能基于ADOMD.NET来连接多维数据集并使用您自己的 MDX 查询对其进行查询。

给定一个CellSet,您将能够提取给定的单元格并将其插入 Excel 工作表中需要的任何位置。

于 2012-06-22T22:08:23.293 回答