Как открыть файл Excel с защитой только для чтения? - PullRequest
1 голос
/ 18 января 2012

Я открыл файл Excel в моем приложении C # WinForm, добавив ссылку на Microsoft.Office.Interop.Excel.dll и используя DSO FRAMER CONTROL.Но я хочу открыть свой файл Excel с защитой только для чтения. Я успешно сделал это для приложения WORD, как это

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

В то же самое время я хочу сделать эту работу для Excel. Но я не смогтаким образом защитить файл 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.

Ответы [ 2 ]

12 голосов
/ 18 января 2012

Вызов метода Open с третьим параметром (ReadOnly) = true.

См. Документацию MSDN :

ReadOnly
Необязательный объект.Верно, чтобы открыть книгу в режиме только для чтения.

0 голосов
/ 18 января 2012

В классе WorkBook есть метод Protect, похожий (но не идентичный) на тот, который поддерживается в Word.Я не могу найти документацию COM / взаимодействия, но документация VSTO охватывает то же основание, и сигнатуры методов одинаковы:

Защита

Защищает книгу, чтобы ее нельзя было изменить.

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

(Все это предполагает, что вы хотели добиться защиты документа, поскольку именно это делает код Word, а не открытиедокумент только для чтения, о чем говорит ваш рассказ, и в этом случае @ gdoron более подходит

...