编程语言
首页 > 编程语言> > c#-外部表的格式不正确.

c#-外部表的格式不正确.

作者:互联网

我正在创建一个小应用程序以将excel数据导入到我的数据库中,当我单击按钮时它崩溃并显示错误

External table is not in the expected format.

我尝试使用Google搜索并在此处和此处更改代码,但问题仍然存在.我尝试将文件另存为.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);
                }
            }
        }
    }

解决方法:

假设您已经做完所有准备工作,包括安装Microsoft Access 2010 Runtime以获取相关的驱动程序,请尝试以下操作,因为我过去在此方面已经取得了成功.

如果您的输入文件是* .xlsx类型,请尝试替换

Extended Properties="Excel 12.0"

在您的连接字符串中

Extended Properties="Excel 12.0 Xml"

此问题通常是由于Excel文件格式有问题或不匹配而发生的,因此,根据经验,您要尝试的第一件事是打开Excel并创建一个新的.xlsx文件,其中包含您自己键入的几个示例数据(而不是复制/粘贴).您不需要太多的输入即可测试代码段.几个带有您期望的正确信息的单元将起作用.这种方法消除了实际Excel文件而不是C#代码的任何问题.

让我们知道您的情况.

标签:asp-net,c,excel,oledb
来源: https://codeday.me/bug/20191120/2045474.html