Protéger et déprotéger la feuille de calcul

Protéger les feuilles de calcul

Lorsqu’une feuille de calcul est protégée, les actions qu’un utilisateur peut effectuer sont restreintes. Par exemple, ils ne peuvent pas saisir de données, insérer ou supprimer des lignes ou des colonnes, etc. Les options de protection générales dans Microsoft Excel sont :

  • Contenu
  • Objets
  • Scénarios

Les feuilles de calcul protégées ne cachent ni ne protègent les données sensibles, c’est donc différent du chiffrement de fichier. Généralement, la protection de la feuille de calcul convient à des fins de présentation. Elle empêche l’utilisateur final de modifier les données, le contenu et la mise en forme dans la feuille de calcul.

Ajout ou suppression de protection

Aspose.Cells fournit une classe, Workbook, qui représente un fichier Microsoft Excel. La classe Workbook contient une WorksheetCollection qui permet d’accéder à chaque feuille de calcul dans un fichier Excel. Une feuille de calcul est représentée par la classe Worksheet.

La classe Worksheet fournit la méthode Protect qui est utilisée pour appliquer une protection à une feuille de calcul. La méthode Protect accepte les paramètres suivants :

  • Type de protection, le type de protection à appliquer sur la feuille de calcul. Le type de protection est appliqué à l’aide de l’énumération ProtectionType.
  • Nouveau mot de passe, le nouveau mot de passe utilisé pour protéger la feuille de calcul.
  • Ancien mot de passe, l’ancien mot de passe, si la feuille de calcul est déjà protégée par mot de passe. Si la feuille de calcul n’est pas déjà protégée, il suffit de transmettre une valeur nulle.

L’énumération ProtectionType contient les types de protection prédéfinis suivants :

Types de protection Description
ALL L’utilisateur ne peut rien modifier sur cette feuille de calcul
CONTENTS L’utilisateur ne peut pas saisir de données dans cette feuille de calcul
OBJECTS L’utilisateur ne peut pas modifier les objets graphiques
SCENARIOS L’utilisateur ne peut pas modifier les scénarios enregistrés
STRUCTURE L’utilisateur ne peut pas modifier la structure enregistrée
WINDOWS L’utilisateur ne peut pas modifier les fenêtres enregistrées
NONE Aucune protection

L’exemple ci-dessous montre comment protéger une feuille de calcul avec un mot de passe.

Après que le code ci-dessus a été utilisé pour protéger la feuille de calcul, vérifiez la protection sur la feuille de calcul en l’ouvrant. Une fois que vous ouvrez le fichier et essayez d’ajouter des données à la feuille de calcul, la boîte de dialogue suivante s’affiche :

Une boîte de dialogue avertissant qu’un utilisateur ne peut pas modifier la feuille de calcul

todo:image_alt_text

Pour travailler sur la feuille de calcul, déprotégez la feuille de calcul en sélectionnant la Protection, puis Déprotéger la feuille dans le menu Outils comme indiqué ci-dessous.

Sélection de l’option Déprotéger la feuille

todo:image_alt_text

Une boîte de dialogue s’ouvre demandant un mot de passe.

Saisir le mot de passe pour désactiver la protection de la feuille de calcul

todo:image_alt_text

Protection de quelques cellules

Il peut y avoir certains scénarios où vous avez besoin de verrouiller uniquement quelques cellules dans la feuille de calcul. Si vous voulez verrouiller certaines cellules spécifiques dans la feuille de calcul, vous devez déverrouiller toutes les autres cellules de la feuille. Toutes les cellules d’une feuille de calcul sont déjà initialisées pour le verrouillage, vous pouvez vérifier ceci en ouvrant un fichier Excel dans MS Excel et en cliquant sur Format | Cellules… pour afficher la boîte de dialogue Format Cells puis cliquez sur l’onglet Protection et voir si une case à cocher intitulée “Verrouillée” est cochée par défaut.

Voici les deux approches pour implémenter la tâche.

Méthode 1 :

Les points suivants décrivent comment verrouiller quelques cellules à l’aide de MS Excel. Cette méthode s’applique aux versions Microsoft Office Excel 97, 2000, 2002, 2003 et supérieures.

  1. Sélectionnez la feuille de calcul entière en cliquant sur le bouton Tout sélectionner (le rectangle gris directement au-dessus du numéro de ligne pour la ligne 1 et à gauche de la lettre de colonne A).

  2. Cliquez sur Cellules dans le menu Format, cliquez sur l’onglet Protection, puis désélectionnez la case à cocher Verrouillée.

    Cela déverrouille toutes les cellules de la feuille de calcul

  1. Sélectionnez simplement les cellules que vous voulez verrouiller et répétez l’étape 2, mais cette fois, sélectionnez la case à cocher Verrouillée.
  2. Dans le menu Outils, sélectionnez Protection, cliquez sur Protéger la feuille, puis cliquez sur OK.

Méthode2 :

Dans cette méthode, nous utilisons uniquement l’API Aspose.Cells pour effectuer la tâche.

L’exemple suivant montre comment protéger quelques cellules dans la feuille de calcul. Il déverrouille d’abord toutes les cellules de la feuille de calcul, puis verrouille 3 cellules (A1, B1, C1) dans celle-ci. Enfin, il protège la feuille de calcul. Une ligne / colonne a une API de style qui contient également une méthode setLocked. Vous pouvez utiliser cette méthode pour verrouiller ou déverrouiller la ligne / colonne.

