这段连接EXCEL的代码看不太懂,谁帮我注释一下,谢谢各位!
ADOConnection2.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Password="";Data Source=' + sFileName + ';Extended Properties="Excel 8.0;IMEX=1";Persist Security Info=False';
ADOConnection2.Connected := True; sl := TStringList.Create;
ADOConnection2.GetTableNames(sl);
sTableName := sl[0];
if Pos('$', sTableName) > 0 then sTableName := '[' + sTableName + ']'; ADOquery2.Close;
ADOquery2.SQL.Clear;
ADOquery2.SQL.Text := 'SELECT * FROM ' + sTableName;
ADOquery2.Open;
sl.Free;
ADOConnection2.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Password="";Data Source=' + sFileName + ';Extended Properties="Excel 8.0;IMEX=1";Persist Security Info=False';
ADOConnection2.Connected := True; sl := TStringList.Create;
ADOConnection2.GetTableNames(sl);
sTableName := sl[0];
if Pos('$', sTableName) > 0 then sTableName := '[' + sTableName + ']'; ADOquery2.Close;
ADOquery2.SQL.Clear;
ADOquery2.SQL.Text := 'SELECT * FROM ' + sTableName;
ADOquery2.Open;
sl.Free;
ADOConnection2.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Password="";Data Source=' + sFileName + ';Extended Properties="Excel 8.0;IMEX=1";Persist Security Info=False';
ADOConnection2.Connected := True; // 获取Excel文件中所有Sheet的名称
sl := TStringList.Create;
ADOConnection2.GetTableNames(sl); // 提取索引排序第一的Sheet的名称,并检测名称中是否含有"$"字符,有则将名称纳入“[]之中,
// 为SQL语句中表名识别提供转换。
sTableName := sl[0];
if Pos('$', sTableName) > 0 then sTableName := '[' + sTableName + ']'; // 从Sheet名为:"sTableName"的表中提取所有数据。
ADOquery2.Close;
ADOquery2.SQL.Clear;
ADOquery2.SQL.Text := 'SELECT * FROM ' + sTableName;
ADOquery2.Open;
sl.Free;
ADOConnection2.Connected := True; //连接数据库 sl := TStringList.Create; //创建一个TStringList列表sl
ADOConnection2.GetTableNames(sl); //取得数据库所有表名,放入sl列表中
sTableName := sl[0];//取得列表中的第一项(表名)
if Pos('$', sTableName) > 0 then sTableName := '[' + sTableName + ']';//如果表名包含$则两边加中括号
//下面查询这个表,返回所有记录
ADOquery2.Close;
ADOquery2.SQL.Clear;
ADOquery2.SQL.Text := 'SELECT * FROM ' + sTableName;
ADOquery2.Open;
sl.Free;
用Adoconnection连接Excel,
然后获取Excel的表名,因为Excel支持一文档,多工作表,所以用到了TStringList。
然后用AdoQuery写一般的SQL语句就行。