2012-01-12 43 views
0

檢查出下面的鏈接,並試圖使用在那裏提出的方法沒有結果。我的問題涉及從使用OLEDB提供程序的Excel文件導入,出於某些我不明白的原因,當文件在Excel中打開時,導入將某些列(例如日期)顯示爲文本,但當文件未被使用。我的問題可以通過檢查xls文件是否打開/正在使用來臨時解決,因此我可以發佈一條消息,要求用戶關閉文件。查找文件是否在使用中 - 特別是一個xls文件

感謝, 米哈伊爾

https://www.google.com/search?rlz=1C1RNHN_enUS465US465&ix=hea&sourceid=chrome&ie=UTF-8&q=stackoverflow

+1

這是Google搜索「stackoverflow」的鏈接。我們這裏所有人都已經找到了。我認爲你包含錯誤的鏈接。 – 2012-01-12 15:09:53

+0

不是重複的問題,但Emmanuel鏈接是正確的,當文件由Excel打開時,代碼不適用於我。 – 2012-01-12 16:01:48

回答

5

這樣做的一種方法是以獨佔模式打開文件。如果該文件在任何其他進程中處於打開狀態,則這將失敗,並且還會阻止其他進程打開它,直到關閉該句柄。例如:

File.Open("worksheet.xls", FileMode.Open, FileAccess.Read, FileShare.None); 
+0

這正是我正在做的,以獨佔模式打開。該文件在運行我的程序時在Excel中打開,但我可以打開它,結果流不爲空,因此我的問題。這對Excel本身是特別的嗎? – 2012-01-12 17:32:45

+0

我一直在測試這個更多,不完全確定是什麼原因造成的,有時打開的Excel文件只能像上面的代碼一樣打開,所以我會採取答案是正確的,看看是否可以找出Excel的具體細節。謝謝你的幫助! – 2012-01-12 18:37:45

相關問題