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

时间:2017-01-21 07:47:46

标签: c# asp.net excel oledbconnection

我在过去的两天里完成了我在这里搜索过的所有内容,只是为了让我的.xlsx Excel文件上传到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();
                }
            }
        }
    }

...我能够从" .xlsx"转换Excel文件。到了" .xls",当我上传文件时一切正常,但我需要" .xlsx"文件工作。

我在connectionString之前添加了@符号,我安装了Access数据库引擎2010,Access 2010运行时,我已经改变了connectionString的各种不同方式(包括IMEX = 1,IMEX = 0, Excel 8.0,Excel 12.0 Xml以及其他解决方案中的所有其他内容。)无论我做什么,我都会继续获取"外部表格不符合预期格式。"在我的" .xlsx"文件何时命中" excelConnection.Open();"。再次," .xls"工作得很好,但" .xlsx"才不是。任何帮助将不胜感激。拜托,有什么我可以俯瞰的吗?请不要第三方建议。

编辑:我现在发现,如果我有" .xlsx"我尝试上传时文件打开,它也可以。现在,我只需要它就可以在没有文件打开的情况下工作。

0 个答案:

没有答案