国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

如何將幾個DBGRID里的內容導入同一個EXCEL表中?

2019-11-18 18:38:59
字體:
來源:轉載
供稿:網友
 

前言:

  在軟件實際制作中,為節省開發成本和開發周期,一些軟件人員通常會吧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[I].VObject).Name;
    Sheet := XLApp.Workbooks[1].WorkSheets[TDBGrid(Args[I].VObject).Name];
   
    if not TDBGrid(Args[I].VObject).DataSource.DataSet.Active then
    begin
      Screen.Cursor := crDefault;
      Exit;
    end;

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

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


上一篇:利用書簽功能對TDBGrid控件中多個記錄的處理

下一篇:VCL消息處理機制的內幕

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: 铁岭县| 潮州市| 新营市| 马公市| 克拉玛依市| 竹溪县| 枣阳市| 泸州市| 吴江市| 阳春市| 灵石县| 孝感市| 龙口市| 南宁市| 景德镇市| 葫芦岛市| 临江市| 竹北市| 姚安县| 永兴县| 临西县| 饶平县| 通江县| 孝义市| 资源县| 平果县| 屯留县| 宝兴县| 邵武市| 益阳市| 娄烦县| 天气| 新民市| 九龙坡区| 大邑县| 岳普湖县| 霍州市| 永嘉县| 怀化市| 宁德市| 汽车|