Open XML SDK 2.0

http://msdn.microsoft.com/en-us/library/bb448854

http://msdn.microsoft.com/en-us/library/gg278316%28v=office.14%29

http://msdn.microsoft.com/en-us/library/cc850837 ---how to 

Excel加密

将想要设定的密码传入Mothed 1得到加密密码,将加密密码传给workbookPassword,即实现加密。

SheetProtection wSheetProtection = new SheetProtection() { Password = workbookPassword,Sheet = true, Objects = true, Scenarios = true };

Mothed 1 :

    public String GetSheetPassword(String password)
    {
      Int32 pLength = password.Length;
      Int32 hash = 0;
      if (pLength == 0) return hash.ToString("X");

      for (Int32 i = pLength - 1; i >= 0; i--)
      {
        hash = hash >> 14 & 0x01 | hash << 1 & 0x7fff;
        hash ^= password[i];
      }
      hash = hash >> 14 & 0x01 | hash << 1 & 0x7fff;
      hash ^= 0x8000 | 'N' << 8 | 'K';
      hash ^= pLength;
      return hash.ToString("X");
    }
原文地址:https://www.cnblogs.com/luhe/p/2660396.html