POI Création Combo box excel 2010 ( XSSF )

Le , par pierre2008, Membre du Club
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.


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de samuel.imbert 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
Avatar de samuel.imbert 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
Offres d'emploi IT
RESPONSABLE WEB ANALYTICS F/H
VACALIANS GROUP - Languedoc Roussillon - SETE (34)
Développeur Web FULL-STACK
VACALIANS GROUP - Languedoc Roussillon - SETE (34)
Développeur WEB PHP F/H
VACALIANS GROUP - Languedoc Roussillon - SETE (34)

Voir plus d'offres Voir la carte des offres IT
Responsables bénévoles de la rubrique Excel : Pierre Fauconnier - Arkham46 -