Microsoft Excel — популярное программное обеспечение для управления данными в организациях. В основном это связано с его расширенными функциями обработки и представления данных. В наш технологический век документы распространяются виртуально, а не в печатных копиях. Эти файлы могут содержать сложные и конфиденциальные данные. Таким образом, чтобы сохранить целостность таких файлов, вам может потребоваться защитить их от модификации. Для этой цели пригодятся функции защиты Excel. В этой статье вы узнаете, как программно защищать и снимать защиту с файлов Excel с помощью C++.
- C++ API для защиты и снятия защиты с файлов Excel
- Защита файлов Excel с помощью C++
- Снять защиту книги Excel с помощью C++
- Защитить лист Excel с помощью C++
- Снять защиту листа 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 с помощью класса IWorkbook.
- Защитите файл с помощью IWorkbook->Protect(Aspose::Cells::ProtectionType protectionType, intrusiveptrAspose::Cells::Systems::String пароль).
- Сохраните защищенный файл Excel с помощью команды IWorkbook->Save(intrusiveptrAspose::Cells::Systems::String имя_файла) метод.
В следующем примере кода показано, как защитить файлы 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 с помощью класса IWorkbook.
- Снимите защиту с файла с помощью команды IWorkbook->Unprotect(intrusiveptrAspose::Cells::Systems::String пароль).
- Задайте для пароля значение NULL с помощью команды IWorkbook->GetISettings()->SetPassword(intrusiveptrAspose::Cells::Systems::String значение) метод.
- Сохраните незащищенный файл Excel с помощью команды IWorkbook->Save(intrusiveptrAspose::Cells::Systems::String имя_файла) метод.
В следующем примере кода показано, как снять защиту с файлов 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"));
// Установить пароль на ноль
workbook->GetISettings()->SetPassword(NULL);
// Сохраните файл Excel
workbook->Save(outDir->StringAppend(new String("sampleExcelFileUnprotected_out.xlsx")));
Защитить лист Excel с помощью C++
Помимо защиты файлов Excel, вы также можете защитить отдельные рабочие листы. Пожалуйста, используйте следующие шаги для защиты листов Excel.
- Во-первых, загрузите файл Excel с помощью класса IWorkbook.
- Получите рабочий лист, который вы хотите защитить, из коллекции рабочих листов, используя метод IWorkbook->GetIWorksheets()->GetObjectByIndex( Aspose::Cells::Systems::Int32 index).
- Получите защиту рабочего листа с помощью метода IWorksheet->GetIProtection().
- Установите параметры защиты, такие как SetAllowEditingContent (логическое значение).
- Установите пароль с помощью IPProtection->SetPassword (intrusiveptrAspose::Cells::Systems::String значение) метод.
- Наконец, сохраните файл Excel с защищенным рабочим листом, используя IWorkbook->Save(intrusiveptrAspose::Cells::Systems::String имя_файла) метод.
В следующем примере кода показано, как защитить лист 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 с помощью класса IWorkbook.
- Получите доступ к защищенному рабочему листу, используя метод IWorkbook->GetIWorksheets()->GetObjectByIndex( Aspose::Cells::Systems::Int32 index).
- Снимите защиту рабочего листа с помощью команды IWorksheet->Unprotect(intrusiveptrAspose::Cells::Systems::String пароль).
- Наконец, сохраните файл Excel с незащищенным рабочим листом, используя IWorkbook->Save(intrusiveptrAspose::Cells::Systems::String имя_файла) метод.
В следующем примере кода показано, как снять защиту листа 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, используя официальную документацию.