外部表が期待される形式でないc#

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

質問

私はグーグル・グーグルでより多くの答えを見てきましたが、私の問題を解決できませんでした。これは、SQL ServerテーブルにExcelシートを挿入するために書いたコードです。

        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();

"excelConnection.Open();"という行を実行している間。 「外部テーブルが期待どおりのフォーマットではありません」というエラーが表示されます。

"sample.xlsx"は実際にはods形式のファイルです。 xlsxとして形式を変更しました。

このコードで何が間違っているでしょうか。私に提案してください。

受け入れられた回答

コメント欄での会話につき、あなたは変換する必要がODSにファイルをXLSまたはXLSXそれをリネームない形式。 ExcelまたはOnline toolsを使用してODSファイルを変換できます。



ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