Comment définir un mot de passe pour un classeur en C#

Comment définir un mot de passe pour un classeur en C

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronXL permet aux développeurs de protéger par mot de passe des classeurs Excel en C# avec une seule méthode — utilisez la méthode Encrypt avec votre mot de passe désiré et enregistrez le classeur pour appliquer la protection instantanément.

Démarrage rapide : Crypter un mot de passe pour un classeur avec IronXL

En une seule étape, IronXL permet aux développeurs de chiffrer un classeur Excel — sans interopérabilité, sans complications. Utilisez la méthode Encrypt avec votre mot de passe et enregistrez le fichier pour protéger immédiatement votre classeur.

  1. Installez IronXL avec le Gestionnaire de Packages NuGet

    PM > Install-Package IronXL.Excel
  2. Copiez et exécutez cet extrait de code.

    var wb = WorkBook.Load("input.xlsx"); wb.Encrypt("MyStrongPass"); wb.SaveAs("input.xlsx");
  3. Déployez pour tester sur votre environnement de production.

    Commencez à utiliser IronXL dans votre projet dès aujourd'hui avec un essai gratuit

    arrow pointer


Comment accéder à un classeur protégé par un mot de passe ?

Une feuille de calcul protégée peut être ouverte en fournissant le mot de passe comme deuxième paramètre à la méthode Load. Par exemple : WorkBook.Load("sample.xlsx", "IronSoftware"). Cette fonctionnalité est essentielle lorsque l'on travaille avec des fichiers Excel existants qui ont été sécurisés par des collègues ou des processus automatisés.

Veuillez noterIl n'est pas possible d'ouvrir une feuille de calcul protégée sans le mot de passe correct

Voici un exemple complet démontrant comment accéder à un classeur protégé par un mot de passe :

:path=/static-assets/excel/content-code-examples/how-to/set-password-workbook-2.cs
using IronXL;

// Attempt to open a password-protected workbook
try 
{
    WorkBook protectedWorkBook = WorkBook.Load("encrypted_data.xlsx", "MySecretPass123!");
    
    // Access the first worksheet
    WorkSheet sheet = protectedWorkBook.WorkSheets[0];
    
    // Read data from protected file
    var cellValue = sheet["A1"].Value;
    Console.WriteLine($"Successfully accessed protected workbook. A1 contains: {cellValue}");
}
catch (Exception ex)
{
    Console.WriteLine($"Failed to open workbook: {ex.Message}");
}
Imports IronXL

' Attempt to open a password-protected workbook
Try
    Dim protectedWorkBook As WorkBook = WorkBook.Load("encrypted_data.xlsx", "MySecretPass123!")

    ' Access the first worksheet
    Dim sheet As WorkSheet = protectedWorkBook.WorkSheets(0)

    ' Read data from protected file
    Dim cellValue = sheet("A1").Value
    Console.WriteLine($"Successfully accessed protected workbook. A1 contains: {cellValue}")
Catch ex As Exception
    Console.WriteLine($"Failed to open workbook: {ex.Message}")
End Try
$vbLabelText   $csharpLabel

Que se passe-t-il si j'utilise le mauvais mot de passe ?

Lorsqu'un mot de passe incorrect est fourni, IronXL lance une exception plutôt que de renvoyer null ou un classeur vide. Ce comportement garantit la sécurité en empêchant les tentatives d'accès non autorisées. Enveloppez toujours vos opérations de classeur protégées par un mot de passe dans des blocs try-catch afin de gérer les échecs d'authentification de manière élégante. Si vous créez une application qui traite plusieurs fichiers Excel, envisagez de mettre en place un mécanisme de relance avec des invites pour la saisie du mot de passe.

Peut-on vérifier si un classeur est protégé par un mot de passe avant de l'ouvrir?

Malheureusement, le format de fichier d'Excel ne permet pas de vérifier l'état de la protection par mot de passe sans essayer d'ouvrir le fichier. L'approche recommandée est de tenter d'abord le chargement sans mot de passe, puis d'attraper l'exception et de réessayer avec un mot de passe si nécessaire. Ce modèle fonctionne bien lorsqu'il s'agit de gérer plusieurs feuilles de calcul avec des niveaux de protection différents.

Comment appliquer un mot de passe à un classeur?

Pour protéger par mot de passe une feuille de calcul, utilisez la méthode Encrypt comme montré dans le code ci-dessous :

:path=/static-assets/excel/content-code-examples/how-to/set-password-workbook-protect.cs
WorkBook workBook = WorkBook.Load("sample.xlsx");

// Open protected spreadsheet file
WorkBook protectedWorkBook = WorkBook.Load("sample.xlsx", "IronSoftware");

// Set protection for spreadsheet file
workBook.Encrypt("IronSoftware");

workBook.Save();
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")

' Open protected spreadsheet file
Dim protectedWorkBook As WorkBook = WorkBook.Load("sample.xlsx", "IronSoftware")

' Set protection for spreadsheet file
workBook.Encrypt("IronSoftware")

workBook.Save()
$vbLabelText   $csharpLabel

