外部表格不是预期的格式。

时间:2015-03-08 04:39:36

标签: c# asp.net excel oledb

我正在创建一个小应用程序,将excel数据导入我的数据库,当我点击按钮时,它会因错误而崩溃

  

外部表格不是预期的格式。

我尝试使用谷歌搜索和更改代码,但问题仍然存在。我尝试将文件保存为.xls,当我运行代码时,页面脱机并使用谷歌浏览器这个网页不可用(甚至无法进入调试)

这是我的代码:

    string strConnection = ConfigurationManager.ConnectionStrings["---"].ConnectionString;

    String excelConnString = String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0\"", filePath);
    //Create Connection to Excel work book 
    using (OleDbConnection excelConnection = new OleDbConnection(excelConnString))
    {
        //Create OleDbCommand to fetch data from Excel 
        using (OleDbCommand cmd = new OleDbCommand("Select * from [Sheet1$]", excelConnection))
        {
            excelConnection.Open();
            using (OleDbDataReader dReader = cmd.ExecuteReader())
            {
                using (SqlBulkCopy sqlBulk = new SqlBulkCopy(strConnection))
                {
                    //Give your Destination table name 
                    sqlBulk.DestinationTableName = "TableName";
                    sqlBulk.WriteToServer(dReader);
                }
            }
        }
    }

1 个答案:

答案 0 :(得分:3)

假设您已完成所有准备工作,包括安装 Microsoft Access 2010 Runtime 以获取相关驱动程序,请尝试以下操作,因为我过去已成功使用它。

如果您的输入文件类型*.xlsx正在尝试替换

Extended Properties="Excel 12.0"
使用

连接字符串中的

Extended Properties="Excel 12.0 Xml"

这个问题通常发生在Excel文件有问题或不匹配的格式中,因此根据经验,您首先想要尝试的是打开Excel并创建一个包含几个示例数据的新.xlsx文件。 您自己键入 (而不是复制/粘贴)。您不需要太多输入就可以测试代码段。几个细胞与您期望的正确信息将会做。这种方法消除了实际Excel文件而不是C#代码的任何问题。

告诉我们您的情况。