外部表格格式不符合预期。

4
我正在创建一个小应用程序,将Excel数据导入我的数据库。当我点击按钮时,它会崩溃并显示以下错误信息:

外部表格格式不符合预期。

我尝试过在网上搜索和修改代码,但问题仍然存在。我尝试将文件保存为.xls格式,但运行代码后,页面会离线,并显示Google Chrome的“此网页不可用”(甚至无法进入调试)。
以下是我的代码:
    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);
                }
            }
        }
    }

http://www.connectionstrings.com/excel/ - senthilkumar2185
https://dev59.com/T3M_5IYBdhLWcg3w-4nw - Rohit
我已经访问了这两个链接,链接中的连接字符串与我的相同,都使用了ACE.OLEDB,但仍然没有解决我的问题。 - LuxuryWaffles
我假设您已经安装了Microsoft Access 2010 Runtime! http://www.microsoft.com/zh-cn/download/details.aspx?id=10910 - Mehrad
1个回答

4
假设您已完成所有准备工作,包括安装 Microsoft Access 2010 Runtime 以获取相关驱动程序,请尝试以下操作,因为我过去曾成功地使用它。
如果您的输入文件是 *.xlsx 类型,请尝试替换


Extended Properties="Excel 12.0"

在您的连接字符串中

Extended Properties="Excel 12.0 Xml"

这个问题通常是由于Excel文件的格式有问题或者不匹配,因此作为经验法则,您需要尝试的第一件事是打开Excel并创建一个新的.xlsx文件,并在其中输入一些样本数据(自己输入而非复制/粘贴)。您只需要输入所需信息的几个单元格即可测试代码片段。这种方法消除了实际Excel文件而非C#代码的任何问题。请告诉我们您的进展情况。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接