📄 unit2.~pas
字号:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ComCtrls, Grids, DBGrids, DB, ADODB,
ExtCtrls, DBCtrls, OleServer, ExcelXP,comobj,excel2000;
type
TForm2 = class(TForm)
DBGrid1: TDBGrid;
Edit1: TEdit;
Edit2: TEdit;
DateTimePicker1: TDateTimePicker;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
ADOQuery1: TADOQuery;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
RadioButton3: TRadioButton;
DataSource1: TDataSource;
ADOTable1: TADOTable;
DBNavigator1: TDBNavigator;
BitBtn3: TBitBtn;
ExcelApplication1: TExcelApplication;
ExcelWorksheet1: TExcelWorksheet;
ExcelWorkbook1: TExcelWorkbook;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure BitBtn3Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
sqlstr:string;
end;
var
Form2: TForm2;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm2.BitBtn1Click(Sender: TObject);
var
i :integer;
begin
sqlstr:='' ;
if RadioButton1.Checked then
begin
sqlstr:='b.cardno like '+'''%'+edit1.Text+'%'''+' order by riqi';
end;
if RadioButton2.Checked then
begin
sqlstr:='y.name like '+'''%'+edit2.Text+'%'''+' and b.cardno=y.cardno';
end;
if RadioButton3.Checked then
begin
sqlstr:='riqi like '+'''%'+DateTimePicker1.Format+'%'''+' order by riqi';
end;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select distinct b.* from beiwang b,yonghu y where '+sqlstr);
// showmessage(adoquery1.SQL.Text);
adoquery1.Open;
i:=adoquery1.RecordCount;
//label1.Caption:='总查洵到 '+inttostr(i)+' 条记录';
form2.Caption:='总查洵到 '+inttostr(i)+' 条记录';
end;
procedure TForm2.BitBtn2Click(Sender: TObject);
begin
Close;
form1.Show;
end;
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
form1.Show;
end;
procedure TForm2.BitBtn3Click(Sender: TObject);
//第一种方法
{var
iRow:integer;
i :integer;
begin
try
ExcelApplication1.Connect;
except
on E:Exception do
begin
E.Message:='无法连接Excel';
Raise;
end; end;
ExcelApplication1.Visible[0] := True;
ExcelApplication1.Workbooks.Add(null, 0);
ExcelWorkBook1.ConnectTo(ExcelApplication1.Workbooks[1]);
ExcelWorkSheet1.ConnectTo(ExcelWorkBook1.Sheets[1] as _WorkSheet);
iRow := 1;
while not Adoquery1.Eof do
begin
ExcelWorksheet1.Cells.Item[iRow+1,1]:=Adoquery1.fieldbyname('cardno').AsString;
ExcelWorksheet1.Cells.Item[iRow+1,2]:=Adoquery1.fieldbyname('backup').AsString;
excelWorksheet1.Cells.Item[iRow+1,3]:=Adoquery1.fieldbyname('riqi').AsString;
Inc(iRow);
Adoquery1.Next;
end;
end; }
//第二种方法,这种比较好
var
i:integer;
Excelid:Variant;
begin
try
Excelid:=CreateOleObject('Excel.Application');
except
on Exception do raise exception.Create('无法创建Xls文件,请确认是否安装EXCEL')
end;
Excelid.Visible := True;
Excelid.WorkBooks.Add;
Excelid.WorkSheets[1].Cells[1,1].Value:='查洵结果打印报表';
Excelid.worksheets[1].range['A1:L1'].Merge(true);
Excelid.worksheets[1].range['A1:L1'].HorizontalAlignment := $FFFFEFF4;
Excelid.worksheets[1].range['A1:L1'].VerticalAlignment := $FFFFEFF4;
Excelid.worksheets[1].Columns[1].ColumnWidth :=20;
Excelid.worksheets[1].Columns[2].ColumnWidth :=20;
Excelid.worksheets[1].Columns[3].ColumnWidth :=100;
//显示Excel报表的列名
i:=2;
Excelid.WorkSheets[1].Cells[i,1].Value := '工号';
Excelid.WorkSheets[1].Cells[i,2].Value := '日期';
Excelid.WorkSheets[1].Cells[i,3].Value := '备注';
///////////////////////////////////////
Excelid.worksheets[1].Range['A1:J10'].Font.Name := '宋体';
Excelid.worksheets[1].Range['A1:J1'].Font.Size := 14;
Excelid.worksheets[1].range['A1:J2'].font.bold:=true;
Excelid.worksheets[1].Range['A2:J2'].Font.Size := 10;
//导入数据
i:=3;
adoquery1.First;
while not adoquery1.Eof do
begin
Excelid.ActiveSheet.PageSetup.PrintGridLines := True;
Excelid.WorkSheets[1].Cells[i,1].Value := adoquery1.FieldByName('cardno').AsString;
Excelid.WorkSheets[1].Cells[i,2].Value := adoquery1.FieldByName('riqi').AsDateTime;
Excelid.WorkSheets[1].Cells[i,3].Value := adoquery1.FieldByName('backup').AsString;
Excelid.WorkSheets[1].range['A' + inttostr(i), 'J' + inttostr(i)].borders.LineStyle := xlContinuous;
inc(i);
adoquery1.Next;
end;
end;
procedure TForm2.FormCreate(Sender: TObject);
begin
DateTimePicker1.Date:=now;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -