📄 excel.~pas
字号:
unit excel;
interface
uses
Windows, Messages,ComObj, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls, DB, DBTables;
type
Texce = class(TForm)
Query1: TQuery;
OpenDialog1: TOpenDialog;
Panel1: TPanel;
SpeedButton2: TSpeedButton;
SpeedButton5: TSpeedButton;
SpeedButton4: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton1: TSpeedButton;
ListBox1: TListBox;
ListBox2: TListBox;
Query2: TQuery;
OpenDialog2: TOpenDialog;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure SpeedButton5Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure ListBox2DblClick(Sender: TObject);
procedure ListBox1DblClick(Sender: TObject);
private
{ Private declarations }
public
sjbname:string; { Public declarations }
end;
var
exce: Texce;
implementation
{$R *.dfm}
procedure Texce.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action:=cafree;
end;
procedure Texce.SpeedButton1Click(Sender: TObject);
var i:integer;
begin
i:=0;
while listbox1.SelCount>0 do
begin
if listbox1.Selected[i] then
begin
listbox2.Items.append(listbox1.Items[i]);
listbox1.Items.Delete(i);
end
else
i:=i+1;
end;
end;
procedure Texce.SpeedButton3Click(Sender: TObject);
var i:integer;
begin
i:=0;
while listbox2.SelCount>0 do
begin
if listbox2.Selected[i] then
begin
listbox1.Items.append(listbox2.Items[i]);
listbox2.Items.Delete(i);
end
else
i:=i+1;
end;
end;
procedure Texce.SpeedButton4Click(Sender: TObject);
var i:integer;
begin
for i:=0 to listbox1.items.count-1 do
listbox2.Items.Add(listbox1.Items[i]);
listbox1.Items.Clear ;
end;
procedure Texce.SpeedButton5Click(Sender: TObject);
var i:integer;
begin
for i:=0 to listbox2.items.count-1 do
listbox1.Items.Add(listbox2.Items[i]);
listbox2.Items.Clear ;
end;
procedure Texce.SpeedButton2Click(Sender: TObject);
var myexcel,sheet:variant;
s:string;
i,j,m:integer;
begin
opendialog1.Execute;
s:=opendialog1.FileName;
m:=listbox2.Items.Count;
// if fileexists(s) then
// deletefile(s);
myexcel:=createoleObject('Excel.Application');
myExcel.visible:=true;
query1.First;
myExcel.workbooks.add(1);
sheet:=myExcel.workbooks[1].worksheets[1];
sheet.name:=sjbname;
for j:=1 to m do
begin
sheet.cells[1,j]:=listbox2.items[j-1];
end;
for i:=2 to query1.RecordCount+1 do
begin
for j:=1 to m do
begin
sheet.cells[i,j]:=query1.FieldByName(listbox2.items[j-1]).asstring;
end;
query1.Next;
end;
myexcel.activeworkbook.saveas(s);
end;
procedure Texce.FormShow(Sender: TObject);
var i:integer;
begin
listbox1.Items.Clear;
for i:=0 to query1.fieldcount-1 do
begin
listbox1.Items.Add(query1.Fields[i].FieldName);
end;
end;
procedure Texce.ListBox2DblClick(Sender: TObject);
begin
listbox1.Items.Add(listbox2.Items[listbox2.itemindex]);
listbox2.Items.Delete(listbox2.ItemIndex);
end;
procedure Texce.ListBox1DblClick(Sender: TObject);
begin
listbox2.Items.Add(listbox1.Items[listbox1.itemindex]);
listbox1.Items.Delete(listbox1.itemindex);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -