首页 >> 读书频道 >> 电脑 >> DBGrid中的数据直接导出到Excel表
 
· SQL的基本操作
· 构件自动清除的内幕
· 无名称构件的使用
· 如果要得到操作系统的信息
· Delphi中的Seri
· CLX及其它
· 声明一个属于类而不是类的
· 关于Code Edito
· 代码编辑器/窗体设计器/
· 关于Delphi中的条件
· FileSystemOb
· FileSystemOb
 
· 红楼梦:120回全本[清
· 常见图像文件格式详解
· 拉封丹寓言
· 电视剧《刁蛮公主》下载和
· 美容养颜手册
· 加油金顺剧情分集介绍完整
· 素质教育在美国
· 全唐诗卷四十六
· 韩剧《布拉格恋人》剧情介
· 夜航船[作者:明·张岱]
· 局外人[作者:韩·可爱淘
· 现场流行病学
 
· (出租)中动商场部分及写
· (出租)中动动漫基地&#
· 喜剧学院
· 《善德女王》剧情介绍
· 魔女18号 剧情
· 丑女无敌剧情介绍
· 魔女幼熙剧情介绍
· 龙游天下剧情介绍
· 震撼世界的七日剧情介绍
· 静静的白桦林剧情介绍
· 心情日记—老公今天我想对
· 旗舰剧情介绍
欢迎来到月影社区!如果您觉得这里不错,请推荐给您的朋友们。月影社区:http://wf66.com/

DBGrid中的数据直接导出到Excel表


查看有无更新版本

关键字:Delphi/Pascal 2006-9-21

 

前言:

在软件实际制作中,为节省开发成本和开发周期,一些软件人员通常会吧DBGrid中的数据直接导出到Excel表中,而先前能看到的函数仅仅只能在WorkBook的一个Sheet中导入数据,不支持多Sheet!。

单元应用:

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, DBTables, Grids, DBGrids, ActiveX, ComObj,
Excel2000, OleServer;

测试环境:

OS:Win2k Pro;Excel2k;Delphi6.0

源程序:

{
功能描述:把DBGrid输出到Excel表格(支持多Sheet)
设计:CoolSlob
日期:2002-10-23
支持:CoolSlob@163.com
调用格式:CopyDbDataToExcel([DBGrid1, DBGrid2]);
}

procedure CopyDbDataToExcel(Args: array of const);
var
  iCount, jCount: Integer;
  XLApp: Variant;
  Sheet: Variant;
  I: Integer;
begin
  Screen.Cursor := crHourGlass;
  if not VarIsEmpty(XLApp) then
  begin
    XLApp.DisplayAlerts := False;
    XLApp.Quit;
    VarClear(XLApp);
  end;

  try
    XLApp := CreateOleObject(‘Excel.Application‘);
  except
    Screen.Cursor := crDefault;
  Exit;
  end;

  XLApp.WorkBooks.Add;
  XLApp.SheetsInNewWorkbook := High(Args) + 1;

  for I := Low(Args) to High(Args) do
  begin
    XLApp.WorkBooks[1].WorkSheets[I+1].Name := TDBGrid(Args.VObject).Name;
    Sheet := XLApp.Workbooks[1].WorkSheets[TDBGrid(Args.VObject).Name];

    if not TDBGrid(Args.VObject).DataSource.DataSet.Active then
    begin
      Screen.Cursor := crDefault;
      Exit;
    end;

    TDBGrid(Args.VObject).DataSource.DataSet.first;
    for iCount := 0 to TDBGrid(Args.VObject).Columns.Count - 1 do
      Sheet.Cells[1, iCount + 1] := TDBGrid(Args.VObject).Columns.Items[iCount].Title.Caption;

    jCount := 1;
    while not TDBGrid(Args.VObject).DataSource.DataSet.Eof do
    begin
      for iCount := 0 to TDBGrid(Args.VObject).Columns.Count - 1 do
        Sheet.Cells[jCount + 1, iCount + 1] := TDBGrid(Args.VObject).Columns.Items[iCount].Field.AsString;

      Inc(jCount);
      TDBGrid(Args.VObject).DataSource.DataSet.Next;
    end;
  end;

  XlApp.Visible := True;
  Screen.Cursor := crDefault;
end;

DBGrid中的数据直接导出到Excel表

[ 1 ]
DBGrid中的数据直接导出到Excel表 num

打印本页 关闭

关于我们版权声明本站导航友情连结作品演示 TOP↑