2009-11-20 2 views
1

Ceci est ma première tentative de lecture d'un fichier Excel 2007 via ADO.net, et il me manque quelque chose b/c quand j'essaie d'exécuter la requête , J'ai une exception. Quand j'ai commencé à regarder, c'est que la table (feuille de travail) n'est pas là. Quelqu'un peut-il me dire ce que je fais de mal?Lecture de fichier Excel avec ADO.net - pas de données (ou tables)

Voici mon code:

 string cs = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=My File.xlsx;Extended Properties=""Excel 12.0;IMEX=1;"""; 

     using (OleDbConnection con = new OleDbConnection(cs)) 
     { 

      con.Open(); 

      string query = "SELECT * FROM [Sheet1$]"; 

      OleDbCommand cmd = new OleDbCommand(query, con); 

      OleDbDataAdapter adapter = new OleDbDataAdapter(cmd); 

      DataTable dt = new DataTable(); 

      DataTable worksheets = con.GetSchema("Tables"); 


      adapter.Fill(dt); 
      . 
      . 
      . 
     } 
+0

Vous n'avez pas HDR dans votre chaîne de connexion étendue propriétés http://www.connectionstrings.com/excel-2007 – Fionnuala

Répondre

1

Jetez un oeil à la réponse acceptée ici

The First Column of the excel file to put in string variable C#?

Il travaille pour Excel 2003 mais je pense qu'il pourrait facilement être adapté pour fonctionner avec 2007

+0

Il n'y a pas beaucoup de une différence entre ce que j'ai et cette solution. J'ai changé pour voir si cela a fonctionné, et ce n'est toujours pas le cas. Le problème est que, pour une raison quelconque, les feuilles de travail ne sont pas trouvées. – mjmcinto

+0

Ceci est une supposition, mais est l'espace dans le nom de fichier Excel dans la chaîne de connexion à l'origine du problème? – JayG

+0

L'espace dans le nom de fichier était le problème. Merci beaucoup ... J'aurais dû vérifier ça, mais juste un peu regardé ça. – mjmcinto

Questions connexes