📄 main.pas
字号:
unit main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, DB, ADODB, StdCtrls,ComObj,ExcelOut, OleServer, Excel2000,
RzButton, ExtCtrls, RzPanel, WinSkinData, RzStatus, RzBHints, RzTray, SHELLAPI,
RzForms, RzPrgres, RzBorder, Menus;
type
TForm1 = class(TForm)
OpenDialog: TOpenDialog;
ADOConnection1: TADOConnection;
RzPanel1: TRzPanel;
Button1: TRzBitBtn;
Button2: TRzBitBtn;
Button3: TRzBitBtn;
RzGroupBox1: TRzGroupBox;
ExcelDataList: TListView;
RzGroupBox2: TRzGroupBox;
ListDelete: TListView;
RzBitBtn1: TRzBitBtn;
SkinData1: TSkinData;
Splitter1: TSplitter;
ClockStatus: TRzClockStatus;
BalloonHints: TRzBalloonHints;
TrayIcon: TRzTrayIcon;
VersionInfoStatus: TRzVersionInfoStatus;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure RzBitBtn1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N6Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Showhit, About;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
ADOcon:TADOConnection;
Query:TADOQuery;
filename,strsql:string;
item:TListItem;
ShowHit:TshowhitForm;
begin
OpenDialog.Filter:='Excel文档|*.xls';
if not OpenDialog.Execute then Exit;
filename:=OpenDialog.FileName;
ADOcon:=TADOConnection.Create(self);
ADOcon.ConnectionString:='Provider=MSDASQL.1;Extended Properties="'
+'DBQ='+filename+';'
+'Driver={Microsoft Excel Driver (*.xls)};DriverId=790;MaxBufferSize=2048;PageTimeout=5;"';
ADOcon.LoginPrompt:=False;
ADOcon.Connected:=True;
Query:=TADOQuery.Create(self);
Query.Connection:=ADOcon;
strsql:='select * from [sheet1$]';
Query.SQL.Clear;
Query.SQL.Add(strsql);
try
Query.Open;
ExcelDataList.Items.Clear;
showhit:=TShowHitForm.Create(self);
ShowHit.SetStatus('正在导入中.....请稍候!');
ShowHit.Show;
showhit.Repaint;
while not Query.Eof do
begin
item:=ExcelDataList.Items.Add;
item.Caption:=Query.Fields[0].AsString;
item.SubItems.Add(Query.Fields[1].AsString);
Query.Next;
end;
except
Query.Free;
end;
showhit.Hide;
showhit.Free;
Button2.Enabled:=True;
Button1.Enabled:=True;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
i,j:integer;
ShowHit:TshowhitForm;
begin
showhit:=TShowHitForm.Create(self);
ShowHit.SetStatus('正在筛选中.....请稍候!');
ShowHit.Show;
showhit.Repaint;
for i:=ListDelete.Items.Count-1 downto 0 do
begin
if Trim(ListDelete.Items.Item[i].Caption)='' then
Continue;
for j:=0 to ExcelDataList.Items.Count-1 do
begin
if Trim(ExcelDataList.Items.Item[j].Caption)='' then
Continue;
if Trim(ExcelDataList.Items.Item[j].Caption)=Trim(ListDelete.Items.Item[i].Caption) then
begin
ListDelete.Items.Item[i].Delete;
Break;
end
else
begin
Continue;
end;
end;
end;
showhit.Hide;
showhit.Free;
Button3.Enabled:=True;
MessageBox(Handle,PChar('总共 '+IntToStr(ListDelete.Items.Count)+' 条记录导被筛选出来。'),PChar('筛选完成'),MB_OK+MB_ICONINFORMATION);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Button2.Enabled:=false;
Button3.Enabled:=false;
end;
procedure TForm1.Button3Click(Sender: TObject);
Begin
OutputExcel(ListDelete);
end;
procedure TForm1.RzBitBtn1Click(Sender: TObject);
var
ADOcon:TADOConnection;
Query:TADOQuery;
filename,strsql:string;
items:TListItem;
ShowHit:TshowhitForm;
begin
OpenDialog.Filter:='Excel文档|*.xls';
if not OpenDialog.Execute then Exit;
filename:=OpenDialog.FileName;
ADOcon:=TADOConnection.Create(self);
ADOcon.ConnectionString:='Provider=MSDASQL.1;Extended Properties="'
+'DBQ='+filename+';'
+'Driver={Microsoft Excel Driver (*.xls)};DriverId=790;MaxBufferSize=2048;PageTimeout=5;"';
ADOcon.LoginPrompt:=False;
ADOcon.Connected:=True;
Query:=TADOQuery.Create(self);
Query.Connection:=ADOcon;
strsql:='select * from [sheet1$]';
Query.SQL.Clear;
Query.SQL.Add(strsql);
try
Query.Open;
ListDelete.Items.Clear;
showhit:=TShowHitForm.Create(self);
ShowHit.SetStatus('正在导入中.....请稍候!');
ShowHit.Show;
showhit.Repaint;
while not Query.Eof do
begin
items:=ListDelete.Items.Add;
items.Caption:=QUery.Fields[0].AsString;
items.SubItems.Add(Query.Fields[1].AsString);
Query.Next;
end;
except
Query.Free;
end;
showhit.Hide;
showhit.Free;
Button2.Enabled:=True;
RzBitBtn1.Enabled:=True;
end;
procedure TForm1.N2Click(Sender: TObject);
begin
shellexecute(handle,'open',pchar('notepad'),nil,nil,SW_SHOW); //calc
end;
procedure TForm1.N3Click(Sender: TObject);
begin
shellexecute(handle,'open',pchar('calc'),nil,nil,SW_SHOW); //calc
end;
procedure TForm1.N4Click(Sender: TObject);
begin
shellexecute(handle,'open',pchar('mspaint'),nil,nil,SW_SHOW); //calc
end;
procedure TForm1.N6Click(Sender: TObject);
begin
if not Assigned(form2) then
Application.CreateForm(Tform2,Form2);
Form2.ShowModal;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -