cocoon-users-fr mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Morissette Laurent" <Laurent.Morisse...@loto-quebec.com>
Subject NullPointer Exception quand on récupère le type d'une cellule Excell avec Apache POI
Date Mon, 14 Aug 2006 18:28:26 GMT

Bonjour!

Bon je ne sais pas si je poste sur la bonne liste mais J'ai un problème récurent avec l'API
POI de Apache Pour faire court je veux lire le contenu d'un fichier Excell et l'afficher dans
un tableau HTML via un servelet

Voici le  code qui est buggy :

out.println("<link rel='stylesheet' src='http://loteries.loto-quebec.com/css/lotpc.css'
type='text/css'>");
                      /* chager le fichier xls dans un stream (NETWORK SHARE ACCESS)  */ 
 
			InputStream fluxXls =new FileInputStream("\\\\le500\\dfs\\INTERLQ\\INTERNETCOMNUM\\POL\\MAJ\\MAJs_2006-08-14\\Structures
de lots.xls\\test2.xls");
			HSSFWorkbook strutureXLS = new HSSFWorkbook(fluxXls);
			if (strutureXLS == null)
				out.print("WB is null");
			HSSFSheet feuilleStructure = strutureXLS.getSheetAt(0);
			out.println(
				"<table bgcolor=\"#003399\"width=\"100%\" border=0 cellpadding=3 cellspacing=1>");
			for (int i = 0; i < feuilleStructure.getLastRowNum(); i++) {
				HSSFRow ligne = feuilleStructure.getRow(i);
				out.println("<tr bgcolor=\"#ccccc\">");
				/* on ittère sur chaque cellule pour récupérer les données de la ligne*/
				for (short j = 0; j < ligne.getLastCellNum(); j++) {
					HSSFCell cellule = ligne.getCell(j);
					if (cellule == null)
						System.out.print("La cellule courant est null ");
					/*TODO BUGGY à partir d'ici  ça plante j'obtiens : 
					 * 
					 Error 500: Server caught unhandled exception from servlet [StructureServelet]: null
					  Détails : voir StackTrace 
					**/
					int TYPE_CELLULE = cellule.getCellType();

					// short derniereCell=3;

					// on vérifie le type de donnée dans la cellule question d'éviter les exceptions
					if (TYPE_CELLULE == HSSFCell.CELL_TYPE_STRING) {
						out.println("<td class=\"td1\">");
						out.println(cellule.getStringCellValue());
					}
					if (TYPE_CELLULE == HSSFCell.CELL_TYPE_NUMERIC) {
						out.println("<td class=\"td1\">");
						out.println(cellule.getNumericCellValue());
					}
					//if(TYPE_CELLULE==HSSFCell.CELL_TYPE_STRING&&j==0&&ligne.getCell(derniereCell).getCellType()==HSSFCell.CELL_TYPE_BLANK)out.println("<td
class=\"td2\"colspan=\"5\">");								 

					out.println("</td>");

				}
				out.println("</tr>");
			}
			out.println("</table>");

			out.close(); 


Désolé si c'est trash comme formattage de code mais voici le stackTrace ( j'ai joins le
fichier code java
************* Partial stackTrace ***********
[06-08-14 14:07:39:195 EDT] 500283c0 SystemOut     O La cellule courant est null 
[06-08-14 14:07:39:195 EDT] 500283c0 WebGroup      E SRVE0026E: [Erreur de servlet]-[StructureServelet]:
java.lang.NullPointerException
	at com.lq.web.servelets.StructureServelet.processRequest(StructureServelet.java:51)
	at com.lq.web.servelets.StructureServelet.doGet(StructureServelet.java:91)
************** Partial stackTrace END ************************

Or si vous regardez mon fichier xls (test2.xls ci joint) la cellule (0,0) contient :  50 000
 $ Ça va faire deux jours que je planche là-dessus et j'ai pas trouvé la cause du bug :(
Avez-vous des idée de causes ou des suggestions ? 

Merci d'avance de votre support :)


Laurent Morissette
----------
Technicien en Informatique
 
Analyse et développement Web J2EE
Services Internet
Présidence Opérations lotteries - Loto-Québec

Mime
View raw message