2012-06-19 441 views
1

我們的目標是到Excel單元格鏈接到SQL分析服務器2008通過MDX生成數據透視表

用戶不想使用Excel數據透視表的連接到立方體,因爲他們需要做的數據計算。這會導致大量問題,在擴展和摺疊數據透視表分層結構時,主要引用的單元格將變爲#Ref's。我向他們展示瞭如何關閉+/-以使其只能讀取,但並不理想。

其次,我們不喜歡數據透視表生成工具,我們都傾向於使用OWC製作的SQL 2005,2008 depreciated in sql2012中的多維數據集瀏覽器,它也是depriciated in Excel 2007 onwards

所以我有點醃製。我一直在研究生成MDX的工具堆。幾個突出是Mosha Pasumansky's awesome MDX Studiohttp://silverlight.galantis.comRanet Olap Library Components

我現在想實現的是設置Excel單元格與MDX的。具體方法如下:

  1. 的Excel>數據標籤>連接>連接到一個立方體
  2. 透視表,使用現有的連接
  3. 將數據添加到數據透視表中的數據透視表
  4. 雙擊某個值向下鑽取,會創建一個新的工作表,其中包含數據的二維表示。
  5. 數據選項卡>連接>選擇由深度鑽取創建的連接。
  6. 單擊屬性>定義,並粘貼在命令文本字段中的MDX查詢> OK

該填充細胞與多維數據集的數據,但它只有一排,我無法弄清楚如何使多行和層次,看到對話框其唯一的一行數據背後:

enter image description here

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

enter image description here

我知道這是一個很長的嘗試,試圖獲得這個工作,我懷疑它甚至可能,但我已經沒有想法了。

我試過PowerPivot工具,它很糟糕,它的多維數據集瀏覽器不能像SQL立方體瀏覽器那樣工作,只能添加列!它就像一個倒退到標準數據透視表的步驟。

所以在這一點上,我試圖在Excel中建立一個漂亮的數據透視表「瀏覽器」 - 它似乎沒有市場上的任何東西?這就是爲什麼我訴諸第三方工具來獲得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 

Unfortunaly的pvt.MDX屬性爲只讀!

如果你有到這裏感謝您的閱讀,任何想法最歡迎:)

+0

您是否發現了一種從MDX生成數據透視表的新方法? –

回答

0

你可以建立一個Excel加載項(見this other post)。

該插件可能基於ADOMD.NET來連接立方體並使用您自己的MDX查詢進行查詢。

鑑於CellSet,您可以提取給定的單元格並將其插入Excel工作表中的任何需要的地方。

+0

感謝您的回答,請使用Excel和VSTO標籤查看我的問答歷史記錄。我有一個策略來捕獲Ranet.Olap控件中的層次結構的展開和摺疊狀態。當WPF版本可用時,我將在VSTO控件中實現此功能。將會有驗證和刷新按鈕將多維數據集瀏覽器/數據透視表控件與SSAS同步。 –

0

RANET PivotGrid可以在層次結構中 (成員組模式) MDX查詢結果可以被導出到Excel顯示數據非分組。但是,它不會與數據公式相關聯。處理Mdx查詢並生成Excel文件可能在代碼中。

相關問題