外部表格不是预期的格式c#

时间:2015-03-25 07:00:15

标签: c# asp.net sql-server-2008 sqlbulkcopy oledbconnection

我在谷歌搜索时看到了更多的答案,但无法解决我的问题。 这是我编写的将excel表插入sql server表的代码。

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

执行第34行" excelConnection.Open();"。我收到错误"外部表格不符合预期的格式。"

&& 34; sample.xlsx"实际上是一个ods格式文件。我将其格式更改为xlsx。

此代码会出现什么问题。请建议我。

1 个答案:

答案 0 :(得分:0)

根据评论中的对话,您必须将ODS文件转换为XLSXLSX格式,而不仅仅是重命名。您可以使用ExcelOnline tools转换ODS个文件。