Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Excel PivotTableWizard (https://www.delphipraxis.net/48628-excel-pivottablewizard.html)

bart57 28. Jun 2005 10:01


Excel PivotTableWizard
 
Hallo,

weiß jemand wie man die Parameter an ActiveSheet.PivotTableWizard übergeben muß ?
Habe es so probiert, geht aber leider nicht... :-(

Delphi-Quellcode:

       FExcelWorksheet.PivotTableWizard(xlDatabase,
       '"'''+sXLSTemplateFile+' Q_PTI ''!R1C1:R'+inttostr(qu.recordcount+1)+'C'+
        inttostr(qu.FieldCount)+'"');
FExcelWorksheet ist mein Worksheet, sXLSTemplateFile ist die XLS-Datei, Q_PTI
ist meinen Register-Blatt wo die Daten für die Pivot-Tabelle sind!

Danke im Voraus

tHeRiAn 28. Jun 2005 10:35

Re: Excel PivotTableWizard
 
Moin,
ich zumindest zeichne mir erst immer ein Macro auf und hole mir dann die benötigten Codesnippets raus...Solltes du auch mal zuvor versuchen. Falls ich dich da richtig verstanden habe

bart57 28. Jun 2005 11:56

Re: Excel PivotTableWizard
 
Hallo,

habe ich auch gemacht! geht aber nicht... :-(

Danke

omata 29. Jun 2005 01:11

Re: Excel PivotTableWizard
 
Moin,

versuch doch mal folgendes...

Delphi-Quellcode:

uses OleServer, Excel2000;

procedure TFMain.ButtonClick(Sender: TObject);
var Excel:TExcelApplication;
    lcid, Zeile:integer;
    Workbook:_Workbook;
    Sheet:Variant;
    Zeiger:Variant;
    Spalte:char;
begin
  Excel:=TExcelApplication.Create(Self);
  try
    lcid:=GetUserDefaultLCID;
    Excel.Connect;
    Excel.Visible[lcid] := true;
    Excel.UserControl:=true;

    Workbook:=Excel.Workbooks.Add(EmptyParam, lcid);

    Sheet:=Workbook.ActiveSheet;
    Zeiger:=IDispatch(Excel.Cells.Range['A1', 'A1']);
    Zeiger.Value:='Spalte1';
    Zeiger:=IDispatch(Excel.Cells.Range['B1', 'B1']);
    Zeiger.Value:='Spalte2';
    Zeiger:=IDispatch(Excel.Cells.Range['C1', 'C1']);
    Zeiger.Value:='Spalte3';

    for Zeile:=2 to 10 do
      for Spalte:='A' to 'C' do begin
        Zeiger:=IDispatch(Excel.Cells.Range[Spalte+inttostr(Zeile), Spalte+inttostr(Zeile)]);
        Zeiger.Value:=random(10)+1;
      end;
    Sheet.PivotTableWizard(xlDatabase, IDispatch(Excel.Cells.Range['A1', 'C10']));
  finally
    Excel.Disconnect;
    Excel.free;
  end;
end;
MfG
Thorsten

bart57 29. Jun 2005 09:23

Re: Excel PivotTableWizard
 
Hallo,

hat sich aber erledigt, so funktionniert es:

Delphi-Quellcode:
    FExcelWorksheet.PivotTableWizard(xlDatabase,
     aWorksheetSource+'!R1C1:R'+inttostr(qu.recordcount+1)+'C'+
      inttostr(qu.FieldCount));
Danke trotzdem!


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:17 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz