office交流網--QQ交流群號

Access培訓群:792054000         Excel免費交流群群:686050929          Outlook交流群:221378704    

Word交流群:218156588             PPT交流群:324131555

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

2021-02-13 08:00:00
陳熙之
轉貼:
https://blog.csdn.net/cmhdl521/article/details/105512818/
5658
'_xlnm._FilterDatabase$' 不是一箇有效名稱


'_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;
}
分享