Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

Coloration de cellules en java



  1. #1
    bacou

    Coloration de cellules en java


    ------

    Bonjour ,
    je reviens pour des renseignements.En effet je fais des programmes en java qui manipulent des fichiers csv, et il se trouve qu'il y arrive que je dois colorier des cellules des fichiers et j'aimerai savoir si quelqu'un n' a pas une idée de la methode à utiliser .
    Merci d' avance

    -----

  2. Publicité
  3. #2
    Stan_94

    Re : Coloration de cellules en java

    Bonjour,

    Peux-tu être plus précis ? On ne peux pas colorer des "cellules" d'un fichier...
    Je suppose que tu charge un fichier CVS et que tu l'affiches par ton programme Java. Mais qu'utilises-tu pour cela ? Est-ce un JTable ?

    On verra en fonction de ce que tu utilises !

    A bientôt

  4. #3
    bacou

    Re : Coloration de cellules en java

    Citation Envoyé par Stan_94 Voir le message
    Bonjour,

    Peux-tu être plus précis ? On ne peux pas colorer des "cellules" d'un fichier...
    Je suppose que tu charge un fichier CVS et que tu l'affiches par ton programme Java. Mais qu'utilises-tu pour cela ? Est-ce un JTable ?

    On verra en fonction de ce que tu utilises !

    A bientôt
    Salut Stan
    en fait j'ai un programme qui permet d'ecrire ou lire dans un fichier csv
    Code:
    import java.awt.Color;
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.Reader;
    import java.io.Writer;
    import java.util.Vector;
    import java.applet.*;
    /**
     * @author Glob
     * @version 0.1
     */
    public class CSVFile {
    
       private int m_rowsCount;
       private int m_colsCount;
       private Vector m_fileContent;
       private final static char CELL_SEPARATOR = ';';
    
       /**
        * Method CSVFile.
        * @param path le chemin du fichier à parser.
        * @throws FileNotFoundException si le fichier spécifié n'existe pas.
        */
       public CSVFile(String path) throws FileNotFoundException {
          m_fileContent = new Vector();
          FileReader fileReader = new FileReader(path);
          readFromFile(fileReader);
          fitVectorsToSize();
       }
    
       /**
        * Method CSVFile.
        * @param reader un reader dans lequel on lit le fichier CSV.
        */
       public CSVFile(Reader reader) {
          m_fileContent = new Vector();
          readFromFile(reader);
          fitVectorsToSize();
       }
    
       private void fitVectorsToSize() {
          m_fileContent.setSize(getRowsCount());
          int fileSize = getRowsCount();
          int colCount = getColsCount();
          for (int i = 0; i < fileSize; i++) {
             Vector aRow = (Vector)m_fileContent.get(i);
             if (aRow == null) {
                m_fileContent.set(i, new Vector());
                aRow = (Vector)m_fileContent.get(i);
             }
             aRow.setSize(colCount);
          }
       }
    
       /**
        * Method readFromFile.
        * @param path
        */
       private void readFromFile(Reader reader) {
          BufferedReader buffReader = new BufferedReader(reader);
          if (buffReader != null) {
             try {
                String tempLine;
                tempLine = buffReader.readLine();
                while (tempLine != null) {
                   readFromLine(tempLine);
                   tempLine = buffReader.readLine();
                }
             } catch (IOException e) {
                System.err.println("Error reading CSV file: " + e.toString());
             } finally {
                try {
                   buffReader.close();
                } catch (IOException e) {
                   System.err.println(
                      "Erreur closing CSV file: "
                      + e.toString()
                   );
                }
             }
          }
          System.runFinalization();
          System.gc();
       }
    
       /**
        * Method readFromLine.
        * @param tempLine
        */
       private void readFromLine(String tempLine) {
          if (tempLine == null) {
             return;
          }
          Vector currentLine = new Vector();
          m_fileContent.add(currentLine);
          m_rowsCount++;
    //      setRowsCount(getRowsCount() + 1);
          if (tempLine.trim().length() == 0) {
             return;
          }
          int colCount = 0;
          int cursorBegin = 0;
          int cursorEnd = tempLine.indexOf(CELL_SEPARATOR);
          while (cursorBegin > -1) {
             if (cursorEnd == -1) {
                currentLine.add(tempLine.substring(cursorBegin));
                cursorBegin = cursorEnd;
             } else {
                currentLine.add(tempLine.substring(cursorBegin, cursorEnd));
                cursorBegin = cursorEnd + 1;
             }
             cursorEnd = tempLine.indexOf(CELL_SEPARATOR, cursorBegin);
             colCount++;
          }
          if (colCount > getColsCount()) {
             setColsCount(Math.max(getColsCount(), colCount));
          }
       }
    
    
       /**
        * Returns the colsCount.
        * @return int
        */
       public int getColsCount() {
          return m_colsCount;
       }
    
       /**
        * Returns the rowsCount.
        * @return int
        */
       public int getRowsCount() {
          return m_rowsCount;
       }
    
       /**
        * Sets the colsCount.
        * @param colsCount The colsCount to set
        */
       public void setColsCount(int colsCount) {
          m_colsCount = colsCount;
          fitVectorsToSize();
       }
    
       /**
        * Sets the rowsCount.
        * @param rowsCount The rowsCount to set
        */
       public void setRowsCount(int rowsCount) {
          m_rowsCount = rowsCount;
          fitVectorsToSize();
       }
    
       /**
        * Method getData.
        * @param row la ligne voulue
        * @param col la colonne voulue
        * @return String la valeur à l'enplacement spécifié. Null si outOfBound.
        */
       public String getData(int row, int col) {
          if (row < 0
             || col < 0
             || row > (getRowsCount() - 1)
             || col > (getColsCount() - 1)) {
             return null;
          }
          try {
             Vector theRow = (Vector)m_fileContent.get(row);
             String result = (String)theRow.get(col);
             return (result == null ? "" : result);
          } catch (IndexOutOfBoundsException e) {
             return "";
          }
       }
    
       /**
        * Method setData.
        * @param row le numéro de ligne (commence à 0).
        * @param col le numéro de colonne (commence à 0).
        * @param data les données à insérer.
        */
       public void setData(int row, int col, String data) {
          if (row < 0
             || col < 0
             || row > (getRowsCount() - 1)
             || col > (getColsCount() - 1)) {
             throw new IndexOutOfBoundsException();
          }
          Vector theRow = (Vector)m_fileContent.get(row);
          theRow.setElementAt(data, col);
       }
     public void setData1(int row, int col, Color data) {
          if (row < 0
             || col < 0
             || row > (getRowsCount() - 1)
             || col > (getColsCount() - 1)) {
             throw new IndexOutOfBoundsException();
          }
          Vector theRow = (Vector)m_fileContent.get(row);
          theRow.insertElementAt(data, col);
       
       }
     
       /**
        * Method write.
        * @param filePath le fichier dans lequel sauver les données.
        * @throws IOException si une erreur survient.
        */
       public void write(String filePath) throws IOException {
          FileWriter fileWriter = new FileWriter(filePath);
          write(fileWriter);
       }
    
       /**
        * Method write.
        * @param aWriter le writer dans lequel on veut écrire les données.
        * @throws IOException si une erreur survient.
        */
       public void write(Writer aWriter) throws IOException {
          BufferedWriter writer;
          writer = new BufferedWriter(aWriter);
          int fileSize = getRowsCount();
          int colCount = getColsCount();
          for (int i = 0; i < fileSize; i++) {
             for (int j = 0; j < colCount; j++) {
                writer.write(getData(i, j));
                if (j + 1 < colCount) {
                   writer.write(CELL_SEPARATOR);
                }
             }
             if (i + 1 < fileSize) {
                writer.write("\n");
             }
          }
          writer.flush();
          writer.close();
       }
       public static void main(String [] args) throws IOException {
         
    CSVFile monFichier = new CSVFile("C:/Documents and Settings/ybda8222.FTRD/Project/export1.csv"); 
    String valeur = monFichier.getData(1, 2);
    monFichier.setData1(0,1,Color.BLUE); 
    monFichier.write("C:/Documents and Settings/ybda8222.FTRD/Project/toto1.csv"); 
    monFichier = null;
    System.out.println(valeur);
        }
    
       
       }
    j'ai modifier le prog de telle sorte qu'on lui donne un fichier csv et ce que j'aimerai c 'est que certaines cellules soient coloriées
    merci

  5. #4
    Stan_94

    Re : Coloration de cellules en java

    Bonjour,

    j'ai testé ton code et j'ai du modifier la classe getData comme ceci

    Code:
    String result = theRow.get(col).toString();
    à la place de

    Code:
    String result = (String) theRow.get(col);
    En effet theRow.get(index) renvoi un type object et c'est mieux d'utiliser la méthode toString de la classe object.

    Ceci étant dit, je ne vois pas ce que tu veux colorer !!! J'obtiens en sortie un autre fichier cvs qui ne peux pas contenir d'information de couleur... Voulais-tu charger une cellule dans Excel avec une fonction permettant de la colorer, ce qui ne me semble pas faisable. Il faudrait charger dynamiquement une macro qui colore les cellules voulues mais ça risque d'être compliqué !!!

    N'hésite pas si on peux t'aider...

  6. A voir en vidéo sur Futura
  7. #5
    bacou

    Re : Coloration de cellules en java

    Je te remercie Stan_94 , je vais laisser la coloration vu que ce sera un peu compliqué .Merci pour la modification .
    Bonne soirée

  8. #6
    zhamdi

    Re : Coloration de cellules en java

    Bonjour Bacou

    Pour colorier tes cellules il y a une triche possible:
    déclare en tête de ton csv les tags <html><body> et refermes les à la fin, à partir de là tu peux insérer du contenu html (même des images).

    Par contre pour différencier apparence des données et données, il te faudrait utiliser des décorateurs à l'écriture du fichier.

    J'ai développé un open source sur http://csvengine.sf.net il adresse la majorité des problèmes csv (un peu comme un framework de persistance, tu te retrouveras avec des objets java (soit standards soit de ton choix) tu n'a qu'à déclarer le type que t'attends de l'autre coté et comment l'obtenir à partir d'une String (en implementant l'interface CSVConverter). Je te suggère d'y jeter un coup d'oeuil, tu verras ce n'est pas très difficile à comprendre...

    J'espere que cela t'aidera.

    Bon courage,
    Zied Hamdi

    J'ai supprimé les deux adresses données à la fin de ce message car elles sont purement commerciales.
    D'autre part j'espère que depuis juillet 2007 bacou a trouvé la solution de son problème.

    JPL, modérateur
    Dernière modification par JPL ; 22/03/2009 à 18h20.

  9. Publicité

Discussions similaires

  1. [Biologie Cellulaire] La testostérone des cellules de Leydig vers les cellules de Sertoli
    Par Jadéite dans le forum Biologie
    Réponses: 5
    Dernier message: 28/11/2007, 15h41
  2. Conversion Cellules Normale En Cellules Embryonaires
    Par Démostène dans le forum Actualités
    Réponses: 1
    Dernier message: 11/06/2007, 13h05
  3. Actu - Des cellules souches embryonnaires obtenues au départ de banales cellules
    Par RSSBot dans le forum Commentez les actus, dossiers et définitions
    Réponses: 4
    Dernier message: 11/06/2007, 10h32
  4. Découverte de cellules supprimant cellules tumorales
    Par synchrotron dans le forum Biologie
    Réponses: 17
    Dernier message: 02/04/2006, 18h24
  5. Les cellules souches adultes peuvent produire des cellules nerveuses
    Par RSSBot dans le forum Commentez les actus, dossiers et définitions
    Réponses: 0
    Dernier message: 17/05/2005, 15h10
Découvrez nos comparatifs produits sur l'informatique et les technologies.