⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tools.pas

📁 高校教师工作量计算管理系统的设计与开发
💻 PAS
字号:
unit tools;
interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 DBTables,inifiles,ComCtrls, StdCtrls, ToolWin, Grids,   Db,DBGrids,
 ExtCtrls, Buttons, Menus, Tgrids2,DbTree,DBClient, OleServer, Excel97,ComObj,
 DBCtrls,printers,registry,AgentObjects_TLB,DBGridEh;

function FormatLongDate(const userdate:Tdate):string;
procedure CopyDbDataToExcel(Args: array of const);   //dbgrid导出到EXCEL表  CopyDbDataToExcel([DBGrid1]);
procedure CopyDbEhDataToExcel (Args: array of const); ////dbgridEH导出到EXCEL表

implementation

uses main;

function FormatLongDate(const userdate:Tdate):string;
  //日期型转换为????年??月??日格式的字符串函数
var
  y,m,d:word;
  m1,d1:string;
begin
  try
    strTodate(dateToStr(userdate));
  except
    result := '非法日期';
    exit;
  end;
  DecodeDate(userdate, y, m, d);
  if m<10 then
    m1:='0'+intTostr(m)
  else
    m1:=intTostr(m);
  if d<10 then
    d1:='0'+intTostr(d)
  else
    d1:=intTostr(d);
  result:=intTostr(y)+'年'+m1+'月'+d1+'日';
end;

procedure CopyDbDataToExcel(Args: array of const);     //dbgrid导出到EXCEL表
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;
    XlApp.Visible := True;
  end;
  Screen.Cursor := crDefault;
end;

procedure CopyDbEhDataToExcel(Args: array of const);     //dbgrid导出到EXCEL表
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 := TDBGridEh(Args[I].VObject).Name;
    Sheet := XLApp.Workbooks[1].WorkSheets[TDBGridEh(Args[I].VObject).Name];

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

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

    jCount := 1;
    while not TDBGridEh(Args[I].VObject).DataSource.DataSet.Eof do
    begin
      for iCount := 0 to TDBGridEh(Args[I].VObject).Columns.Count - 1 do
        Sheet.Cells[jCount + 1, iCount + 1] :=
      TDBGridEh(Args[I].VObject).Columns.Items[iCount].Field.AsString;
      Inc(jCount);
      TDBGridEh(Args[I].VObject).DataSource.DataSet.Next;
    end;
    XlApp.Visible := True;
  end;
  Screen.Cursor := crDefault;
end;


end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -