delphi 控制 EXCEL 数据透视表

虽说报表多又难做,做报表相当容易。

做报表也可以偷懒的,超级实用又省事。只需要做一个报表,这个报表里面包括几乎所有的数据字段,然后将查询到的数据导出到

excel中,利用excel自带的“数据透视”功能,客户只需要点几下鼠标就可以生成自己所需要的报表。通过这种方法,一个报表可以产生n个

报表。通过几行代码可以操纵excel打开“数据透视”功能。冒必要在自己的程序里面做数据透视功能了,要做到excel数据透视那种功能效果,

还是要花费不少时间的。

function GetExcelCol(iCol: integer): string;

begin

Result := '';

case iCol of

1: Result := 'A';

2: Result := 'B';

3: Result := 'C';

4: Result := 'D';

5: Result := 'E';

6: Result := 'F';

7: Result := 'G';

8: Result := 'H';

9: Result := 'I';

10: Result := 'J';

11:Result :='K';

12:Result :='L';

13:Result :='M';

14:Result :='N';

15:Result :='O';

16:Result :='P';

17:Result :='Q';

18:Result :='R';

19:Result :='S';

20:Result :='T';

21:Result :='U';

22:Result :='V';

23:Result :='W';

24:Result :='X';

25:Result :='Y';

26:Result :='Z';

end;

end;

procedure TfrmReportSale.cxButton2Click(Sender: TObject); var iRows, iColumns: Integer; bb: OleVariant; s:string; begin if (not cds.Active) or cds.IsEmpty then Exit; if SaveDialog1.Execute then begin ExportGridToExcel(SaveDialog1.FileName, cxGrid1);

ExcelApp.Visible := True; WorkBook := ExcelApp.WorkBooks.Open(SaveDialog1.FileName); iRows := WorkBook.WorkSheets[1].UsedRange.Rows.Count - 1; iColumns := WorkBook.WorkSheets[1].UsedRange.Columns.count; s:=UntSysConst.GetExcelCol(iColumns);

bb := ExcelApp.ActiveWorkbook.PivotCaches.Add(xlDatabase, '销售报表!A1:' + s + inttostr(iRows)); bb.CreatePivotTable('', '销售报表'); ExcelApp.ActiveSheet.PivotTables['销售报表'].SmallGrid := False; application.Minimize; end; end;