| 
          
            □投稿者/ kanai (1回)-(2015/02/17(Tue) 23:43:42)
              | ■75009 / inTopicNo.1) | OpenXMLでExcelにパスワードを付ける方法 |  
 
          
            
              
                |  | 分類:[.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
 |  |