[JXL] Problème avec setBackGround [Résolu]

Mede12 8 Messages postés dimanche 10 décembre 2000Date d'inscription 29 mai 2008 Dernière intervention - 7 mai 2008 à 17:45 - Dernière réponse : Mede12 8 Messages postés dimanche 10 décembre 2000Date d'inscription 29 mai 2008 Dernière intervention
- 13 mai 2008 à 09:50
Bonjour,

J'ai commencé le Java il y a 1 mois environ,  j'ai appris par mes propres moyen ( en particulier avec des tutoriels trouvés sur internet notamment grâce à ce site )
Pour mon projet j'aimerais récupérer des données d'un fichier xsl et les mettre dans un fichier txt en les ordonnant d'une certaine manière.
Pour l'instant je m'occupe de récupérer les données du fichier xsl dans des tableaux pour pouvoir les exploiter plus tard.
Le petit problème c'est que dans ce fichier xsl il y a des cellules vide avec un fond en couleur et j'aimerais récupérer un "0" lorsque la case est vide.
J'ai essayé le "getCellFormat()" mais s'il y a un fond le retour n'est pas null...

Pour éviter ce problème j'ai donc décidé d'éditer le fichier xsl en mettant chaque cellules avec la couleur de font par défaut et j'en arrive à ce code:

/**
 * @(#)RecupCell.java
 *
 *
 * @author
 * @version 1.00 2008/4/21
 */
import java.io.*;
import java.awt.*;
import jxl.*;
import jxl.format.Colour;
import jxl.write.*;
import jxl.biff.RecordData;
import jxl.biff.WritableRecordData;
import jxl.biff.XFRecord;
import jxl.write.biff.CellXFRecord;
import jxl.format.Colour;
import jxl.read.biff.BiffException;
import jxl.write.biff.CellValue;
import jxl.write.WritableCellFormat;

public class RecupCell {
   
    private String cellule;
    private CellFormat cellFormat;
   
    public RecupCell(int ligne,int colonne) {
           
        try{
                Workbook workbook = Workbook.getWorkbook(new File("Z:/test.xls"));
                Sheet sheet = workbook.getSheet(0);
               
                Cell x = sheet.getCell(colonne,ligne);
                cellule = x.getContents();
                WritableCellFormat xFormat = new WritableCellFormat(x.getCellFormat());
                xFormat.setBackground(Colour.DEFAULT_BACKGROUND);
                if(x.getCellFormat()== null )
                {
                    cellule = "0 ";
                }   
                workbook.close();
               
        }catch(IOException ioe){
            ioe.printStackTrace();
        }
        catch(BiffException be){
            be.printStackTrace();
        }
        catch(WriteException we){
            we.printStackTrace();
        }
       
       
       
    }
    public String getCellule(){
            return cellule;
    }
   
   
}

et voila l'erreur retourné une fois que le fichier est compilé et que j'ai lancé une ficher xsl à parcourir :

common.AssertionFailed
    at common.Assert.verify(Assert.java:37)
    at jxl.biff.XFRecord.(XFRecord.java:521)
    at jxl.write.biff.CellXFRecord.(CellXFRecord.java:69)
    at jxl.write.WritableCellFormat.(WritableCellFormat.java:96)
    at RecupCell.(RecupCell.java:38)
    ...
(pour les erreurs j'ai pas tout mis il y en avait trop, cela dis si çapeu vous aider n'hésitez pas à me les demander)

Voila j'espère avoir été assez clair m'enfin n'hésitez pas à demander des précisions...

Merci d'avance ça me soulagerais d'un problème que je n'arrive pas à gérer depuis quelques temps ...

(>'-')> Java bien ! <('-'<)
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Mede12 8 Messages postés dimanche 10 décembre 2000Date d'inscription 29 mai 2008 Dernière intervention - 13 mai 2008 à 09:50
3
Merci
J'ai eu une idée aujourd'hui est en fait Mouzart avais bien raison

Pour mon problème il suffisait de mettre la condition (cellule == "") et après de mettre un 0 dans cellule ...

Maintenant que j'ai trouvais la solution j'ai un peu honte d'avoir posté mon problème ici

Merci

(>'-')> Java bien ! <('-'<)

Merci Mede12 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de Mede12
mouzart 162 Messages postés mardi 26 avril 2005Date d'inscription 6 novembre 2008 Dernière intervention - 7 mai 2008 à 18:23
0
Merci
slt,

En theorie il ya pa de fond vide !!! mais tu dois te focaliser sur le contenu de la cellule car une cell est vide lorsque le contenu est null et pa le fond
allez courage
Commenter la réponse de mouzart
Mede12 8 Messages postés dimanche 10 décembre 2000Date d'inscription 29 mai 2008 Dernière intervention - 7 mai 2008 à 18:55
0
Merci
Re
Le truc c'est alors de savoir comment faire pour que le programme me retourne un "0" lorsque la case est vide avec un fond quelconque.
Je n'est pas réussi  à identifier ce que ce programme retourné lorsque la case est vide mais avec un fond de couleur ...
En faisant des test je peu dire que ce n'est pas : null ou "". ( ou alors c'est mon programme de test qui fonctionne pas comme il faut )
M'enfin merci
Commenter la réponse de Mede12

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.