J'essaie de lire un fichier Excel (xlsx) à l'aide du code ci-dessous. J'obtiens une erreur "External table is not in the expected format." à moins que le fichier ne soit déjà ouvert dans Excel. En d'autres termes, je dois d'abord ouvrir le fichier dans Excel avant de pouvoir le lire à partir de mon programme C#. Le fichier xlsx se trouve sur un partage de notre réseau. Comment puis-je lire le fichier sans avoir à l'ouvrir au préalable ? Merci
string sql = "SELECT * FROM [Sheet1$]";
string excelConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathname + ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1;\"";
using (OleDbDataAdapter adaptor = new OleDbDataAdapter(sql, excelConnection)) {
DataSet ds = new DataSet();
adaptor.Fill(ds);
}
0 votes
Pour information, j'ai reçu ce message sur une feuille Excel. Lorsque j'ai tenté de l'ouvrir, j'ai utilisé l'ACE actuel et les propriétés étendues suggérées. Quand j'ai ouvert manuellement le fichier, il y avait cette invite en haut pour activer l'édition, je dois trouver comment retourner cette partie automatiquement, mais si vous obtenez ceci, vous devez juste ouvrir le fichier, et ensuite activer l'édition. Je vais peut-être regarder si je peux ouvrir le fichier en lecture seule, j'ai vu quelque chose très loin dans ce fil de discussion à ce sujet.