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/
6629
'_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();

}

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

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

發(fā)現(xiàn)Filter這個單詞是過濾,重新打開看了下,的確是有過濾的。



去掉去掉,再試正常了,然后找了一張干凈的表,再試試,也沒問題。

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


if (TableName.Contains("_FilterDatabase"))
{
         continue;
}
分享
聯(lián)系我們
聯(lián)系人: 王先生
Email: 18449932@qq.com
QQ: 18449932
微博: officecn01
移動訪問