Pour des scénarios plus avancés, vous pouvez combiner le cryptage du classeur avec la protection au niveau de la feuille de calcul :

:path=/static-assets/excel/content-code-examples/how-to/set-password-workbook-4.cs
using IronXL;
using System;

// Create a new workbook with sensitive financial data
WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet sheet = workBook.CreateWorkSheet("FinancialData");

// Add sensitive data
sheet["A1"].Value = "Confidential Financial Report";
sheet["A3"].Value = "Revenue";
sheet["B3"].Value = 1250000;
sheet["A4"].Value = "Expenses";
sheet["B4"].Value = 750000;

// Apply formatting before encryption
sheet["B3:B4"].FormatString = "$#,##0.00";

// Encrypt the workbook with a strong password
workBook.Encrypt("F!n@nc3_S3cur3_2024");

// Save the encrypted workbook
workBook.SaveAs("financial_report_encrypted.xlsx");

Console.WriteLine("Workbook encrypted successfully!");
Imports IronXL
Imports System

' Create a new workbook with sensitive financial data
Dim workBook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
Dim sheet As WorkSheet = workBook.CreateWorkSheet("FinancialData")

' Add sensitive data
sheet("A1").Value = "Confidential Financial Report"
sheet("A3").Value = "Revenue"
sheet("B3").Value = 1250000
sheet("A4").Value = "Expenses"
sheet("B4").Value = 750000

' Apply formatting before encryption
sheet("B3:B4").FormatString = "$#,##0.00"

' Encrypt the workbook with a strong password
workBook.Encrypt("F!n@nc3_S3cur3_2024")

' Save the encrypted workbook
workBook.SaveAs("financial_report_encrypted.xlsx")

Console.WriteLine("Workbook encrypted successfully!")
$vbLabelText   $csharpLabel

Pourquoi le mot de passe ne prend-il effet qu'après l'enregistrement ?

Le processus de cryptage dans Excel modifie la structure interne du fichier, ce qui nécessite une écriture sur le disque. Jusqu'à ce que vous appeliez Save() ou SaveAs(), le classeur reste en mémoire sans cryptage appliqué. Cette conception vous permet d'apporter de multiples modifications avant de valider la version cryptée. Lorsque vous travaillez avec des métadonnées du livre de travail, n'oubliez pas de définir toutes les propriétés avant d'appliquer le cryptage et d'enregistrer.

Quelle force de mot de passe dois-je utiliser ?

Pour les applications professionnelles, suivez ces directives concernant les mots de passe :

  • Longueur minimale de 12 caractères
  • Mélange de lettres majuscules et minuscules
  • Inclure les chiffres et les caractères spéciaux
  • Éviter les mots du dictionnaire ou les schémas prévisibles
  • Pensez à utiliser des phrases de passe telles que "MyExcel@Report#2024 !"

Lors du développement d'applications qui exportent des données sensibles vers Excel, mettez en œuvre une politique de mot de passe qui applique ces exigences de manière programmatique.

Puis-je protéger par mot de passe des feuilles de travail spécifiques uniquement ?

Oui! IronXL prend en charge la protection au niveau du classeur et de la feuille de calcul. Alors que le cryptage du classeur empêche l'accès non autorisé aux fichiers, la protection des feuilles de calcul empêche la modification de feuilles spécifiques. Vous pouvez combiner les deux approches :

:path=/static-assets/excel/content-code-examples/how-to/set-password-workbook-5.cs
// Load workbook
WorkBook workBook = WorkBook.Load("multi_sheet_report.xlsx");

// Protect specific worksheets
workBook.WorkSheets["Summary"].ProtectSheet("SheetPass123");
workBook.WorkSheets["Details"].ProtectSheet("DetailPass456");

// Then encrypt the entire workbook
workBook.Encrypt("MasterPassword789!");

// Save with both protections
workBook.Save();
' Load workbook
Dim workBook As WorkBook = WorkBook.Load("multi_sheet_report.xlsx")

' Protect specific worksheets
workBook.WorkSheets("Summary").ProtectSheet("SheetPass123")
workBook.WorkSheets("Details").ProtectSheet("DetailPass456")

' Then encrypt the entire workbook
workBook.Encrypt("MasterPassword789!")

' Save with both protections
workBook.Save()
$vbLabelText   $csharpLabel
Code C# montrant les méthodes WorkBook.Load() et WorkBook.Encrypt() avec l'explorateur de fichiers affichant des fichiers Excel

Comment supprimer le mot de passe d'un classeur?

Pour supprimer le mot de passe d'une feuille de calcul, il suffit de définir le champ Password à null, comme démontré dans le code ci-dessous :

Veuillez noterCette action ne peut être effectuée qu'après avoir accédé au classeur. Il est donc nécessaire de connaître le mot de passe d'origine.

:path=/static-assets/excel/content-code-examples/how-to/set-password-workbook-unprotect.cs
// Remove protection for opened workbook. Original password is required.
workBook.Password = null;
' Remove protection for opened workbook. Original password is required.
workBook.Password = Nothing
$vbLabelText   $csharpLabel

Voici un exemple complet montrant le processus complet de suppression de la protection par mot de passe :

