Aspose.Cells пароль в защищенном файле Excel (c #) - PullRequest
0 голосов
/ 11 ноября 2019

Я хочу проверить, является ли данный пароль паролем, блокирующим 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 будет показан, и код покинет метод?

1 Ответ

0 голосов
/ 11 ноября 2019

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

Пример кода:

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.

...