1.控件
TADOConnection : 用于创建数据链接TADODataSet :用于读取某页的数据
2.读取
该方法使用ADO控件直接链接Excel,优点就是方便,缺点是不灵活
2.1 做链接
ADOCon为TADOConnection,DSet_Excel为TADODataSet
ADOCon.Close; //获取Excel数据
ADOCon.ConnectionString := 'Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=' + FileName + ';Mode=Share Deny None;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";' + 'Jet OLEDB:Engine Type=37;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;' + 'Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don''t Copy Locale on Compact=False;' + 'Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;Jet OLEDB:Support Complex Data=False;';
ADOCon.Open();
DSet_Excel.Close;
DSet_Excel.CommandText := 'select * from [第一页$]';
DSet_Excel.Open;
把Excel链接到ADOCon,这样每一页就是一张表。关于ADOCon的链接字符 因为Excel版本不一样的原因,我也搜了一些解决办法,其中是给了两串字符,但是我这里并没用,依旧报错,所以最后把目标Excel的后缀改成’.udl’,裸连,打开ADOCon的链接,那个字符肯定就没错了,只需要把中间的‘Data Source=’后加上自己的路径即可。
2.2 取数据
这样取数据就方便很多,而且可以可视化,放到Grid里,不过对页名的要求和对Excel抬头的要求不可忽略,如果情况特殊,只能自己想办法了。
如果还有别的容易简单的办法欢迎留言指教。