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

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

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;

delphi 控制 EXCEL 数据透视表的更多相关文章

  1. VSTO学习笔记(十四)Excel数据透视表与PowerPivot

    原文:VSTO学习笔记(十四)Excel数据透视表与PowerPivot 近期公司内部在做一种通用查询报表,方便人力资源分析.统计数据.由于之前公司系统中有一个类似的查询使用Excel数据透视表完成的 ...

  2. C# 操作Excel数据透视表

    一.概述 数据透视表(Pivot Table)是一种交互式的表,可以进行某些计算,如求和与计数等,可动态地改变透视表版面布置,也可以重新安排行号.列标和页字段.当改变版面布置时,数据透视表也会按照新的 ...

  3. Java 创建 Excel 数据透视表

    Excel 数据透视表具有强大的数据处理功能,能够使表格中的数据更加直观化.使用Excel 数据透视表,能方便用户快速的排序. 筛选各种数据,同时也能满足用户对不同数据汇总的需求.本文将介绍如何在Ja ...

  4. 使用excel 数据透视表画图

    ①    打开Excel,选中需要制表的数据,点击“插入”->“数据透视表”          ②    出现下列对话框,点击“确定”          ③    再新的“sheet”表内对“数 ...

  5. 妙用Excel数据透视表和透视图向导,将二维数据转换为一维数据

    项目中,每年都会有各种经销商的各种产品目标数据导入,经销商和产品过多,手工操作过于单调和复杂.那有没有一种方式可以将复杂的二维数据转换为一维数据呢? 有,强大的Excel就支持此功能. 常用Excel ...

  6. Excel数据透视表的日常应用技巧

    对工作表中数据进行统计是经常需要的.一般情况我们都是使用菜单命令或函数来进行数据的统计的.可是如果要统计的工作表中记录很多,而且需要统计的项目也很多时,使用这种方法就显得力不从心了.请问还有什么更好的 ...

  7. Excel数据透视表

    Excel中每列是一个字段,每行是一条记录. 值字段设置,双击更改统计方法. 双击透视表中的数据可以看具体是哪些记录贡献的这些数据. 显示报表筛选页,生成多个工作簿.

  8. Excel应用程序如何创建数据透视表

    原文作者:andreww 原文链接: http://blogs.msdn.com/andreww/archive/2008/07/25/creating-a-pivottable-programmat ...

  9. Excel学习 -- 数据透视表功能

    Excel -- 数据透视表基础 数据透视表(Pivot Table)是一种交互式的表,可以进行某些计算,如求和与计数等.所进行的计算与数据跟数据透视表中的排列有关.    之所以称为数据透视表,是因 ...

随机推荐

  1. iOS序列化与反序列化

    1到底这个序列化有啥作用? 面向对象的程序在运行的时候会创建一个复杂的对象图,经常要以二进制的方法序列化这个对象图,这个过程叫做Archiving. 二进制流可以通过网络或写入文件中(来源于某教材的一 ...

  2. 一些常用的jQuery插件

    1. X-editable 这个插件能够让你在页面上创建可编辑的元素.它能够使用任何引擎(bootstrap.jquery-ui.jquery),并且包含弹出式和内联模式. 2. Garlic.js ...

  3. [转载]C# 中对html 标签过滤

    private string FilterHTML(string html) { System.Text.RegularExpressions.Regex regex1 = new System.Te ...

  4. WebKit Web Inspector增加覆盖率分析和类型推断功能

    WebKit中的Web Inspector(Web检查器)主要用于查看页面源代码.实时DOM层次结构.脚本调试.数据收集等,日前增加了两个十分有用的新功能:覆盖率分析和类型推断.覆盖率分析工具能够可视 ...

  5. Where is the ActiveX Project Type for Delphi 10.1 Berlin

    n 10.1 Berlin the ActiveX project types are missing from the New Items Window under Delphi. They are ...

  6. 一个Redis实现的分布式锁

    import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.data.redis.conne ...

  7. 学习笔记-[Maven实战]-第二章:Maven安装和配置

    在windows上安装Maven 1.检查JDK安装:在CMD下运行以下命令来检查JAVA安装情况: 命令: C:\Documents and Settings\Administrator>ec ...

  8. 【HDOJ】1196 Lowest Bit

    水题,原理是计算机组成原理中的负数的补码的求码.利用按位与可解. #include <iostream> using namespace std; int main() { int n; ...

  9. Oracle Java SE远程安全漏洞(CVE-2013-5878)

    漏洞版本: Oracle Java SE 7u45 Oracle Java SE 6u65 漏洞描述: BUGTRAQ ID: 64927 CVE(CAN) ID: CVE-2013-5878 Jav ...

  10. [HDU 1520] Anniversary party

    Anniversary party Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others ...