Защита паролем файла Excel в C#

Кто-нибудь знает синтаксис для этого? Я искал везде, и все, что я могу найти, это код C++ для этого. Я пытаюсь программно защитить паролем файл excel, используя пространство имен System.IO.Packaging.

Любые идеи?

Дополнительные замечания:

Я НЕ использую взаимодействие с Excel, а вместо этого использую пространство имен System.IO.Packaging для шифрования и защиты паролем файла Excel.


person yeahumok    schedule 27.05.2009    source источник
comment
Итак, вы пытаетесь создать какой-то защищенный паролем zip-файл, что означает, что ваш вопрос не относится к Excel?   -  person VVS    schedule 27.05.2009
comment
Как я понял, он ссылается на функцию «Сохранить с паролем» в Excel, которую можно использовать через OM Excel.   -  person Dirk Vollmar    schedule 27.05.2009


Ответы (4)


Если вам нужен пароль Excel, все, что вам нужно, это что-то вроде этого:

using Microsoft.Office.Interop.Excel

//create your spreadsheet here...

WorkbookObject.Password = password;
WorkbookObject.SaveAs("spreadsheet.xls")

Для этого необходимо установить Excel.

Конечно, это не имеет ничего общего с System.IO.Packaging, поэтому вам, возможно, придется переформулировать свой вопрос...

person Colin Pickard    schedule 27.05.2009
comment
Это решение сработало. Но для этого потребуется установить офис Microsoft на серверах, где будет выполняться этот код. Так как серверов в моем случае много, заказчик не готов платить за офис Microsoft в каждом сервере. Есть ли другой способ установить пароль в файле Excel без установки Microsoft Office? - person Subodh S; 22.02.2019

Невозможно использовать System.IO.Packaging. Вам придется использовать Microsoft.Office.Interop.Excel с помощью Worksheet.SaveAs. Для этого в вашей целевой системе должен быть установлен Excel.

person Dirk Vollmar    schedule 27.05.2009
comment
Вот ссылка, объясняющая это для тех, кто заинтересован: лист-с-ooxml?forum=os_specifications" rel="nofollow noreferrer">social.msdn.microsoft.com/Forums/en-US/ - person MikeTeeVee; 14.11.2014

Вам нужно будет использовать метод Сохранить как на рабочем листе. У него есть параметр для установки пароля. Вот пример в VB, который можно преобразовать в C#

http://www.codeproject.com/KB/office/Excel_Security.aspx

person user110190    schedule 27.05.2009
comment
Хотя Excel (и автоматизация COM в целом) намного проще в VB, чем в C# (3.0). - person Dirk Vollmar; 27.05.2009

person    schedule
comment
используя Excell Interop, но ключевым моментом здесь является Workbook.WritePassword=somepassword, это то, как нам нужно назначить. - person Chandrasekhar Telkapalli; 28.06.2017