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 に答える