Paramètres de protection avancés depuis Excel XP avec C++
Introduction
Ces paramètres de protection restreignent ou permettent aux utilisateurs de:
- Supprimer des lignes ou des colonnes.
- Modifier le contenu, les objets ou les scénarios.
- Formater les cellules, lignes ou colonnes.
- Insérer des lignes, colonnes ou hyperliens.
- Sélectionner des cellules verrouillées ou déverrouillées.
- Utiliser des tableaux croisés dynamiques et bien plus encore.
Aspose.Cells prend en charge tous les paramètres de protection avancés offerts par Excel XP ou les versions ultérieures.
Paramètres de protection avancés utilisant Excel XP et les versions ultérieures
Pour afficher les paramètres de protection disponibles dans Excel XP :
- Dans le menu Outils, sélectionnez Protection puis Protéger la feuille. Une boîte de dialogue s’affiche.
Pour voir les paramètres de protection disponibles dans Excel 2016 :
- Dans le menu Fichier, sélectionnez Protéger le classeur puis Protéger la feuille en cours.
- Sélectionnez Protéger la feuille dans le menu Révision.
Les étapes mentionnées ci-dessus afficheront une boîte de dialogue où vous pourrez autoriser ou restreindre les fonctionnalités de la feuille de calcul ou appliquer un mot de passe à la feuille.
Paramètres de protection avancés utilisant Aspose.Cells
Aspose.Cells prend en charge tous les paramètres de protection avancés.
Aspose.Cells fournit une classe, Workbook, qui représente un fichier Microsoft Excel. La classe Workbook contient une collection Worksheets qui permet d’accéder à chaque feuille de calcul du fichier Excel. Une feuille de calcul est représentée par la classe Worksheet.
La classe Worksheet fournit la propriété GetProtection() utilisée pour appliquer ces paramètres de protection avancés. La propriété GetProtection() est en fait un objet de la classe Protection qui encapsule plusieurs propriétés booléennes pour désactiver ou activer les restrictions.
Voici un petit exemple d’application. Il ouvre un fichier Excel et utilise la plupart des paramètres de protection avancés pris en charge par Excel XP et les versions ultérieures.
#include <iostream>
#include <memory>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Path of input Excel file
U16String inputFilePath = srcDir + u"book1.xls";
// Create workbook
Workbook excel(inputFilePath);
// Access the first worksheet in the Excel file
Worksheet worksheet = excel.GetWorksheets().Get(0);
// Restricting users to delete columns of the worksheet
worksheet.GetProtection().SetAllowDeletingColumn(false);
// Restricting users to delete row of the worksheet
worksheet.GetProtection().SetAllowDeletingRow(false);
// Restricting users to edit contents of the worksheet
worksheet.GetProtection().SetAllowEditingContent(false);
// Restricting users to edit objects of the worksheet
worksheet.GetProtection().SetAllowEditingObject(false);
// Restricting users to edit scenarios of the worksheet
worksheet.GetProtection().SetAllowEditingScenario(false);
// Restricting users to filter
worksheet.GetProtection().SetAllowFiltering(false);
// Allowing users to format cells of the worksheet
worksheet.GetProtection().SetAllowFormattingCell(true);
// Allowing users to format rows of the worksheet
worksheet.GetProtection().SetAllowFormattingRow(true);
// Allowing users to format columns of the worksheet
worksheet.GetProtection().SetAllowFormattingColumn(true);
// Allowing users to insert hyperlinks in the worksheet
worksheet.GetProtection().SetAllowInsertingHyperlink(true);
// Allowing users to insert rows in the worksheet
worksheet.GetProtection().SetAllowInsertingRow(true);
// Allowing users to select locked cells of the worksheet
worksheet.GetProtection().SetAllowSelectingLockedCell(true);
// Allowing users to select unlocked cells of the worksheet
worksheet.GetProtection().SetAllowSelectingUnlockedCell(true);
// Allowing users to sort
worksheet.GetProtection().SetAllowSorting(true);
// Allowing users to use pivot tables in the worksheet
worksheet.GetProtection().SetAllowUsingPivotTable(true);
// Save the modified Excel file
U16String outputFilePath = srcDir + u"output.xls";
excel.Save(outputFilePath, SaveFormat::Excel97To2003);
Aspose::Cells::Cleanup();
return 0;
}
Problème de verrouillage de cellules
Si vous souhaitez restreindre la modification des cellules par les utilisateurs, celles-ci doivent être verrouillées avant l’application des paramètres de protection. Sinon, les cellules peuvent être modifiées même si la feuille est protégée. Dans Microsoft Excel XP, les cellules peuvent être verrouillées via la boîte de dialogue suivante :
Boîte de dialogue pour verrouiller les cellules dans Excel XP |
---|
![]() |
Il est également possible de verrouiller des cellules en utilisant l’API Aspose.Cells. Chaque cellule peut recevoir un format Style contenant une propriété booléenne IsLocked. Définissez la propriété IsLocked sur true ou false pour verrouiller ou déverrouiller la cellule.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Path of input Excel file
U16String inputFilePath = srcDir + u"Book1.xlsx";
// Path of output Excel file
U16String outputFilePath = outDir + u"output.xlsx";
// Create workbook
Workbook workbook(inputFilePath);
// Accessing the first worksheet in the Excel file
Worksheet worksheet = workbook.GetWorksheets().Get(0);
// Lock the style of cell A1
worksheet.GetCells().Get(u"A1").GetStyle().SetIsLocked(true);
// Protect the sheet
worksheet.Protect(ProtectionType::All);
// Save the workbook
workbook.Save(outputFilePath);
std::cout << "Worksheet protected successfully!" << std::endl;
Aspose::Cells::Cleanup();
}