读书人

用oledb连接excelGetSchema得到同一

发布时间: 2012-03-24 14:00:46 作者: rapoo

用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,直接过滤就可以。

读书人网 >C#

热点推荐