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;

posted @   delphi中间件  阅读(948)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
历史上的今天:
2013-01-10 datasnap 长连接、短连接
点击右上角即可分享
微信分享提示