现在的位置: 首页 > 综合 > 正文

Delphi将表中数据导入EXCEL中来的代码

2017年12月02日 ⁄ 综合 ⁄ 共 3019字 ⁄ 字号 评论关闭

将表中数据导入EXCEL中来的代码如下:

unit main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ZAbstractRODataset, ZAbstractDataset, ZDataset, DB, DBClient,
  Provider, GridsEh, DBGridEh, RzPanel, RzStatus, ExtCtrls, ZConnection,
  BusinessSkinForm, StdCtrls, RzLabel, RzEdit, RzButton, DBCtrls, RzDBNav,
  ImgList, Grids, DBGrids,ShellAPI, Mask, RzTray;

type
  Tmainfrm = class(TForm)
    BSFrmExcel: TbsBusinessSkinForm;
    Connect: TZConnection;
    pnlExcel: TRzPanel;
    RzStatusBar1: TRzStatusBar;
    RzToolbar1: TRzToolbar;
    RzStatusPane1: TRzStatusPane;
    RzClockStatus1: TRzClockStatus;
    grbxShow: TRzGroupBox;
    dbgExcel: TDBGridEh;
    dscExcel: TDataSource;
    DtStExcel: TDataSetProvider;
    cdsExcel: TClientDataSet;
    qryExcel: TZQuery;
    mmSQL: TRzMemo;
    lblSQL: TRzLabel;
    RzSpacer1: TRzSpacer;
    btnContron: TRzToolButton;
    RzSpacer2: TRzSpacer;
    btnExcelInt: TRzToolButton;
    RzSpacer3: TRzSpacer;
    btnExcelOut: TRzToolButton;
    btnExit: TRzToolButton;
    RzSpacer4: TRzSpacer;
    NvgtrExcel: TRzDBNavigator;
    ImgLstExcel: TImageList;
    btnRfresh: TRzToolButton;
    RzTrayIcon1: TRzTrayIcon;
    procedure btnExitClick(Sender: TObject);
    procedure btnExcelOutClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure mmSQLKeyPress(Sender: TObject; var Key: Char);
    procedure btnRfreshClick(Sender: TObject);
    procedure btnContronClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  mainfrm: Tmainfrm;

implementation

{$R *.dfm}

procedure Tmainfrm.btnExitClick(Sender: TObject);
begin
 close;
end;

procedure Tmainfrm.btnExcelOutClick(Sender: TObject);
var
 strTemp:string;
 strSQL:string;
 f:TextFile;
 i,j:integer;
begin
 strSQL:=mmSQL.Text;

 with qryExcel do
  begin
   //======
   Close;
   SQL.Clear;
   SQL.Add(strSQL);
   Open;
   cdsExcel.Active := false;
   cdsExcel.Active := true;
   //===
   try
    AssignFile(f,'ExcelTable/Excel.xls');
    Rewrite(f);
    //====
    First;
    strTemp := '';
    //====
    for i := 0 to Fields.Count - 1 do
     begin
      //====
      if Fields[i].FieldName <> '' then
       //====
       if Fields[i].FieldName = 'ID' then
        strTemp := strTemp + ''+#9 //====
       else
        strTemp := strTemp + Fields[i].FieldName + #9;
     end;
    Writeln(f,strTemp);
    //====
    for i := 0 to RecordCount - 1 do
     begin
      //====
      strTemp := '';
      for j := 0 to Fields.Count - 1 do
       begin
        //====
        if Fields[j].FieldName <> '' then
         strTemp := strTemp + fields[j].AsString + #9;
       end;
      //====
      Writeln(f,strTemp);
      //====
      Next;
     end;
   finally
    CloseFile(f);
   end; //====End File Try
  end;
 //====
 ShellExecute(0,nil,'ExcelTable/Excel.xls',nil,nil,0);
 //====
 //Application.Terminate;
end;

procedure Tmainfrm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 Connect.Connected := false;
end;

procedure Tmainfrm.mmSQLKeyPress(Sender: TObject; var Key: Char);
begin
 if key = #13 then
  btnExcelOutClick(Sender);
end;

procedure Tmainfrm.btnRfreshClick(Sender: TObject);
begin
 mmSQL.Text := '';
 mmSQL.Text := 'select * from ';

end;

procedure Tmainfrm.btnContronClick(Sender: TObject);
begin
 if cdsExcel.Active  then
  cdsExcel.Close
 else
  cdsExcel.Open;

end;

end.

 

抱歉!评论已关闭.