IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[Excel] Protéger une colonne


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Un petit peu de tout ça
    Inscrit en
    Janvier 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Un petit peu de tout ça

    Informations forums :
    Inscription : Janvier 2012
    Messages : 8
    Points : 10
    Points
    10
    Par défaut [Excel] Protéger une colonne
    Bonjour à tous,

    Dans mon application, je génère un fichier EXCEL d'un catalogue afin de permettre la mise à jour en masse de ce même catalogue.

    Dans la colonne A, j'inclus l'ID de l'enregistrement.

    Je souhaite que cette colonne soit protégée (une ligne sans ID crée un nouveau produit dans la base).

    Dans un premier temps, je masque la colonne. Mais je souhaite également la protéger.

    Et là, c'est le drame....

    J'ai eu beau chercher sur Internet, regarder la doc, mais je ne comprends pas...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);
    $objPHPExcel->getActiveSheet()->getStyle('B1')->getProtection()->setLocked(
    PHPExcel_Style_Protection::PROTECTION_UNPROTECTED
    );
    Le code ci-dessus protège toute la feuille, ou rien du tout...

    Un petit coup de main serait appréciable

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 599
    Points
    12 599
    Par défaut
    Pour protéger c'est plutôt PHPExcel_Style_Protection:ROTECTION_PROTECTED

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $sheet->getStyle('B')->getProtection()->setLocked(
     PHPExcel_Style_Protection::PROTECTION_PROTECTED
     );

  3. #3
    Membre à l'essai
    Homme Profil pro
    Un petit peu de tout ça
    Inscrit en
    Janvier 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Un petit peu de tout ça

    Informations forums :
    Inscription : Janvier 2012
    Messages : 8
    Points : 10
    Points
    10
    Par défaut RESOLU
    Alors, merci, j'ai réussi à m'en dépatouiller.

    En fait je charge un fichier EXCEL qui me sert de template, ce qui induit automatiquement que toutes les cellules sont verrouillées par défaut.

    Donc, première étape, désactiver le verrouillage sur les colonnes qui seront modifiables.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $colonnes = array('B','C','D','E','F','G','H','I','J');
    foreach($colonnes as $colonne){
    	$sheet->getStyle($colonne)->getProtection()->setLocked(
    			PHPExcel_Style_Protection::PROTECTION_UNPROTECTED
    	);
    }
    Après le remplissage de mes cellules, je passe à la phase de blocage. Qu'est ce que je vais autoriser ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $myFichier->getActiveSheet()->getProtection()->setSelectUnlockedCells(false);
    $myFichier->getActiveSheet()->getProtection()->setInsertRows(true);
    $myFichier->getActiveSheet()->getProtection()->setDeleteRows(true);
    Je verrouille ma colonne A (mais si vous avez suivi c'est que c'est déjà fait).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $sheet->getStyle('A')->getProtection()->setLocked(
    		PHPExcel_Style_Protection::PROTECTION_PROTECTED
    );
    Reste à finaliser la mise en place de la protection.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $myFichier->getActiveSheet()->getProtection()->setPassword("BOZOWASHERE");
    $myFichier->getActiveSheet()->getProtection()->setSheet(true);
    A noter que le mot de passe a été changé

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Listview vers Excel manque une colonne
    Par petchy dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 01/06/2010, 15h54
  2. Réponses: 0
    Dernier message: 10/09/2007, 14h25
  3. {VBA Excel}effacer une colonne a partir d'ou on veut
    Par Thomas69 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/08/2007, 14h41
  4. [VBA-Excel]Supprimer une colonne entiere basee sur une cellule
    Par Tartenpion dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/10/2006, 22h08
  5. [OLE Excel] Récupérer une colonne d'un coup
    Par Nemerle dans le forum C++Builder
    Réponses: 2
    Dernier message: 17/05/2004, 15h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo