2012. február 25., szombat

Hogyan nézhetem meg az Excel által generált MDX-et?

Például az OLAP PivotTable Extensions nevű bővítménnyel. És ha nincs ilyen a gépen? Akkor természetesen PowerShell-el :)
  1. add-type -assemblyname "Microsoft.Office.Interop.Excel";  
  2. $xls = [System.Runtime.InteropServices.Marshal]::GetActiveObject("Excel.Application");  
  3. $xls.workbooks.item(1).Worksheets.item(2).PivotTables(1).MDX;  
Ha változik a pivot, csak az utolsó sort kell újra meghívni. Viszont a kimenet típusa betűleves, ezzel még kezdeni kell valamit.

Egy egyszerű megoldás lehet az MDX Studio Online (by Mosha Pasumansky), vagy elcsenhetjük a fent említett add-in trükkjét, ami Nick Medveditskov webservice-ét használja. Ezzel öt sorosra bővül a szkript:
  1. add-type -assemblyname "Microsoft.Office.Interop.Excel";  
  2. $xls = [System.Runtime.InteropServices.Marshal]::GetActiveObject("Excel.Application");  
  3. $mdx = $xls.Workbooks.item(1).Worksheets.item(2).PivotTables(1).MDX;  
  4. $mdxformatter = new-WebServiceProxy -uri http://formatmdx.msftlabs.com/formatter.asmx;  
  5. $mdxformatter.FormatAsPlainText($mdx);  
Na, így mindjárt más.

Megjegyzés: a Workbooks és a Worksheets után nem lehet elhagyni az Item elemet, az indexek 1-től kezdődnek.

Nincsenek megjegyzések:

Megjegyzés küldése