Protégez les colonnes dans la feuille de calcul à l’aide d’Aspose.Cells

Introduction

Lorsque vous travaillez avec des fichiers Excel par programmation, vous devrez peut-être protéger des zones spécifiques de la feuille de calcul contre toute modification. L’une des tâches les plus courantes consiste à protéger les colonnes d’une feuille de calcul, tout en permettant la modification d’autres parties de la feuille. C’est là qu’Aspose.Cells pour .NET entre en jeu. Dans ce didacticiel, nous vous guiderons pas à pas dans le processus de protection de colonnes spécifiques dans une feuille de calcul Excel à l’aide d’Aspose.Cells pour .NET.

Prérequis

Avant de vous lancer dans la protection des colonnes, vous devez mettre en place quelques éléments :

  • Visual Studio : vous devez avoir Visual Studio ou tout autre IDE compatible .NET installé sur votre ordinateur.
  • Aspose.Cells pour .NET : vous devez avoir la bibliothèque Aspose.Cells pour .NET intégrée à votre projet. Vous pouvez la télécharger à partir du site web .
  • Connaissances de base de C# : ce didacticiel suppose que vous avez une compréhension fondamentale de la programmation C#. Si vous êtes nouveau sur Aspose.Cells, cela vaut la peine de consulter le documentation pour mieux comprendre les fonctionnalités de la bibliothèque et comment travailler avec elle.

Paquets d’importation

Pour commencer, vous devez importer les espaces de noms nécessaires qui vous permettent de travailler avec Aspose.Cells. Vous trouverez ci-dessous les importations dont vous avez besoin pour cet exemple :

using System.IO;
using Aspose.Cells;
  • Aspose.Cells : cet espace de noms est essentiel car il donne accès à toutes les classes nécessaires pour travailler avec des fichiers Excel.
  • Système : cet espace de noms est destiné aux fonctions système de base telles que la gestion des fichiers. Maintenant que vous avez importé les packages nécessaires, plongeons dans le processus réel de protection des colonnes dans une feuille de calcul.

Guide étape par étape pour protéger les colonnes dans une feuille de calcul

Nous allons décomposer ce processus en étapes faciles à gérer afin que vous puissiez le suivre facilement. Voici comment protéger les colonnes à l’aide d’Aspose.Cells pour .NET.

Étape 1 : Configurer le répertoire de documents

Tout d’abord, nous devons nous assurer que le répertoire dans lequel le fichier sera enregistré existe. Si ce n’est pas le cas, nous le créerons. Cela est important pour éviter les erreurs lors de la tentative d’enregistrement du classeur par la suite.

string dataDir = "Your Document Directory";
// Créez un répertoire s'il n'est pas déjà présent.
bool IsExists = System.IO.Directory.Exists(dataDir);
if (!IsExists)
    System.IO.Directory.CreateDirectory(dataDir);
  • dataDir : le chemin du répertoire où vous stockerez votre fichier de sortie.
  • Directory.Exists() : cela vérifie si le répertoire existe déjà.
  • Directory.CreateDirectory() : Si le répertoire n’existe pas, cela le crée.

Étape 2 : Créer un nouveau classeur

Maintenant que le répertoire est défini, créons un nouveau classeur. Ce classeur servira de fichier de base dans lequel nous effectuerons des modifications.

Workbook wb = new Workbook();
  • Classeur : il s’agit de l’objet principal qui représente un fichier Excel. Vous pouvez le considérer comme le conteneur de toutes les feuilles et données.

Étape 3 : Accéder à la première feuille de travail

Chaque classeur contient plusieurs feuilles de calcul et nous devons accéder à la première où nous appliquerons la protection des colonnes.

Worksheet sheet = wb.Worksheets[0];
  • Fiches de travail[0] : cela récupère la première feuille de calcul du classeur (les feuilles de calcul Excel sont indexées à zéro).

Étape 4 : définir les objets Style et StyleFlag

Ensuite, nous allons définir deux objets, Style et StyleFlag, qui sont utilisés pour personnaliser l’apparence et les paramètres de protection des cellules.

Style style;
StyleFlag flag;
  • Style : Cela nous permet de modifier les propriétés telles que la police, la couleur et les paramètres de protection des cellules ou des colonnes.
  • StyleFlag : ceci est utilisé pour spécifier les propriétés à appliquer lors de l’utilisation de la méthode ApplyStyle.

Étape 5 : Déverrouiller toutes les colonnes

