0
我已經嘗試了幾個我在這裏看到的解決方案,但是在編寫Excel文件時仍然有問題。寫Excel文件與其他用戶發生衝突
我有一個模板xlsx文件,我最初複製到一個工作文件開始。然後,我有這樣的
using (var connection = new OleDbConnection(string.Format(
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Mode=ReadWrite;Extended Properties=\"Excel 12.0;HDR=YES\";",
outputfileName)))
{
connection.Open();
var command = connection.CreateCommand();
塊隨後進行了一系列的
command.ExecuteNonQuery();
Eventualy中,使用塊關閉之前,我有
connection.Close();
}
在這一點上,似乎我的應用程序掛在Excel文件上。如果我嘗試手動或通過System.Diagnostics.Process
打開它,我會得到「文件被鎖定以供其他用戶進行編輯」,即使我回答「確定」,我仍然只能看到空白模板。
當我實際退出我的應用程序時,Excel文件似乎是完整且可訪問的。顯然,關閉連接並不足以清除緩衝區並釋放文件。
我想知道的是如何釋放我對文件的保留,以便我實際上可以讓我的應用程序爲用戶提供使用Process打開文件的機會,或者如果他更喜歡手動打開文件。
嘗試使用FileStream.Unlock方法檢查此鏈接http://msdn.microsoft.com/en-us/library/system.io.filestream.unlock%28v=vs.100%29.aspx – MMK