2013-09-23 14 views
5

voglio collegare a un file excel 2007 (.xlsx) utilizzando delphi 7, quindi ho usato un AdoConnection e impostare la proprietà connectionstring come:Connetti a file excel 2007 utilizzando ADOConnection in Delphi7

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\test\qm\Results-summary.xlsx;Extended Properties="Excel 12.0;IMEX=1";Persist Security Info=False 

Ma quando ho attiva il AdoConnection ottengo questo errore:

Could not find installable ISAM.

Dov'è il problema?

risposta

10

Ho trovato la soluzione. il mio errore era usare il driver Microsoft.Jet.OLEDB.4.0 per il file excel 2007. Ho cambiato in Microsoft.ACE.OLEDB.12.0 conducente e impostare la proprietà estesa per Extended Properties="Excel 12.0 Xml;HDR=yes", ora la mia stringa di connessione è:

Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=C:\test\qm\Results-summary.xlsx;Mode=Share Deny None;Extended Properties="Excel 12.0 Xml;HDR=yes";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 

e funziona :)