2016-11-19 76 views
1

我有一個在多臺計算機上使用的應用程序,它們都訪問Excel文檔,問題是當2個用戶一次使用它時,用戶將得到一個該文件正在被其他人使用的錯誤。C#Excel不要求登錄

我解決了這個問題通過將其設定爲只讀方式打開,但這樣做的問題是,它要求我登錄(「鍵入帳戶的電子郵件,你想開......與」)

如果每個用戶都必須登錄,這不太實際,有沒有辦法跳過?如果我關閉提示符,但它正常工作。

excApp = new Excel.Application(); 

excWkb = excApp.Workbooks.Open(strWkbLocation, ReadOnly: true); 

感謝

+0

您確定提示輸入您希望打開的帳戶的電子郵件...是否來自Excel?或者別的地方。你有沒有試圖讓Excel文件成爲模板?因爲這也將解決同一文件的多次打開而不使用只讀選項。 – JohnG

回答

0

Workbook.Open的定義是:

Workbook Open(string Filename, object UpdateLinks, object ReadOnly, object Format, 
    object Password, object WriteResPassword, object IgnoreReadOnlyRecommended, 
    object Origin, object Delimiter, object Editable, object Notify, object Converter, 
    object AddToMru, object Local, object CorruptLoad); 

所以第三個參數是ReadOnly和第七是IgnoreReadOnlyRecommended

它可能不會傷害也禁用應用程序的警告,但我不認爲這是必要的:

excApp = new Excel.Application(); 
excApp.DisplayAlerts = false; 
excWkb = excApp.Workbooks.Open(strWkbLocation, Type.Missing, true, Type.Missing, 
    Type.Missing, Type.Missing, true); 
excApp.DisplayAlerts = true; 

我不是說這是不可能的,但我不知道的方式通過外科手段定義一個參數,就像你在VBA中做的那樣(如你的例子)。