close

現在的企業工作,不論你是從是什麼職務,用Excel已經是基本技能

這對於IT人員來講,就會接到一些要存Excel內的資料啊~ 諸如此類的需求~

 

最近就是User在丟Excel到系統的時候,發出了找不到Sheet1_ 的錯誤

「Microsoft Jet 資料庫引擎無法找到 'Sheet1$_' 物件。請確定物件…」

哭邀,打開Excel沒有這個工作表,完全沒有。

excel_sheet1

只有一個Sheet1乖乖在裡面,這看起來很一般命名的工作表,IT這邊上傳程式沒有問題..

目標就放在Excel本身上面了!

認真來抓這隻蟲…

先full scan掃到的Table,我們可能會這樣寫

DataTable dtTable = objExcelConnection.GetSchema("Tables");

此時可以從dtTable抓到取得的Excel Sheet Names

抓到Sheet1, Sheet1_

真的抓出這個隱藏?看不見的工作表了..

 

第一個Sheet1是個很一般的工作表,但Sheet1_ 到底是如何來的?

 

原來,經過篩選過後的工作表,Excel會自動幫我產生一個看不見的工作表Sheet1_

但是即使取消了篩選,仍然會存在這個工作表

所以程式上仍然要防

ex: if( sheetname.EndsWith("_") ) //do nothing or else do something

excel_filter  

不過你可以透過刪除Sheet1會一併刪掉隱藏的Sheet1_工作表。

 

 

收工。

arrow
arrow
    全站熱搜

    Wallace 發表在 痞客邦 留言(0) 人氣()