1

当我尝试打开受保护的文档时,我遇到了这个异常

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 文件?

4

1 回答 1

2

如果 EEPlus 不是强制性的,您可以简单地使用 Workbook.HasPassword 属性。

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

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

于 2012-10-09T06:44:47.997 回答