:path=/static-assets/excel/content-code-examples/how-to/set-password-workbook-7.cs
using IronXL;

// First, open the protected workbook with the correct password
WorkBook protectedWorkBook = WorkBook.Load("encrypted_report.xlsx", "CurrentPassword123");

// Perform any necessary operations
WorkSheet sheet = protectedWorkBook.DefaultWorkSheet;
sheet["A1"].Value = "Updated after removing protection";

// Remove the password protection
protectedWorkBook.Password = null;

// Save the workbook without password protection
protectedWorkBook.SaveAs("unprotected_report.xlsx");

Console.WriteLine("Password protection removed successfully!");
Imports IronXL

' First, open the protected workbook with the correct password
Dim protectedWorkBook As WorkBook = WorkBook.Load("encrypted_report.xlsx", "CurrentPassword123")

' Perform any necessary operations
Dim sheet As WorkSheet = protectedWorkBook.DefaultWorkSheet
sheet("A1").Value = "Updated after removing protection"

' Remove the password protection
protectedWorkBook.Password = Nothing

' Save the workbook without password protection
protectedWorkBook.SaveAs("unprotected_report.xlsx")

Console.WriteLine("Password protection removed successfully!")
$vbLabelText   $csharpLabel

Quand supprimer la protection par mot de passe ?

Les scénarios courants de suppression des mots de passe sont les suivants

  • Archivage : Déplacement de fichiers vers un stockage sécurisé où le cryptage au niveau du fichier est redondant
  • Intégration du système : Lorsque des processus automatisés doivent importer des données Excel sans intervention manuelle
  • Collaboration : partage de fichiers avec des membres de l'équipe qui n'ont pas besoin d'un accès par mot de passe
  • Migration : Conversion de fichiers protégés en vue de leur utilisation dans des systèmes qui ne prennent pas en charge le cryptage d'Excel

Assurez-vous toujours d'avoir l'autorisation appropriée avant de supprimer la protection par mot de passe d'un classeur.

IronXL offre la possibilité de protéger et de déprotéger des workBooks et workSheets Excel avec une seule ligne de code C#. Pour des fonctions de sécurité Excel plus avancées, consultez nos guides sur la gestion des métadonnées du classeur et les pratiques de manipulation sécurisée des données.

Questions Fréquemment Posées

Comment protéger par mot de passe un classeur Excel en C# ?

Avec IronXL.Excel, vous pouvez protéger par mot de passe un classeur Excel à l'aide de la méthode Encrypt. Il vous suffit de charger votre classeur, d'appeler wb.Encrypt("YourPassword") et d'enregistrer le fichier. Ce simple appel de méthode sécurise instantanément votre fichier Excel sans nécessiter l'interopérabilité avec Microsoft Office.

Puis-je ouvrir un fichier Excel protégé par mot de passe sans connaître le mot de passe ?

Non, IronXL nécessite le mot de passe correct pour ouvrir les fichiers Excel protégés. Lorsque vous chargez un classeur protégé par un mot de passe, vous devez fournir le mot de passe comme second paramètre : WorkBook.Load("file.xlsx", "password"). Sans le mot de passe correct, il est impossible d'accéder au fichier.

Que se passe-t-il lorsque j'essaie d'ouvrir un classeur protégé avec un mauvais mot de passe ?

IronXL lance une exception lorsqu'un mot de passe incorrect est fourni, plutôt que de renvoyer null ou un classeur vide. Cette fonction de sécurité empêche les tentatives d'accès non autorisées. Enveloppez toujours les opérations sur les classeurs protégés par mot de passe dans des blocs try-catch afin de gérer les échecs d'authentification de manière élégante.

Comment puis-je vérifier si un fichier Excel est protégé par un mot de passe avant de l'ouvrir ?

Le format de fichier Excel ne permet pas de vérifier l'état de la protection par mot de passe sans essayer d'ouvrir le fichier. Avec IronXL, l'approche recommandée est d'essayer d'abord de charger le fichier sans mot de passe, puis d'attraper l'exception et de réessayer avec un mot de passe si nécessaire.

Puis-je supprimer la protection par mot de passe d'un classeur Excel ?

Oui, IronXL vous permet de supprimer la protection par mot de passe des classeurs. Tout d'abord, chargez le classeur protégé avec le mot de passe correct en utilisant WorkBook.Load("file.xlsx", "password"), puis sauvegardez-le sans cryptage pour créer une version non protégée.

La protection par mot de passe fonctionne-t-elle avec tous les formats de fichiers Excel ?

IronXL prend en charge la protection par mot de passe des formats Excel modernes, notamment les fichiers .xlsx et .xlsm. La fonction de cryptage fonctionne de manière transparente à travers les différentes versions d'Excel sans nécessiter l'installation de Microsoft Office sur votre système.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite
Prêt à commencer?
Nuget Téléchargements 2,134,203 | Version : 2026.7 vient de sortir
Still Scrolling Icon

Vous faites encore défiler ?

Vous voulez une preuve rapidement ? PM > Install-Package IronXL.Excel
exécuter un échantillon regarder vos données devenir une feuille de calcul.