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 :

[POI] Lire un fichier 2007


Sujet :

API standards et tierces Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut [POI] Lire un fichier 2007
    Bonjour,

    J'aimerai savoir comment lire un fichier de 2007 avec l'extension .xlsx ?

    je fais ca mais ca ne marche pas car j'ai des erreurs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    try {
          POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream("Projection_2012_Eq2.xlsx"));
          XSSFWorkbook wb = new XSSFWorkbook(fs);
          XSSFSheet sheet = wb.getSheetAt(0);
          XSSFRow row = null;
          XSSFCell cell = null;
          double totalLigne = 0.0;
          double totalGeneral = 0.0;
          int numLigne = 1;
    Merci

  2. #2
    Membre éclairé Avatar de amadoulamine1
    Inscrit en
    Avril 2005
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 260
    Par défaut
    Salut , tu n'as pas besoin d'utiliser le POIFile System
    tu met directement
    XSSFWorkbook wb= new XSSFWorkbook("chemin");
    et le reste vient

  3. #3
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut
    Alors je fais un exemple très simple d'ouverture et d'écriture de fichier:
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
     
    import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
    import org.apache.poi.ss.usermodel.Cell;
    import org.apache.poi.ss.usermodel.Row;
    import org.apache.poi.ss.usermodel.Sheet;
    import org.apache.poi.ss.usermodel.Workbook;
    import org.apache.poi.ss.usermodel.WorkbookFactory;
    import org.apache.poi.xssf.usermodel.XSSFWorkbook;
     
     
    public class LireEcrire {
     
        /**
         * @param args
         */
        public static void main(String[] args) {
            //InputStream inp;
            try {
            XSSFWorkbook wb= new XSSFWorkbook("workbook.xlsx");
     
     
            Sheet sheet = wb.getSheetAt(0);//onglet 0
            Row row = sheet.getRow(0);//ligne 0
            Cell cell = row.getCell(8);// colonne 8 (D)
            if (cell == null)
                cell = row.createCell(8);
            cell.setCellType(Cell.CELL_TYPE_STRING);
            cell.setCellValue("i write in my sheet 'test'");
     
            // Write the output to a file
            FileOutputStream fileOut = new FileOutputStream("workbook.xlsx");
            wb.write(fileOut);
            fileOut.close();
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
     
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
     
        }
    }
    et voici l'erreur obtenu:
    Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/xmlbeans/XmlException
    at LireEcrire.main(LireEcrire.java:24)
    Caused by: java.lang.ClassNotFoundException: org.apache.xmlbeans.XmlException
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    ... 1 more
    La même que celle que j'obtiens depuis 2 semaines maintenant.

    J'ai vérifié mon classpath.
    J'ai mis tous les jars de POI version 3.7.

    Toujours cette erreur...

  4. #4
    Membre éclairé Avatar de amadoulamine1
    Inscrit en
    Avril 2005
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 260
    Par défaut
    je te conseillerai d'utliser les XSSFSheet et XSSFRow
    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
    16
    17
    18
    19
    20
    21
    22
     
    XSSFSheet sheet=(XSSFSheet)wb.getSheetAt(0);
              int lastRowNum=sheet.getLastRowNum();
              System.out.println(lastRowNum);
              for(int i=0;i<lastRowNum;i++)
              {
            //	  XSSFClientAnchor b=new XSSFClientAnchor();
                   XSSFRow row=sheet.getRow(i);
                   if(row!=null){
    	               int lastCellNum=row.getLastCellNum();
    	              System.out.println("\n => LIGNE "+i+"\n");
    	               for(int j=0;j<lastCellNum;j++)
    	               {
    	                   XSSFCell cell=row.getCell(j);
    	                   if(cell!=null){
    	                	   System.out.print(cell.getColumnIndex()+":"+cell.getRowIndex()+":"+cell+" - ");
    	                   }
     
    	               }System.out.println();
                   }
              }
          }

  5. #5
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut
    Toujours la même erreur avec ce que tu m'as dit de faire:
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
     
    import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
    import org.apache.poi.ss.usermodel.Cell;
    import org.apache.poi.ss.usermodel.FormulaEvaluator;
    import org.apache.poi.ss.usermodel.Row;
    import org.apache.poi.ss.usermodel.Sheet;
    import org.apache.poi.ss.usermodel.Workbook;
    import org.apache.poi.ss.usermodel.WorkbookFactory;
    import org.apache.poi.xssf.usermodel.XSSFCell;
    import org.apache.poi.xssf.usermodel.XSSFRow;
    import org.apache.poi.xssf.usermodel.XSSFSheet;
    import org.apache.poi.xssf.usermodel.XSSFWorkbook;
     
     
    public class LireEcrire {
     
    	/**
             * @param args
             */
    	public static void main(String[] args) {
    		//InputStream inp;
    		try {
    		XSSFWorkbook wb= new XSSFWorkbook("workbook.xlsx");
     
    		XSSFSheet sheet = (XSSFSheet)wb.getSheetAt(0);//onglet 0
    		XSSFRow row = sheet.getRow(0);//ligne 0
    		XSSFCell cell = row.getCell(8);// colonne 8 (D)
    	    FormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator();
    	    evaluator.evaluate(cell);
    	    if (cell == null)
    	        cell = row.createCell(8);
    	    cell.setCellType(Cell.CELL_TYPE_STRING);
    	    cell.setCellValue("i write in my sheet 'test'");
     
    	    // Write the output to a file
    	    FileOutputStream fileOut = new FileOutputStream("workbook.xlsx");
    	    wb.write(fileOut);
    	    fileOut.close();
    		} catch (FileNotFoundException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}
    }

  6. #6
    Membre éclairé Avatar de amadoulamine1
    Inscrit en
    Avril 2005
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 260
    Par défaut
    Ouah c'est bizarre regarde si la structure du fichier n'a pas ete verouillée
    sinon je vais continuer a regarder pour toi

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

Discussions similaires

  1. [POI] Lire un fichier de type Excel
    Par nguyen_jimmy dans le forum Java EE
    Réponses: 2
    Dernier message: 03/10/2012, 19h18
  2. Réponses: 2
    Dernier message: 29/01/2010, 16h59
  3. Lire un fichier avec access runtime 2007
    Par Flamby38 dans le forum Runtime
    Réponses: 2
    Dernier message: 11/09/2007, 14h18
  4. Réponses: 1
    Dernier message: 02/05/2007, 09h22
  5. [POI] Lire un fichier word
    Par Hoegaarden dans le forum Documents
    Réponses: 8
    Dernier message: 03/10/2005, 16h59

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