日期:2014-05-17  浏览次数:21002 次

C#将EXCEL中的内容导入到数据库的时的一些问题。
我用的OleDbConnection方法。把EXCEL2003的表导入到数据库中。在OPEN的时候总是报错:“外部表不是预期格式”,可是打开EXCEL2003这个表后,再运行这个导入方法就没问题了,这是为什么呢?

我用这个方法换上EXCEL2007的连接串后,2007的可以正常导入。

求解,或是有没有别的什么好办去读EXCEL

EXCEL的对象模型怎么用。

------解决方案--------------------
如果是Excel软件生成的是应该可以读取,
生成xls文件的方法有很多,有的纯粹是txt格式的,就不能读取的
------解决方案--------------------
string strConn = "";
switch (type)
{
case ".XLS":
strConn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + file + ";Extended Properties='Excel 8.0;HDR=NO;IMEX=1'";
break;
case ".XLSX":
strConn = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + file + ";Extended Properties='Excel 12.0;HDR=NO;IMEX=1'";
break;
}
OleDbConnection objConn = new OleDbConnection(strConn);
DataSet dsExcel = new DataSet();
objConn.Open();
System.Data.DataTable dtOle = objConn.GetSchema("Tables");
DataTableReader dtReader = new DataTableReader(dtOle);
string xlsName = "";
if (dtReader.Read())

------解决方案--------------------
,我的EXCEL是从一个RCM系统中导出的。

这种导出的一般是不是真正的xls文件格式的。

这要看导出的方法是不是Excel.Application导出的,如果不是,就不是真正的excel文件
------解决方案--------------------
不是真正的Excel文件,一般都是文本文件,你把后缀改成TXT用记事本打开看下
------解决方案--------------------
推荐使用NPOI
http://blog.csdn.net/cdefg198/article/details/7844305
------解决方案--------------------
NPOI
用Excel類,老是有不預期的錯誤出現,
我準備把原先的代碼全部喀嚓掉,用NPOI
注意一個版本的問題,會相對於.net frammework