Protéger une ligne dans la feuille de calcul

Aspose.Cells vous permet de verrouiller facilement une ligne dans la feuille de calcul. Ici, nous pouvons utiliser la méthode applyStyle() de la classe Row pour appliquer un style à une ligne particulière dans la feuille de calcul. Cette méthode prend deux arguments : un objet Style et une structure StyleFlag qui contient tous les membres liés à la mise en forme appliquée.

L’exemple suivant montre comment protéger une rangée dans la feuille de calcul. Il déverrouille d’abord toutes les cellules de la feuille de calcul, puis verrouille la première rangée dans celle-ci. Enfin, il protège la feuille de calcul. Une ligne / colonne a une API de style qui contient également une méthode setCellLocked. Vous pouvez verrouiller ou déverrouiller la ligne / colonne en utilisant la structure StyleFlag.

Protéger une colonne dans la feuille de calcul

Aspose.Cells vous permet de verrouiller facilement une colonne dans la feuille de calcul. Ici, nous pouvons utiliser la méthode applyStyle() de la classe Column pour appliquer un style à une colonne particulière dans la feuille de calcul. Cette méthode prend deux arguments : un objet Style et une structure StyleFlag qui contient tous les membres liés à la mise en forme appliquée.

L’exemple suivant montre comment protéger une colonne dans la feuille de calcul. Il déverrouille d’abord toutes les cellules de la feuille de calcul, puis verrouille la première colonne dans celle-ci. Enfin, il protège la feuuille de calcul. Une ligne / colonne a une API de style qui contient également une méthode setLocked. Vous pouvez verrouiller ou déverrouiller la ligne / colonne en utilisant la structure StyleFlag.

Déprotéger une feuille de calcul

Protection des feuilles de calcul et Paramètres de protection avancés depuis Excel XP abordent différentes approches pour protéger les feuilles de calcul. Que faire si un développeur doit supprimer la protection d’une feuille de calcul protégée à l’exécution pour apporter des modifications au fichier ? Cela peut facilement être fait avec Aspose.Cells.

Utilisation de Microsoft Excel

Pour supprimer la protection d’une feuille de calcul:

Dans le menu Outils, sélectionnez Protection puis Désactiver la protection de la feuille.

Sélectionner Désactiver la protection de la feuille

todo:image_alt_text

La protection est supprimée, sauf si la feuille de calcul est protégée par mot de passe. Dans ce cas, une boîte de dialogue demande le mot de passe.

Saisir le mot de passe pour désactiver la protection de la feuille de calcul

todo:image_alt_text

Utilisation d’Aspose.Cells

Une feuille de calcul peut être désactivée en appelant la méthode Unprotect de la classe Worksheet. La méthode Unprotect peut être utilisée de deux manières, décrites ci-dessous.

Désactiver une feuille de calcul simplement protégée

Une feuille de calcul simplement protégée est une feuille non protégée par un mot de passe. De telles feuilles de calcul peuvent être désactivées en appelant la méthode de désactivation sans passer de paramètre.

Désactiver une feuille de calcul protégée par mot de passe

Une feuille de calcul protégée par mot de passe est une feuille protégée par un mot de passe. De telles feuilles de calcul peuvent être désactivées en appelant une version surchargée de la méthode de désactivation qui prend le mot de passe en tant que paramètre.

Paramètres de protection avancés depuis Excel XP

Protection des feuilles de calcul abordant la protection d’une feuille de calcul dans Microsoft Excel 97 et 2000. Mais depuis la version Excel 2002 ou XP, Microsoft a ajouté de nombreux paramètres de protection avancés. Ces paramètres de protection restreignent ou autorisent les utilisateurs à :

  • Supprimer des lignes ou des colonnes.
  • Modifier le contenu, les objets ou les scénarios.
  • Formater les cellules, les lignes ou les colonnes.
  • Insérer des lignes, des colonnes ou des 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 et 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 :

  1. Dans le menu Outils, sélectionnez Protection suivi de Protéger la feuille. Une boîte de dialogue s’affiche.

    Boîte de dialogue pour afficher les options de protection dans Excel XP

todo:image_alt_text

  1. Autoriser ou restreindre les fonctionnalités des feuilles de calcul ou appliquer un mot de passe.

Paramètres de protection avancés utilisant Aspose.Cells

Aspose.Cells supporte 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 WorksheetCollection qui permet d’accéder à chaque feuille de calcul dans le fichier Excel. Une feuille de calcul est représentée par la classe Worksheet.

La classe Worksheet fournit la propriété Protection qui est utilisée pour appliquer ces paramètres de protection avancés. La propriété Protection est en fait un objet de la classe Protection qui encapsule plusieurs propriétés booléennes pour désactiver ou activer des 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.

Problème de verrouillage de cellules

Si vous souhaitez empêcher les utilisateurs de modifier des cellules, les cellules doivent être verrouillées avant d’appliquer des paramètres de protection. Sinon, les cellules peuvent être modifiées même si la feuille de calcul est protégée. Dans Microsoft Excel XP, les cellules peuvent être verrouillées à l’aide de la boîte de dialogue suivante :

Boîte de dialogue pour verrouiller les cellules dans Excel XP

todo:image_alt_text

Il est possible de verrouiller des cellules en utilisant l’API Aspose.Cells également. Chaque cellule possède une API Style qui contient de plus une méthode setLocked. Utilisez-la pour verrouiller ou déverrouiller des cellules.