OLEDBConnection.Open()外部表格不是预期的格式

我已经在过去的两天里完成了我在这里search的所有内容,只是为了让我的.xlsx Excelfile upload到DataTable中,并用作我的RadGrid数据源。 这是我的代码…

private void ImportToGrid(string filePath, string hasHeaderRow) { string connectionString = String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0;HDR={1}';", filePath, hasHeaderRow); using (OleDbConnection excelConnection = new OleDbConnection(connectionString)) { using (OleDbCommand excelCommand = new OleDbCommand()) { excelConnection.Open(); //Get the SheetName DataTable dtExcelSchema = new DataTable(); dtExcelSchema = excelConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); string sheetName = dtExcelSchema.Rows[0]["TABLE_NAME"].ToString(); excelCommand.CommandText = "SELECT * From [" + sheetName + "]"; excelCommand.Connection = excelConnection; using (OleDbDataAdapter oda = new OleDbDataAdapter()) { DataTable dt = new DataTable(); oda.SelectCommand = excelCommand; oda.Fill(dt); rgCalendarYear.DataSource = dt; rgCalendarYear.DataBind(); } } } } 

…我能够将Excel文件从“.xlsx”转换为“.xls”,一切工作,当我上传文件,但我需要“.xlsx”文件的工作。

我在connectionString之前添加了@符号,我安装了Access数据库引擎2010,Access 2010运行时,我改变了各种不同的方式(包括IMEX = 1,IMEX = 0,Excel 8.0,Excel 12.0 Xml和所有其他的解决scheme。)无论我做什么,我只是不断得到“外部表格是不是在预期的格式”。 当我点击“excelConnection.Open();”时,在我的“.xlsx”文件上。 再一次,“.xls”工作得很好,但“.xlsx”没有。 任何帮助将不胜感激。 请问,有什么我可以忽略的? 没有第三方的build议,请。

编辑:我现在发现,如果我有“.xlsx”文件打开,当我尝试上传,它也适用。 现在,我只需要它在没有文件打开的情况下工作。