读取EXCEL表: procedure TstartForm.SpeedButton10Click(Sender: TObject); var MSExcel:Variant; begin MSExcel:=CreateOLEObject('Excel.Application'); MSExcel.WorkBooks.Add; MSExcel.Visible:=True; for i:=5 to Query1.RecordCount+4 do begin MsExcel.Cells[i,1].value:=Query1.FieldByName('cpxhno').Asstring; MsExcel.Cells[i,2].value:=Query1.FieldByName('cpname').Asstring; MsExcel.Cells[i,3].value:=Query1.FieldByName('cpunit').Asstring; MsExcel.Cells[i,4].value:=Query1.FieldByName('htnumber').Asstring; MsExcel.Cells[i,5].value:=Query1.FieldByName('number').Asstring; MsExcel.Cells[i,6].value:=Query1.FieldByName('ljno').Asstring; end; end; 退出Excel: MSExcel.Quit; MSExcel:=Unassigned; //释放VARIANT变 *************** 先加入ExcelApplication1;ExcelWorkbook1;ExcelWorksheet1; procedure TForm1.n1Click(Sender: TObject); var row,brea:integer; a,b,c,d,e:shortstring; begin if table1.active = True then begin try ExcelApplication1.Connect; Except ExcelApplication1.free; Abort; end; brea := strtoint(inputbox('输入需导入行数!','行数','10')); if brea<1 then brea := 10; ProgressBar1.Visible := True; ProgressBar1.Max := brea; ExcelApplication1.Visible[0] := true; for row := 2 to brea do begin a := ExcelWorksheet1.Cells.Item[row,2]; b := ExcelWorksheet1.Cells.Item[row,1]; c := ExcelWorksheet1.Cells.Item[row,3]; d := ExcelWorksheet1.Cells.Item[row,4]; e := ExcelWorksheet1.Cells.Item[row,5]; form1.show; table1.AppendRecord([a,b,c,d,e]); ProgressBar1.Position := row-1; end; ProgressBar1.Hide; end; end; ***************** var MSExcel: Variant; i: Integer; begin OpenDialog1.Filter:='*.XLS|*.XLS'; OpenDialog1.DefaultExt:='XLS'; if OpenDialog1.Execute then begin MSExcel:=CreateOLEObject('Excel.Application'); MSExcel.WorkBooks.Open(OpenDialog1.FileName); MSExcel.Visible:=False; //从有数据的行逐行读入数据 for i:=1 to MSExcel.ActiveSheet.UsedRange.Rows.Count do begin Edit2.Text:=Edit2.Text+MSExcel.Cells[i,1].Value; end; MSExcel.ActiveWorkBook.Close; MSExcel.Quit; end; end; 附: procedure TForm1.Button1Click(Sender: TObject); var ExcelApp: Variant; S: string; begin ExcelApp := CreateOleObject( 'Excel.Application' );; ExcelApp.Visible := True; ExcelApp.WorkBooks.Open( 'C:\Demo.xls' ); ExcelApp.WorkSheets[1].Activate; S := ExcelApp.Cells[2,2].Value; ShowMessage(S); end;
procedure TstartForm.SpeedButton10Click(Sender: TObject);
var MSExcel:Variant;
begin
MSExcel:=CreateOLEObject('Excel.Application');
MSExcel.WorkBooks.Add;
MSExcel.Visible:=True; for i:=5 to Query1.RecordCount+4 do
begin
MsExcel.Cells[i,1].value:=Query1.FieldByName('cpxhno').Asstring;
MsExcel.Cells[i,2].value:=Query1.FieldByName('cpname').Asstring;
MsExcel.Cells[i,3].value:=Query1.FieldByName('cpunit').Asstring;
MsExcel.Cells[i,4].value:=Query1.FieldByName('htnumber').Asstring;
MsExcel.Cells[i,5].value:=Query1.FieldByName('number').Asstring;
MsExcel.Cells[i,6].value:=Query1.FieldByName('ljno').Asstring;
end;
end; 退出Excel:
MSExcel.Quit;
MSExcel:=Unassigned; //释放VARIANT变
***************
先加入ExcelApplication1;ExcelWorkbook1;ExcelWorksheet1;
procedure TForm1.n1Click(Sender: TObject);
var
row,brea:integer;
a,b,c,d,e:shortstring;
begin
if table1.active = True then begin
try
ExcelApplication1.Connect;
Except
ExcelApplication1.free;
Abort;
end;
brea := strtoint(inputbox('输入需导入行数!','行数','10'));
if brea<1 then brea := 10;
ProgressBar1.Visible := True;
ProgressBar1.Max := brea;
ExcelApplication1.Visible[0] := true;
for row := 2 to brea do
begin
a := ExcelWorksheet1.Cells.Item[row,2];
b := ExcelWorksheet1.Cells.Item[row,1];
c := ExcelWorksheet1.Cells.Item[row,3];
d := ExcelWorksheet1.Cells.Item[row,4];
e := ExcelWorksheet1.Cells.Item[row,5];
form1.show;
table1.AppendRecord([a,b,c,d,e]);
ProgressBar1.Position := row-1;
end;
ProgressBar1.Hide;
end;
end;
*****************
var
MSExcel: Variant;
i: Integer;
begin
OpenDialog1.Filter:='*.XLS|*.XLS';
OpenDialog1.DefaultExt:='XLS';
if OpenDialog1.Execute then
begin
MSExcel:=CreateOLEObject('Excel.Application');
MSExcel.WorkBooks.Open(OpenDialog1.FileName);
MSExcel.Visible:=False;
//从有数据的行逐行读入数据
for i:=1 to MSExcel.ActiveSheet.UsedRange.Rows.Count do
begin
Edit2.Text:=Edit2.Text+MSExcel.Cells[i,1].Value;
end;
MSExcel.ActiveWorkBook.Close;
MSExcel.Quit;
end;
end;
附:
procedure TForm1.Button1Click(Sender: TObject);
var
ExcelApp: Variant;
S: string;
begin
ExcelApp := CreateOleObject( 'Excel.Application' );;
ExcelApp.Visible := True;
ExcelApp.WorkBooks.Open( 'C:\Demo.xls' );
ExcelApp.WorkSheets[1].Activate;
S := ExcelApp.Cells[2,2].Value;
ShowMessage(S);
end;