如题,这个Excel明明只有一个sheet
代码如下:
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$求解
代码如下:
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$求解
把旧的Sheet里的内容拷贝过来,再删除旧的Sheet,
就正常了,只读取出一个:
Sheet1$
此时输出的是:
sales_contractinvoice
abcd$难道这个Excel里还有一个隐藏Sheet?
上的解决方案,未能解决,继续求助……
参考我1楼的回复,只有一个sheet时,会有$我现在是判断,不包含$的,就忽略
目前暂时是解决了,但是不知道原因,始终觉得是个隐患而且我删除这个Sheet,那个所谓隐藏的Sheet也就没了,这个问题经常出现,有的Excel就是有这个隐藏Sheet,有的又没有,真郁闷
楼主是不是打开EXCEL然后没保存就直接运行你的程序了
所以会有临时SHEET