ADOConnection1.Connected:=False;
ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' +
Trim(OpenDialog1.FileName) +';Extended Properties=Excel 8.0;Persist Security Info=False';
ADOConnection1.Connected:=True;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text := 'SELECT * FROM [Sheet1$]';
---- EXCEL的表单名只能写死么?[表单名$] ?而不能程序自动判定? 不想用ole方式,太慢而且机子中必须得装有excel。
另,ado,方式下如何读excel 2007?谢谢了!
ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' +
Trim(OpenDialog1.FileName) +';Extended Properties=Excel 8.0;Persist Security Info=False';
ADOConnection1.Connected:=True;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text := 'SELECT * FROM [Sheet1$]';
---- EXCEL的表单名只能写死么?[表单名$] ?而不能程序自动判定? 不想用ole方式,太慢而且机子中必须得装有excel。
另,ado,方式下如何读excel 2007?谢谢了!
if opendialog1.execute then
with adoquery do
begin
close;
sql.clear;
sql.add('select * from opendatasource(''microsoft.jet.oledb.4.0'',''data source="'+opendialog1.filename+'"',user id=admin;password=;extended properties=excel 5.0')...[sheet1$]');
open;
end;
var
a_cc: TStrings;
begin
a_cc :=TStringList.Create; with ADOConn do begin
ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + OpenDialog1.FileName + ';Extended Properties=excel 8.0;Persist Security Info=false';
Connected := True;
GetTableNames(a_cc);{将EXCL文件中的表格名赋值于a_cc}
end; with adoquery1 do begin
Close;
SQL.text:='select * from ['+a_cc[0]+']'{a_cc[0]得到EXCEL文件中的第一个表格的名}
Open;
end;
end;