|
こんばんは。
Hongliang さん、お返事ありがとうございます。
なかなか難しくて、
まだ書き込みパスワードが解除できていません。
ビルドしたときにエラーは発生していないのですが、
コピーしたファイルを開くと書き込みのパスワードを
聞いてきます。
// For EPPlus
using OfficeOpenXml;
using OfficeOpenXml.Style;
// パスワードが設定されているエクセル
var template = new FileInfo(xlsFile);
// パスワードは「1111」
using (ExcelPackage package = new ExcelPackage(template, "1111"))
{
// シート名「201906」
string SN = "201906";
ExcelWorksheets worksheets = package.Workbook.Worksheets;
var sheet = worksheets[SN];
// 読み取りパスワード解除
package.Encryption.Password = "";
// EPPlusには書き込みパスワードの解除のプロパティがなかったので
// 直接XMLを操作している
var doc = package.Workbook.WorkbookXml;
var man = new XmlNamespaceManager(doc.NameTable);
var root = doc.DocumentElement;
man.AddNamespace("def", root.NamespaceURI);
var sharing = (XmlElement)root.SelectSingleNode("def:fileSharing", man);
// 書き込みパスワードの解除
//sharing.RemoveAttribute("reservationPassword");
sharing.RemoveAttribute("1111");
// 別名でエクセルを保存
package.SaveAs(new FileInfo(@"C:\Sample.xlsx"));
|