目标是将 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.com的Ranet Olap 库组件是其中的佼佼者
我现在想要实现的是使用 MDX 设置 Excel 单元格。就是这样:
- Excel > 数据选项卡 > 连接 > 连接到多维数据集
- 数据透视表,使用现有连接
- 将数据添加到数据透视表
- 双击数据透视表中的一个值以向下钻取,将创建一个新的工作表,其中包含数据的二维表示。
- 数据选项卡 > 连接 > 选择由 excel 创建的连接以进行向下钻取。
- 单击属性 > 定义并在命令文本字段中粘贴 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 属性是只读的!
如果你到这里感谢阅读,任何想法都是最受欢迎的:)