'_xlnm._FilterDatabase$' 不是一個有效名稱

做了很多次讀取Execl的功能了。今天頭一次碰到這個問題:

'_xlnm._FilterDatabase$' 不是一個有效名稱。請確認它不包含無效的字符或標點,且名稱不太長。


今天是準備不考慮一個Execl有多少個表,表名叫什麼。

通過下面代碼:

DataTable schemaTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

for (int i = 0; i < schemaTable.Rows.Count; i++)
{
        //schemaTable.Rows[i][2]每行第2列 或者"TABLE_NAME"   爲表/選項卡名
        string TableName = schemaTable.Rows[i]["TABLE_NAME"].ToString();

}

突然發現這樣一個異常。打開Execl查看,的確沒有'_xlnm._FilterDatabase$'這個鬼東西

但是讀取出來的確有3個表。

發現Filter這個單詞是過濾,重新打開看了下,的確是有過濾的。

去掉去掉,再試正常了,然後找了一張乾淨的表,再試試,也沒問題。

好吧,避免Execl中存在過濾 會多一個 _xlnm._FilterDatabase$ 噁心的表,加個判斷吧。


if (TableName.Contains("_FilterDatabase"))
{
         continue;
}

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章