Creating Pivot-tables in Excel

Hi all,

I'ed like to use Excel's (2000) Pivot-tables to analyse data. To bad that
this fine feature doesn't support data from stored procedures (not even
without OLE..). So I wanted to feed the pivot's data with an Delphi
I got this far:

  appl  := createOleObject('excel.application.9');
  book  := appl.workbooks.add;
  sheet := book.sheets[1];

  rng  := Sheet.Range[Sheet.cells[2,2], Sheet.cells[2,2]];
  pivo := book.PivotCaches.Add(xlExternal);
  pivo.recordset := ADOQuery1.recordset;

But this raises {*word*193} OLE-exception at the "CreatePivotTable"-statement.
(btw: I tried the range-parameter in different ways). I would expect an
error at the "pivo.recordset := ADOQuery1.recordset"-statement.

Anyway, my question would be:
Is it possible what I'm trying to do (pivo.recordset :=
ADOQuery1.recordset)...and how?
Or is it possible to create an olap-cube from within Delphi and save it to
file, so it can be used by Excel?