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

API standards et tierces Java Discussion :

[JexcelApi] Ajout d'une Sheet existante dans un classeur ?


Sujet :

API standards et tierces Java

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 68
    Points : 221
    Points
    221
    Par défaut [JexcelApi] Ajout d'une Sheet existante dans un classeur ?
    Bonjour,

    ma question me fait un peu halluciné : est-il possible avec JExcel d'ajouter une feuille à un classeur, feuille provenant d'un autre classeur ?


    Concrètement, j'ai un classeur-modèle dans lequel je dois récupérer telle ou telle feuille.
    Pour récupérer une feuille, je crée un classeur à partir du modèle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WritableWorkbook workbook = Workbook.createWorkbook(sortie, source);
    puis je supprime toutes les feuilles qui ne me servent pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    private static void preparerClasseur(WritableWorkbook workbook, String ongletAConserver) {
    	final int nbOnglets = workbook.getNumberOfSheets();
    	int indexOnglet = -1;
    	for (int i = nbOnglets - 1; i >= 0; i--) {
    		if (!workbook.getSheet(i).getName().equals(ongletAConserver)) {
    			workbook.removeSheet(i);
    		}
    		else {
    			indexOnglet = i;
    		}
    	}
     
    //	// on place l'onglet restant en 1ere position
    //	workbook.moveSheet(indexOnglet, 0);
    }
    NB: pas de souci avec le nom de la feuille, je me base sur des noms connus.
    PS: en fait, je n'ai aps besoin de placer l'onglet en position 0, c'est fait automatiquement, i.e. il n'y a pas de "trous" dans la liste des Sheet)

    Vous me confirmer qu'il n'y a pas de méthodes du genre appendSheet() ou de addSheet() ?

    Merci.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 68
    Points : 221
    Points
    221
    Par défaut
    La copie d'une feuille passe par la copie des cellules une par une.
    How can I copy a worksheet in one workbook to a new worksheet in another workbook?
    This can be done, but requires a little work. Firstly, you have to copy it cell (within a couple of nested for loops). For each cell you need to invoke the copyTo() method, which will produce a deep copy. However the format is only shallow copied, so you will need to get the cell format and use the copy constructor of that, and then call setCellFormat on the cell you have just copied. Then add the duplicate cell to the new spreadsheet

    The code might look as follows:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
      for (int i = 0 ; i < numrows ; i++)
      {
        for (int j = 0 ; j < numcols ; j++)
        {
          readCell = sheet.getCell(i, j);
          newCell = readCell.copyTo(i, j);
          readFormat = readCell.getCellFormat();
          newFormat = new WritableCellFormat(readFormat);
          newCell.setCellFormat(newFormat);
          newSheet.add(newCell);
        }
      }
    http://jexcelapi.sourceforge.net/resources/faq/

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

Discussions similaires

  1. [Débutant] Ajouter une solution existante dans le serveur
    Par DotNET74 dans le forum Visual Studio Team System
    Réponses: 1
    Dernier message: 12/02/2013, 10h23
  2. Réponses: 2
    Dernier message: 16/11/2006, 15h00
  3. [C#] Ajout d'une Form existante dans mon projet ?
    Par sara21 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 05/10/2006, 01h08
  4. Chercher une donnée existante dans un fichier
    Par BXDSPORT dans le forum Langage
    Réponses: 4
    Dernier message: 09/10/2005, 18h04
  5. Importer une db existante dans mysql
    Par Arbisis dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 19/02/2004, 17h02

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