Захист і зняття захисту з файлів Excel

Microsoft Excel — популярне програмне забезпечення для керування даними в організаціях. Головним чином це пов’язано з розширеними функціями обробки та представлення даних. У наш технологічний вік документи обмінюються віртуально, а не друкованими копіями. Ці файли можуть містити складні та конфіденційні дані. Тому, щоб підтримувати цілісність таких файлів, вам може знадобитися захистити їх від модифікації. Функції захисту Excel стають у пригоді для цієї мети. У цій статті ви дізнаєтеся, як програмно захистити та зняти захист файлів Excel за допомогою C++.

C++ API для захисту та зняття захисту з файлів Excel — безкоштовне завантаження

Aspose.Cells for C++ — це рідна бібліотека C++, яка дозволяє працювати з файлами Excel без встановлення Microsoft Excel. Тому він використовується для автоматизації багатьох робочих процесів Excel. API надає низку корисних функцій, зокрема захист і зняття захисту файлів Excel. Ви можете встановити API через NuGet або завантажити його безпосередньо з розділу Завантаження.

PM> Install-Package Aspose.Cells.Cpp

Захист файлів Excel за допомогою C++

Aspose.Cells for C++ надає такі типи захисту для захисту файлів Excel.

  • Усі: захистити всі дані, щоб користувач не міг нічого змінити.
  • Зміст: захистити вміст аркуша.
  • Об’єкти: захистіть об’єкти на аркуші, щоб користувач не міг змінювати об’єкти малюнка.
  • Сценарії: захистіть сценарії на аркуші.
  • Структура: захистіть структуру робочої книги.
  • Windows: захистити збережені вікна від змін.
  • Немає: захист не застосовано.

Нижче наведено кроки для захисту файлів Excel за допомогою C++.

У наведеному нижче прикладі коду показано, як захистити файли Excel за допомогою C++.

// Шлях вихідного каталогу.
StringPtr srcDir = new String("SourceDirectory\\");

// Шлях вихідного каталогу.
StringPtr outDir = new String("OutputDirectory\\");

// Завантажте файл Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("sampleExcelFile.xlsx")));

// Захистіть книгу, вказавши тип захисту
workbook->Protect(ProtectionType::ProtectionType_All, new String("12345"));

// Збережіть файл Excel
workbook->Save(outDir->StringAppend(new String("sampleExcelFile_protected_out.xlsx")));

Зніміть захист книги Excel за допомогою C++

Нижче наведено кроки для зняття захисту з файлу Excel.

У наведеному нижче прикладі коду показано, як зняти захист файлів Excel.

// Шлях вихідного каталогу.
StringPtr srcDir = new String("SourceDirectory\\");

// Шлях вихідного каталогу.
StringPtr outDir = new String("OutputDirectory\\");

// Завантажте файл Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("sampleExcelFileProtected.xlsx")));

// Зняти захист робочої книги
workbook->Unprotect(new String("12345"));

// Встановіть пароль на null
workbook->GetISettings()->SetPassword(NULL);

// Збережіть файл Excel
workbook->Save(outDir->StringAppend(new String("sampleExcelFileUnprotected_out.xlsx")));

Захистіть аркуш Excel за допомогою C++

Окрім захисту файлів Excel, ви також можете захистити окремі робочі аркуші. Щоб захистити аркуші Excel, виконайте наведені нижче дії.

У наведеному нижче прикладі коду показано, як захистити аркуш Excel.

// Шлях вихідного каталогу.
StringPtr srcDir = new String("SourceDirectory\\");

// Шлях вихідного каталогу.
StringPtr outDir = new String("OutputDirectory\\");

// Завантажте файл Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("sampleExcelFile.xlsx")));

// Доступ до першого аркуша у файлі Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Доступ до захисту аркуша
intrusive_ptr<IProtection> protection = worksheet->GetIProtection();

// Наступні 3 методи призначені лише для форматів Excel 2000 і попередніх версій
protection->SetAllowEditingContent(false);
protection->SetAllowEditingObject(false);
protection->SetAllowEditingScenario(false);

// Захистіть перший аркуш паролем "12345"
protection->SetPassword(new String("12345"));

// Збережіть файл Excel
workbook->Save(outDir->StringAppend(new String("sampleExcelFile_protectedWorksheet_out.xlsx")));

Зніміть захист аркуша Excel за допомогою C++

Нижче наведено кроки для зняття захисту з аркушів Excel.

У наведеному нижче прикладі коду показано, як зняти захист аркуша Excel за допомогою C++.

// Шлях вихідного каталогу.
StringPtr srcDir = new String("SourceDirectory\\");

// Шлях вихідного каталогу.
StringPtr outDir = new String("OutputDirectory\\");

// Завантажте файл Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("sampleExcelFileProtectedWorksheet.xlsx")));

// Доступ до першого аркуша у файлі Excel
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Зняти захист аркуша
worksheet->Unprotect(new String("12345"));

// Збережіть файл Excel
workbook->Save(outDir->StringAppend(new String("sampleExcelFileUnprotectedWorksheet_out.xlsx")));

Отримайте безкоштовну ліцензію

Ви можете спробувати API без оціночних обмежень, надіславши запит на безкоштовну тимчасову ліцензію.

Висновок

У цій статті ви дізналися, як захистити та зняти захист файлів Excel за допомогою C++. Крім того, ви також навчилися захищати робочі аркуші від змін. Aspose.Cells for C++ — це великий API для роботи з Excel для автоматизації таких завдань, як заміна тексту в клітинках або обробка складних даних, представлених у вигляді графіків і діаграм. Ви можете детально вивчити API, використовуючи офіційну документацію.

Дивись також