C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 126 を表示中)
■75009 / )  OpenXMLでExcelにパスワードを付ける方法
□投稿者/ kanai (1回)-(2015/02/17(Tue) 23:43:42)

分類:[.NET 全般] 

開発環境はWindows7, Visual Studio 2010, VB, .Net Framework 3.5です。

Officeオートメーションを使用せずに、Excelファイル(xlsx, Excel 2010の利用を想定)にパスワードを設定する方法を探しています。
NPOI, ClosedXMLを試しましたが、該当する方法が見つからなかったので、OpenXMLを調べています。
WorkbookProtection.WorkbookPasswordを使えば出来そうなのですが、具体的な設定方法が分からず困っております。
DocumentFormat.OpenXml.HexBinaryValueという型のようですが、目的のパスワードの値をどのように加工して設定するのでしょうか。
ご教示いただきたく、よろしくお願いします。

WorkbookProtection.WorkbookPassword Property
https://msdn.microsoft.com/ja-jp/library/documentformat.openxml.spreadsheet.workbookprotection.workbookpassword(v=office.14).aspx

現在試しているコードは以下の通りです。

Imports DocumentFormat.OpenXml
Imports DocumentFormat.OpenXml.Spreadsheet
Imports DocumentFormat.OpenXml.Packaging

Module Module1

   Sub Main()

       Dim fileName As String = "Book1.xlsx"
       Dim password As String = "password"

       Dim document As SpreadsheetDocument = SpreadsheetDocument.Open(fileName, True)
       Dim wbPart As WorkbookPart = document.WorkbookPart

       wbPart.Workbook.WorkbookProtection = New WorkbookProtection()
       wbPart.Workbook.WorkbookProtection.WorkbookPassword = ? 

       document.Close()

   End Sub

End Module

返信 編集キー/


管理者用

- Child Tree -