OleDbConnection () apre un file Excel in qualsiasi window di Excel aperta. Ma non se non c'è una window aperta

OleDbAdapter un'applicazione che utilizza OleDbAdapter per accedere a informazioni in un file di Excel. Quando cerco di creare una connessione al file di Excel se l'utente dispone di un altro file Excel (non collegato) sul proprio desktop, allora il file collegato alla scheda si apre in questa window in formato Read-Only. Se l'utente non dispone di un'istanza di Excel aperta, i file rimangono nascosti.

Ecco il mio codice:

 foreach (item app in apps) { DataTable dt = new DataTable(); string CnStr = ("Provider=Microsoft.Jet.OLEDB.4.0;" + ("Data Source=" + ((app.FilePath) + (";" + "Extended Properties=\"Excel 8.0;\"")))); string OleDbString = ("Select * from [" + app.SheetName + "$]"); OleDbDataAdapter Adapter = new OleDbDataAdapter(); var conn = new OleDbConnection(CnStr); conn.Open(); <----------------------------This is where the files are being opened. var cmd = new OleDbCommand(OleDbString, conn); Adapter.SelectCommand = cmd; Adapter.Fill(app.DataTable); conn.Close(); Adapter.Dispose(); } 

Qualcuno sa perché l' OleDbConnection() avrebbe aperto un file se un'istanza di Excel era aperta, ma non se non fosse?

Devi submit il codice per inizializzare la tua variabile apps . Probabilmente la risposta alla tua domanda è lì. Utilizza un metodo GetObject o CreateObject?