La table externe n'est pas au format attendu c #

asp.net c# oledbconnection sqlbulkcopy sql-server-2008

Question

J'ai vu plus de réponses en le recherchant, mais je ne pouvais pas résoudre mon problème. C'est le code que j'ai écrit pour insérer une feuille Excel dans la table du serveur SQL.

        string strConnection = ConfigurationManager.ConnectionStrings[0].ToString();
        string path = @"D:/Projects/sample.xlsx";
        string excelConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=\"Excel 12.0;HDR=YES;IMEX=1\";";  

        OleDbConnection excelConnection = new OleDbConnection(excelConnectionString);
        //Create OleDbCommand to fetch data from Excel
        OleDbCommand cmd = new OleDbCommand("Select [Name], [City], [Address], [Designation] from [Sheet1$]", excelConnection);
        excelConnection.Open();
        OleDbDataReader dReader;
        dReader = cmd.ExecuteReader();
        SqlBulkCopy sqlBulk = new SqlBulkCopy(strConnection);
        //Give your Destination table name
        sqlBulk.DestinationTableName = "temp1";
        sqlBulk.WriteToServer(dReader);
        excelConnection.Close();

Lors de l'exécution de la ligne "excelConnection.Open ();". J'obtiens une erreur "La table externe n'est pas au format attendu."

Et "sample.xlsx" est en fait un fichier au format ods. J'ai changé son format comme xlsx.

Quel serait le problème dans ce code. Suggère moi

Réponse acceptée

Selon la conversation dans les commentaires, vous devez convertir le fichier ODS au format XLS ou XLSX et non pas simplement le renommer. Vous pouvez utiliser Excel Online tools Excel ou en Online tools pour convertir des fichiers ODS .



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi