如何使用EPPlus检查它是否是受密码保护的excel文件?

时间:2012-09-29 22:17:09

标签: c# excel epplus

当我尝试打开安全文档时,我有这个例外

System.Exception : Can not open the package. Package is an OLE compound document. If this is an encrypted package, please supply the password

我为测试写了这个硬方法

public bool HasPassword()
        {
            try
            {
                if(File.Exists(FileName))
                {
                    var fileStream = File.Open(FileName, FileMode.Append);
                    var package = new ExcelPackage();
                    package.Load(fileStream);
                }
            }
            catch(Exception)
            {
                return true;
            }
            return false;
        }

但我认为这是错误的做法。

如何检查是否是受密码保护的Excel文件?

1 个答案:

答案 0 :(得分:2)

如果EEPlus不是强制性的,您只需使用Workbook.HasPassword属性。

Workbook book = ****xyz****;
if (book.HasPassword)
{
    book.Password = Properties.Settings.Default.ExcelFilePW;
    MessageBox.Show("Excel file is encrpyted");
}

因此,您需要创建对Office Interop Excel组件的引用,该组件可以在.NET / COM中找到(有时)。 然后使用using指令将其嵌入到项目中。