Par défaut, Excel verrouille toutes les cellules d’une feuille de calcul lorsque la protection est appliquée. Mais nous souhaitons d’abord déverrouiller toutes les colonnes, afin de pouvoir ensuite verrouiller certaines d’entre elles, comme la première colonne.

for (int i = 0; i <= 255; i++)
{
    style = sheet.Cells.Columns[(byte)i].Style;
    style.IsLocked = false;
    flag = new StyleFlag();
    flag.Locked = true;
    sheet.Cells.Columns[(byte)i].ApplyStyle(style, flag);
}
  • Colonnes[(byte)i] : Ceci accède à une colonne spécifique dans la feuille de calcul par son index (nous parcourons ici les colonnes 0 à 255).
  • style.IsLocked = false : Cela déverrouille toutes les cellules de la colonne.
  • ApplyStyle() : cela applique le style (déverrouillé ou verrouillé) à la colonne en fonction de l’indicateur.

Étape 6 : Verrouiller la première colonne

Maintenant que toutes les colonnes sont déverrouillées, verrouillons la première colonne pour la protéger. Il s’agit de la colonne que les utilisateurs ne pourront pas modifier.

style = sheet.Cells.Columns[0].Style;
style.IsLocked = true;
flag = new StyleFlag();
flag.Locked = true;
sheet.Cells.Columns[0].ApplyStyle(style, flag);
  • Colonnes[0] : Ceci accède à la première colonne (index 0).
  • style.IsLocked = true : Cela verrouille la première colonne, empêchant les utilisateurs d’y apporter des modifications.

Étape 7 : Protégez la feuille de calcul

Maintenant que nous avons défini la protection pour la première colonne, nous devons appliquer la protection à l’ensemble de la feuille de calcul. Cela garantit que les cellules verrouillées (comme la première colonne) ne peuvent pas être modifiées à moins que la protection ne soit supprimée.

sheet.Protect(ProtectionType.All);
  • sheet.Protect() : cela applique la protection à l’ensemble de la feuille. Nous spécifions ProtectionType.All pour empêcher toute modification, mais vous pouvez le modifier si vous souhaitez que les utilisateurs puissent interagir avec certains éléments.

Étape 8 : Enregistrer le classeur

Enfin, nous enregistrons le classeur à un emplacement spécifié. Dans cet exemple, nous l’enregistrons dans le répertoire que nous avons créé précédemment.

wb.Save(dataDir + "output.out.xls", SaveFormat.Excel97To2003);
  • Save() : cela enregistre le classeur dans le système de fichiers.
  • SaveFormat.Excel97To2003 : nous enregistrons le classeur dans l’ancien format Excel 97-2003. Vous pouvez le remplacer par SaveFormat.Xlsx pour un format plus récent.

Conclusion

Dans ce didacticiel, nous vous avons expliqué l’intégralité du processus de protection des colonnes d’une feuille de calcul à l’aide d’Aspose.Cells pour .NET. En suivant ces étapes, vous pouvez facilement personnaliser les colonnes modifiables et celles qui sont protégées, offrant ainsi un meilleur contrôle sur vos documents Excel. Aspose.Cells offre un moyen puissant de gérer les fichiers Excel par programmation et, avec un peu de pratique, vous pouvez maîtriser ces tâches pour automatiser vos flux de travail.

FAQ

Puis-je protéger plusieurs colonnes à la fois ?

Oui, vous pouvez protéger plusieurs colonnes en appliquant le verrou à chacune d’elles, comme nous l’avons fait pour la première colonne.

Puis-je autoriser les utilisateurs à modifier des colonnes spécifiques tout en protégeant le reste ?

Absolument ! Vous pouvez déverrouiller des colonnes spécifiques en définissantstyle.IsLocked = false pour eux, appliquez ensuite une protection à la feuille de calcul.

Comment supprimer la protection d’une feuille de calcul ?

Pour supprimer la protection, appelez simplementsheet.Unprotect(). Vous pouvez transmettre un mot de passe si un mot de passe a été défini lors de la protection.

Puis-je définir un mot de passe pour protéger la feuille de calcul ?

Oui, vous pouvez passer un mot de passe en tant que paramètre àsheet.Protect("yourPassword") pour garantir que seuls les utilisateurs autorisés peuvent déprotéger la feuille.

Est-il possible de protéger des cellules individuelles au lieu de colonnes entières ?

Oui, vous pouvez verrouiller des cellules individuelles en accédant au style de chaque cellule et en leur appliquant la propriété de verrouillage.