日期:2014-05-18  浏览次数:20794 次

用oledb连接excel,GetSchema得到同一个Sheet两次的问题
如题,这个Excel明明只有一个sheet
代码如下:
C# code
string connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\t.xls;Extended Properties=\"Excel 8.0; Imex=1;HDR=yes;\";";
OleDbConnection con = new OleDbConnection(connString);
con.Open();
DataTable ret = con.GetSchema("Tables");
con.Close();
foreach (DataRow row in ret.Rows)
{
    Response.Write(row["TABLE_NAME"] + "<br>");
}



上面的代码输出了2行:
sales_contractinvoice
sales_contractinvoice$

求解

------解决方案--------------------
可以判断最后一个字符嘛,如果是"$"就忽略
------解决方案--------------------
还在编辑中的文件就会产生加$的临时文件
楼主是不是打开EXCEL然后没保存就直接运行你的程序了
所以会有临时SHEET
------解决方案--------------------
直接判断,有$结尾的是合法的Excel Sheet,非$结尾的不是合法的Sheet,直接过滤就可以。