c#中导入excel至sql server时出现“外部表不是预期格式”

时间:2022-12-15 20:30:23

导入excel至sql server时出现“外部表不是预期格式”的排查:

首先要注意有两个字符串,一个用于初始化SqlConnection,一个用于初始化OleDbConnection。

前者在Settings.settings中手动设置比较不容易出错,之后引用该设置:

string str=ConfigurationManager.ConnectionStrings["你的字符串名称"].ConnectionString.ToString();


而遇到的“索引XX行出错,外部表不是预期格式”是OleDbConnection实例open()时出现的,原因在于最初用第一种格式来打开一个xlsx文件了。

目前了解到有两种与excel连接的写法,注意Provider 和Properties的区别:

只用于Excel2007以前的.xls文件:

string strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + filePath + ";Extended Properties='Excel 8.0;"; 

可用于xlsx的写法:

 
string strConn = "Provider=Microsoft.Ace.OleDb.12.0;" + "data source=" + filePath + ";Extended Properties='Excel 12.0; "; 


对了,本机环境为office2007,更高级的版本我还没有测试过是否同样可行。期待反馈~