知识大全 利用剪贴板实现高速导出数据到Excel

Posted

篇首语:生当作人杰,死亦为鬼雄。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 利用剪贴板实现高速导出数据到Excel相关的知识,希望对你有一定的参考价值。

利用剪贴板实现高速导出数据到Excel  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  在很多的时候 我们需要将我们的数据导出到Excel中进行加工 在Access中有现成的工具可以实现 可是在Delphi中却偏偏没有 无论如何我们需要这么一个工具 那么 事不宜迟 细细一想 最好的方法莫过于直接在程序中按照Excel的格式生成Excel文件 使用Ole技术直接调用Excel实例 由于第一种方法技术实现过于复杂 好在一般的计算机上已经安装了Office 在此就第二种方法 抛一块砖

  在此做一个示例以方便说明 我们考虑到导出数据有很多的情况是Master/Detail数据 因此就用两个TQuery和一个TDataSource 如果有更多的层次 只需要增加TQuery和TDataSource即可 以下使用了两个TQuery 分别是 qryMaster和qryDetail 一个TDataSource:dsSource;

    步骤是                 建立一个Excel实例                 创建一个工作表                 创建一个TStringList 用来装数据                 穷举数据表 将数据存入TStringList                 将TStringList的数据复制到剪贴板                 把剪贴板中的数据粘贴到Excel

  本方法的优点在于 比逐条写入到Excel中的速度大大提高 我曾试过 在P M的机器上用普通的方法 导出 条数据大约需要 分钟 而该用本方法后只需要 秒

function ToExcel():boolean; var     y       :integer;     tsList  :TStringList;     s       :string;     aSheet  :Variant; begin     result:=true;     Excel Connect;                  // 打开Excel     Excel Visible[ ]:=true;         // 显示Excel     Excel Workbooks Add(xlWBAorksheet );     aSheet:=excel Worksheets Item[ ];

    tsList:=TStringList Create;     try         try             with qryMaster do             begin                 Open;                 First;                 While Not Eof do                 begin                     s:= ;                     for y:= to FieldCount do                     begin                         s:=s+Fields[y] AsString+# ;                         Application ProcessMessages;                     end;                     tsList Add(s);                     // 从表                     if qryDetail<>nil then                     begin                         with qryDetail do                         begin                             Open;                             First;                             while Not Eof do                             begin                                 s:= ;                                 for y:= to FieldCount do                                 begin                                     s:=s+Fields[y] AsString+# ;                                     Application ProcessMessages;                                 end;                                 tsList Add(s);                                 next;                             end;                         end;                     end;                     next;                 end;                 Close;             end;             Clipboard AsText:=tsList Text;         except             result:=false;         end;     finally         tsList Free;     end;

cha138/Article/program/Delphi/201311/25012

相关参考

知识大全 ASP.NET导出数据到Excel的实现方法

ASP.NET导出数据到Excel的实现方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!在做as

知识大全 ASP导出Excel数据的四种方法

ASP导出Excel数据的四种方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!   一

知识大全 SQL表中数据按条件批量导出多个Excel文件

SQL表中数据按条件批量导出多个Excel文件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  S

知识大全 Excel导出时数据中有特殊字符的可能会出错

Excel导出时数据中有特殊字符的可能会出错  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  客户

知识大全 Sql Server 数据库表查询结果导出为excel文件

SqlServer数据库表查询结果导出为excel文件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 在.NET环境下将报表数据导出Excel和Word[2]

在.NET环境下将报表数据导出Excel和Word[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下

知识大全 在.NET环境下将报表数据导出Excel和Word[1]

在.NET环境下将报表数据导出Excel和Word[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下

知识大全 怎样将excel中几个单元格内容合并到一个单元格

怎样将excel中几个单元格内容合并到一个单元格方法11启动Excel,打开如下图所示的表格。2点击菜单栏“编辑”,接着点击“Office剪贴板”。3复制完选中的内容后,在“Office剪贴板”中,就

知识大全 教你怎样在Oracle数据库中高速导出/导入

教你怎样在Oracle数据库中高速导出/导入  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  迄今

知识大全 .NET导出Gridview到excel 带模板列显示

.NET导出Gridview到excel带模板列显示  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!