Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

POI Création Combo box excel 2010 ( XSSF )

Le , par pierre2008

0PARTAGES

1  0 
Bonjour,

je voudrais créer des combobox avec Xssf. Mais Excel 2010 lève une erreur de format en de fichier. Nous obtenons comme message Enregistrements réparés: Propriétés de la feuille de calcul dans la partie /xl/workbook.xml (Classeur).

Le contenu du document est lisible mais je n'obtiens pas ma combobox.

La création avec Hssf ne pose aucun soucis !!!
Voici le code utilisé pour créer l'objet datavalidation a renseigné dans le Sheet :

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
   public static DataValidation createDataValidation(VersionExcel versionExcel, Sheet sheet,
            List<String> valeursAutorisees, CellRangeAddressList addressList) {
        DataValidation dataValidation = null;
        String[] tabValeursAutorisees = valeursAutorisees.toArray(new String[valeursAutorisees.size()]);
        DataValidationHelper helper = null;
        if (versionExcel == VersionExcel.EXCEL_97_2003) {
            helper = new HSSFDataValidationHelper((HSSFSheet) sheet);

        } else if (versionExcel == VersionExcel.EXCEL_2007_ET_PLUS) {
            helper = new XSSFDataValidationHelper((XSSFSheet) sheet);            
        }        
        DataValidationConstraint dvConstraint = helper.createExplicitListConstraint(tabValeursAutorisees);
        dataValidation = helper.createValidation(dvConstraint, addressList);
        dataValidation.setSuppressDropDownArrow(false);

        return dataValidation;
    }
.....
puis :
.....
Code : Sélectionner tout
sheet.addValidationData(dataValidation);

donc ça marche très bien avec Hssf mais pas avec Xssf. D'ailleurs j'ai du mal a trouvé des exemples de codes avec Xssf.

Par avance merci pour votre aide.

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de samuel.imbert
Candidat au Club https://www.developpez.com
Le 14/11/2011 à 17:55
Bonjour,

Avez-vous réussi à résoudre ce problème ?
Je me trouve devant les mêmes erreurs et pas de solution avec excel 2010 et format xlsm (pour gerer les macros).

Merci d'avance pour toutes informations

Cordialement,
Samuel Imbert
0  0 
Avatar de samuel.imbert
Candidat au Club https://www.developpez.com
Le 17/11/2011 à 12:11
Bonjour,

Il semblerait que le problème ne vient pas du DataValidation à propremement parler, mais dans mon cas, d'un Workbook.cloneSheet() sur une Feuille Excel qui contient des bouttons et des macros.

La copie par clonesheet entraîne les erreurs sus-cités à l'ouverture d'excel, qui pour corriger les erreurs supprime tous les éléments bouttons, combo box et même zone de fusion.

J'ai donc trouvé comme solution d'utiliser createSheet au lieu de clonesheet et je n'ai plus de probleme.

En espérant que les clonesheet pour des fichiers xlsm fonctionnera un jour, j'espère que ces infos vous seront utiles.

Cordialement,
Samuel
0  0