Пароль Aspose.Cells в защищенном файле Excel (C#)

Я хочу проверить, является ли данный пароль паролем, который блокирует файл Excel.

Вот как я это пробовал:

var DepartmentStream = new FileStream(Deparment, FileMode.Open);
var EmplyoeeStream = new FileStream(Employee, FileMode.Open);

var options = new LoadOptions {Password = "ExamplePassword123"};

DepartmentGrid = new Workbook(DepartmentStream); // set as a Workbook property and doesn't need a password

try
    {
     EmployeeGrid = new Workbook(EmplyoeeStream , options); // set as a Workbook property
    }
catch (Exception ex)
    {
     EmployeeGrid= null;
    }

if (EmployeeGrid == null)
    {
     MessageBox.Show("The given password is wrong!", "Wrong password",);
     return;
    }

Как я могу это исправить, чтобы, если пароль EmployeeGrid (установленный как свойство Workbook) не совпадал с заданным паролем, отображался MessageBox, а код покидал метод?


person probst    schedule 11.11.2019    source источник


Ответы (1)


Ваш код выглядит для меня нормально, что с ним не так? Ваш текущий код пытается загрузить зашифрованный (защищенный паролем) файл с заданным паролем. Если ваш код не делает то, что вы хотите, уточните свои потребности, чтобы мы могли помочь вам соответствующим образом. Я также напишу еще один пример кода для вашей полной справки: например,

Пример кода:

string m_documentFile = "e:\\test2\\EncryptedBook1j.xls";
            //Get the password list to store into arrays.
            string[] m_passwordList = { "001", "002", "003", "004", "005", "006", "007", "008" };
            Workbook _workBook;
            int i = 0;
            int ncnt = 0;

            //Check if the file is password protected.
            FileFormatInfo fft = FileFormatUtil.DetectFileFormat(m_documentFile);
            bool check = fft.IsEncrypted;
        RetryLabel:
            try
            {
                if (check)
                {

                    LoadOptions loadOps = new LoadOptions();

                    for (i = ncnt; i < m_passwordList.Length; i++)
                    {

                        loadOps.Password = m_passwordList[i];
                        _workBook = new Workbook(m_documentFile, loadOps);
                        MessageBox.Show("Opened Successfully with the Password:" + m_passwordList[i]);
                        break;


                    }

                }
            }
            catch (Exception ex)
            {

                if (ex.Message.CompareTo("Invalid password.") == 0)
                {

                    MessageBox.Show("Invalid Password: " + m_passwordList[i] + " ,trying another in the list");
                    ncnt = i + 1;
                    goto RetryLabel;

                }


            }

PS. Я работаю разработчиком поддержки / евангелистом в Aspose.

person Amjad Sahi    schedule 11.11.2019