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

我正在创build一个小的应用程序来导入Excel数据到我的数据库,当我点击button崩溃的错误

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

我试着用googlesearch和改变代码,但问题仍然存在。 我尝试将文件保存为.xls,当我运行代码页面与谷歌浏览器脱机时此网页不可用(甚至不能进入debugging)

这是我的代码:

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以获取相关的驱动程序,请尝试以下操作,因为我过去已经成功完成。

如果您的input文件是*.xlsxtypes的尝试replace

 Extended Properties="Excel 12.0" 

在你的连接string中

 Extended Properties="Excel 12.0 Xml" 

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

让我们知道你是如何去的。