2012-01-18 45 views
1

我在我的C#WinForm應用程序中添加了Excel文件,添加了對Microsoft.Office.Interop.Excel.dll的引用,並使用了DSO FRAMER CONTROL。但我要打開我的Excel文件只讀protection.I已經成功做到了這一點爲Word應用程序像這樣如何打開只讀保護的Excel文件?

Word.Document wordDoc = (Word.Document)axFramerControl1.ActiveDocument; 
Word.Application wordApp = wordDoc.Application; 
wordDoc.Protect(Word.WdProtectionType.wdAllowOnlyReading); 

在同我想要做這項工作Excel.But我能不能夠保護Excel文件就這樣。

string path = "C:\\test-wb.xlsx"; 
axFramerControl1.Open(path, true,"excel.sheet", "", ""); 

Excel._Workbook excelDoc =(Microsoft.Office.Interop.Excel._Workbook)axFramerControl1.ActiveDocument; 
Excel.Application excelApp =excelDoc.Application; 
//What code should i write to protect Excel Workbook with read - only. 
excelDoc.Protect(misval, true, misval);//It is not working. 

回答

11

調用Open方法與第三參數(ReadOnly)= true

請參閱MSDN documentation

只讀
可選的對象。如果是以只讀模式打開工作簿。

+0

:謝謝gdoron.Can你可以告訴我應該給我的上述代碼,我在我的問題中提到的那個參數? – Saravanan 2012-01-18 09:26:11

+0

@Saravanan。根據MSDN,你應該打開第三個參數是真的。你使用哪個.Net框架?.Net 4? – gdoron 2012-01-18 11:27:57

+0

:是的,我正在使用.net 4 – Saravanan 2012-01-18 11:30:05

-1

WorkBook類有一個Protect方法,與Word支持的類似(但不完全相同)。我找不到COM /互操作的文件,但文件VSTO覆蓋相同地,和方法簽名是相同的:

Protect

保護工作簿,以便它不能被修改。

public virtual void Protect (
    [OptionalAttribute] Object Password, 
    [OptionalAttribute] Object Structure, 
    [OptionalAttribute] Object Windows 
) 

(這一切都假定你想實現是爲了保護文件,因爲這是道代碼做什麼,而不是隻打開讀取文件,這是你的敘述,似乎什麼是說,在這種情況下,@gdoron's answer更合適

+0

我使用了excelDoc.Protect(misval,true,misval);但它不工作... – Saravanan 2012-01-18 09:44:43