簡體   English   中英

通過MDX生成數據透視表

[英]Generate Pivot Tables via MDX

目標是將Excel單元格鏈接到SQL Analysis Server 2008。

用戶不想使用Excel數據透視表連接到多維數據集,因為他們需要對數據進行計算。 這會引起很多問題,在擴展和折疊數據透視表層次結構時,最初引用的單元格會變成#Ref's 我向他們展示了如何關閉+/-使其只讀,但這並不是理想的選擇。

其次,我們不喜歡數據透視表生成工具,我們都更喜歡使用OWC 在sql2012中貶值的 SQL 2005、2008中的多維數據集瀏覽器, 在Excel 2007及以后版本中貶值了

所以我有點咸菜。 我一直在研究大量工具來生成MDX。 Mosha Pasumansky的超棒MDX Studiohttp://silverlight.galantis.comRanet Olap Library Components表現出色

我現在想要實現的是用MDX設置Excel單元格。 這是如何做:

  1. Excel>數據選項卡>連接>連接到多維數據集
  2. 數據透視表,使用現有連接
  3. 將數據添加到數據透視表
  4. 雙擊數據透視表中的值以進行向下鑽取,將創建一個新的工作表,其中包含數據的二維表示。
  5. 數據標簽>連接>選擇由excel創建的用於向下鑽取的連接。
  6. 單擊屬性>定義,然后將MDX查詢粘貼到命令文本字段中>確定

這將使用多維數據集數據填充單元格,但是只有一行,我無法弄清楚如何使其成為多行和分層的,並查看對話框后面如何僅一行數據:

在此處輸入圖片說明

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

在此處輸入圖片說明

我知道嘗試進行這項工作有很長的路要走,我懷疑它是否有可能,但我的想法已經用光了。

我嘗試了PowerPivot工具,它很糟糕,它的多維數據集瀏覽器不能與SQL Cube瀏覽器以相同的方式工作,只能添加列! 就像向后退回標准數據透視表一樣。

因此,在這一點上,我已經結束嘗試在內置Excel中找到一個不錯的數據透視表“瀏覽器”了-市場上似乎沒有任何東西嗎? 這就是為什么我求助於第三方工具來獲取MDX並將其插入Excel(以編程方式通過VSTO)的原因。

運氣不好但我想提到的另一件事是顯示Excel 2007 PivotTable的MDX查詢

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屬性是ReadOnly!

如果您到這里感謝您的閱讀,則歡迎您提出任何建議:)

您可以構建一個Excel加載項(請參閱其他文章 )。

此加載項可能基於ADOMD.NET來連接多維數據集,並使用您自己的MDX查詢對其進行查詢。

給定一個CellSet ,您將能夠提取給定的單元格並將其插入到Excel工作表中所需的位置。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM