delphiexcel链接到数据集

    技术2022-07-10  99

    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抬头的要求不可忽略,如果情况特殊,只能自己想办法了。

    如果还有别的容易简单的办法欢迎留言指教。

    Processed: 0.012, SQL: 9