2017-10-19 6 views
2

J'utilise actuellement les options suivantes pour protéger la feuille de travail.Comment protéger les feuilles en utilisant C# interop mais en permettant la sélection

dataWorksheet.Protect(result.protectionPassword.ToString(), false, true, false, false, true, true, true, false, false, false, false, false, false, true, true); 

L'option ci-dessus protège la feuille et ne permet pas la sélection de la feuille protégée.

Cependant, une telle protection est gênante lors de la référence des valeurs de cellules d'une autre feuille, donc je voudrais protéger le contenu (valeurs) mais permettre la sélection des cellules. J'ai donc enregistré la macro sur Excel et l'option DrawingObjects:true, contents:true, scenarios:true. J'ai essayé cette combinaison d'options mais n'ai pas réussi.

Voici la documentation relative à la méthode interop protect.

https://msdn.microsoft.com/en-us/vba/excel-vba/articles/worksheet-protect-method-excel

Comment puis-je protéger la feuille de calcul d'une manière que la sélection est possible, mais les valeurs ne peuvent pas être falsifié?

Répondre

0

Les seules options de protection de feuille pour le format de fichier xls sont les objets de feuille (DrawingObjects: true), le contenu de la cellule (contenu: true) et les scénarios (scenarios: true).

Les options de protection de feuille pour le format de fichier xlsx sont plus flexibles et incluent également l'option de sélection de cellule dont vous avez besoin.

La méthode Worksheet.Protect semble inclure certaines des options de protection disponibles pour le format de fichier xlsx, mais la sélection des cellules n'est pas incluse.

Le plus probablement, vous devez passer au format de fichier XLSX et utiliser une bibliothèque différente d'Interop pour créer le fichier Excel.

Le comportement par défaut est d'autoriser la sélection de cellule.