Is it possible to connect to a PowerPivot model in an Excel .xlsx file? (Not hosted on a SharePoint site... just the local file).
It must be, since Tableau can do it
You can build a VSTO addin.
Here's a site that helps explain working with PowerPivot and VSTO.
http://blogs.msdn.com/b/analysisservices/archive/2011/08/04/how-to-build-a-vsto-based-powerpivot-workbook.aspx
Short answer:
Long answer:
References/Credits:
Details:
Like @gobansaor, we found that starting with a workbook which already had a connection to the PP cache was helpful (necessary?). Before connecting to the PP cache via AMO for instance, we make sure the connection is alive:
ThisWorkbook.Connections["PowerPivot Data"].Reconnect()
or
ThisWorkbook.Connections["PowerPivot Data"].Refresh()
The connection string template we used for AMO was: Provider=MSOLAP;Data Source=$Embedded$;Locale Identifier=1033;Location={0};SQLQueryMode=DataKeys
and we filled that in with ThisWorkbook.FullName
Following @gobansaor, we connected to the cube via ADO using:
ADODB.Recordset recordSet = new ADODB.Recordset();
recordSet.Open("SELECT [Measures].[Min of Field1] ON COLUMNS FROM [Model]",
ThisWorkbook.Connections["PowerPivot Data"].OLEDBConnection.ADOConnection);
Better yet, take a look at the C# source code of the Excel Refresh Service on codeplex - which demonstrates how to open and manipulate PowerPivot cubes that are embedded in Excel workbooks.
Be aware of what you're getting into... Excel automation has many quirks and tends to be unstable when used as a conduit into a PowerPivot cube.