Partage
  • Partager sur Facebook
  • Partager sur Twitter

POIFSFileSystem cannot be resolved to a type

erreur

    13 février 2012 à 15:28:44

    Bonjour à tous,

    J'ai cette erreur ci sur mon serveur Tomcat:
    org.apache.jasper.JasperException: Unable to compile class for JSP: 
    
    An error occurred at line: 8 in the generated java file
    Only a type can be imported. org.apache.poi.hssf.usermodel.HSSFWorkbook resolves to a package
    
    An error occurred at line: 9 in the generated java file
    Only a type can be imported. org.apache.poi.hssf.usermodel.HSSFCell resolves to a package
    
    An error occurred at line: 10 in the generated java file
    Only a type can be imported. org.apache.poi.hssf.usermodel.HSSFSheet resolves to a package
    
    An error occurred at line: 11 in the generated java file
    Only a type can be imported. org.apache.poi.hssf.usermodel.HSSFRow resolves to a package
    
    An error occurred at line: 12 in the generated java file
    Only a type can be imported. org.apache.poi.poifs.filesystem.POIFSFileSystem resolves to a package
    
    An error occurred at line: 84 in the jsp file: /readExcel.jsp
    POIFSFileSystem cannot be resolved to a type
    81: 
    82:                         <%
    83:                                 try {
    84:                                         POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(
    85:                                                         request.getParameter("file")));
    86:                                         HSSFWorkbook wb = new HSSFWorkbook(fs);
    87:                                         HSSFSheet sheet = wb.getSheetAt(0);


    je comprend pas.
    J'ai bien ma librairie POI présente dans le lib de mon projet et même sur tomcat.
    j'ai bien fait les imports dans ma jsp:

    <code type="java<%@page import="java.io.*"%>
    <%@page import="java.util.*"%>
    <%@page import="org.apache.poi.hssf.usermodel.*"%>
    <%@page import="org.apache.poi.poifs.filesystem.*"%>
    <%@page import="java.text.DateFormat"%>
    <%@page import="java.text.ParseException"%>
    <%@page import="java.text.SimpleDateFormat"%>
    <%@page import="java.awt.*"%>
    <%@page import="org.jfree.chart.*"%>
    <%@page import="org.jfree.chart.axis.*"%>
    <%@page import="org.jfree.chart.entity.*"%>
    <%@page import="org.jfree.chart.labels.*"%>
    <%@page import="org.jfree.chart.plot.*"%>
    <%@page import="org.jfree.chart.renderer.category.*"%>
    <%@page import="org.jfree.chart.urls.*"%>
    <%@page import="org.jfree.data.category.*"%>
    <%@page import="org.jfree.data.general.*"%>

    <html>
    <head>
    <title>Extraction du Fichier Excel</title>
    <link rel="stylesheet" type="text/css" href="style_de_base.css"
    media="screen">
    </head>
    <body>
    <h3>Extraction IETD</h3>
    <br/>
    <form>
    chemin=<%=request.getParameter("file")%><br />
    <%
    String type_dossier;
    String ref_presta;
    String code_action;
    long N_BP_Symphonie;
    String Indice_Carat;
    String lib_offre;
    String entite;
    String televendeur;
    String recu = "";
    String expedie = "";
    String date_npai;
    String anomalie;
    int compteur = 0;
    Calendar cal1 = Calendar.getInstance();
    Calendar cal2 = Calendar.getInstance();
    Calendar cal3 = Calendar.getInstance();
    DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
    java.util.Date dat1;
    java.util.Date dat2;
    java.util.Date dat3 = new Date(new GregorianCalendar().getTime().getTime());
    String datedujour=formatter.format(dat3);
    //compteur pour graphique
    int b2s = 0;
    int eurocrm = 0;
    int sym = 0;
    int tvmontpellier = 0;
    int tvlyon = 0;
    int tvquimper = 0;

    %>
    <table>
    <tr>
    <td>N° de la ligne:</td>
    <td>Dépassement de:(en jours)</td>
    <td>type_dossier</td>
    <td>référence prestataire</td>
    <td>code action</td>
    <td>N_BP_Symphonie</td>
    <td>Indice_Carat</td>
    <td>lib_offre</td>
    <td>entite</td>
    <td>televendeur</td>
    <td>recu</td>
    <td>expedie</td>
    <td>date_npai</td>
    <td>anomalie</td>
    </tr>

    <%
    try {
    POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(
    request.getParameter("file")));
    HSSFWorkbook wb = new HSSFWorkbook(fs);
    HSSFSheet sheet = wb.getSheetAt(0);
    HSSFRow row = null;
    HSSFCell cell = null;
    int numLigne = 1;
    int n;
    int num;



    for (Iterator rowIt = sheet.rowIterator(); rowIt.hasNext();) {
    row = (HSSFRow) rowIt.next();
    //nbre total de ligne
    n = row.getRowNum();

    //test pour eviter de lire les entetes
    if (n != 0 && row.getCell(8) != null && row.getCell(9) != null) {
    recu = row.getCell(8).getStringCellValue();
    expedie = row.getCell(9).getStringCellValue();

    //test pour eviter que la date d'expedition soit vides et avoir un parse error de la date
    //ATTENTION: demander à Hervé si la date recu est toujours renseigné dans les fichiers d'export IETD
    if (expedie != ""){
    dat1 = formatter.parse(recu);
    dat2 = formatter.parse(expedie);
    cal1.setTime(dat1);
    cal2.setTime(dat2);
    //System.out.println("-----"+cal1.toString());

    int jours = 0;
    while (cal1.before(cal2)) {
    if(cal1.get(Calendar.DAY_OF_WEEK) != Calendar.SUNDAY && cal1.get(Calendar.DAY_OF_WEEK) != Calendar.SATURDAY)
    jours++;
    cal1.add(Calendar.DAY_OF_MONTH, 1);

    }

    //TEST
    if (jours > 2) {
    //pour afficher le nombre total de ligne non conforme
    compteur++;
    //pour afficher le numéro de la ligne non conforme
    num = row.getRowNum();
    num++;

    type_dossier = row.getCell(0)
    .getStringCellValue();
    ref_presta = row.getCell(1)
    .getStringCellValue();
    code_action = row.getCell(2)
    .getStringCellValue();
    N_BP_Symphonie = (long) row.getCell(3)
    .getNumericCellValue();
    Indice_Carat = row.getCell(4)
    .getStringCellValue();
    lib_offre = row.getCell(5).getStringCellValue();
    entite = row.getCell(6).getStringCellValue();
    televendeur = row.getCell(7)
    .getStringCellValue();
    //
    date_npai = row.getCell(10)
    .getStringCellValue();
    anomalie = row.getCell(11).getStringCellValue();
    //test pour le graphique
    if(entite.equals("B2S"))b2s++;
    if(entite.equals("EuroCRM")) eurocrm++;
    if(entite.equals("SYM")) sym++;
    if(entite.equals("TV Lyon")) tvlyon++;
    if(entite.equals("TV Montpellier")) tvmontpellier++;
    if(entite.equals("TV Quimper")) tvquimper++;
    %>
    <tr>
    <td><%=num%></td>
    <td><%=jours%></td>
    <td><%=type_dossier%></td>
    <td><%=ref_presta%></td>
    <td><%=code_action%></td>
    <td><%=N_BP_Symphonie%></td>
    <td><%=Indice_Carat%></td>
    <td><%=lib_offre%></td>
    <td><%=entite%></td>
    <td><%=televendeur%></td>
    <td><%=recu%></td>
    <td><%=expedie%></td>
    <td><%=date_npai%></td>
    <td><%=anomalie%></td>
    </tr>

    <%
    }

    for (Iterator cellIt = row.cellIterator(); cellIt
    .hasNext();) {
    cell = (HSSFCell) cellIt.next();
    //System.out.println("ligne n° "+cell.getRowIndex());//avoir le numéro de ligne
    break;
    }
    }else{//sinon si expedie==""
    if(row.getCell(11).getStringCellValue().isEmpty()==true){//et si l'anomalie est vide
    if(recu != ""){
    dat1 = formatter.parse(recu);
    dat3 = formatter.parse(datedujour);
    cal1.setTime(dat1);
    cal3.setTime(dat3);

    int jours = 0;
    while (cal1.before(cal3)) {
    if(cal1.get(Calendar.DAY_OF_WEEK) != Calendar.SUNDAY && cal1.get(Calendar.DAY_OF_WEEK) != Calendar.SATURDAY)
    jours++;
    cal1.add(Calendar.DAY_OF_MONTH, 1);

    }

    //TEST si la diff (entre la datedujour et la date recu) est supérieur à 2 jours
    if (jours > 2) {

    //pour afficher le nombre total de ligne non conforme
    compteur++;
    //pour afficher le numéro de la ligne non conforme
    num = row.getRowNum();
    num++;

    type_dossier = row.getCell(0)
    .getStringCellValue();
    ref_presta = row.getCell(1)
    .getStringCellValue();
    code_action = row.getCell(2)
    .getStringCellValue();
    N_BP_Symphonie = (long) row.getCell(3)
    .getNumericCellValue();
    Indice_Carat = row.getCell(4)
    .getStringCellValue();
    lib_offre = row.getCell(5).getStringCellValue();
    entite = row.getCell(6).getStringCellValue();
    televendeur = row.getCell(7)
    .getStringCellValue();
    //
    date_npai = row.getCell(10)
    .getStringCellValue();
    anomalie = row.getCell(11).getStringCellValue();
    //test pour le graphique
    if(entite.equals("B2S"))b2s++;
    if(entite.equals("EuroCRM")) eurocrm++;
    if(entite.equals("SYM")) sym++;
    if(entite.equals("TV Lyon")) tvlyon++;
    if(entite.equals("TV Montpellier")) tvmontpellier++;
    if(entite.equals("TV Quimper")) tvquimper++;

    %>
    <tr>
    <td><%=num%></td>
    <td><%=jours%></td>
    <td><%=type_dossier%></td>
    <td><%=ref_presta%></td>
    <td><%=code_action%></td>
    <td><%=N_BP_Symphonie%></td>
    <td><%=Indice_Carat%></td>
    <td><%=lib_offre%></td>
    <td><%=entite%></td>
    <td><%=televendeur%></td>
    <td><%=recu%></td>
    <td><%=expedie%></td>
    <td><%=date_npai%></td>
    <td><%=anomalie%></td>
    </tr><%
    }
    }

    }
    }
    }
    }//boucle for
    %></table>

    <br />
    total de ligne ayant dépassé 2 jours: <%=compteur%>
    <br/>
    Date du jour: <%=datedujour%>
    <br/>
    b2s: <%=b2s%>
    <br/>
    eurocrm: <%=eurocrm%>
    <br/>
    sym: <%=sym%>
    <br/>
    tvlyon: <%=tvlyon%>
    <br/>
    tvmontpellier: <%=tvmontpellier%>
    <br/>
    tvquimper: <%=tvquimper%>
    <br/>
    <%
    } catch (FileNotFoundException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }

    //graph

    final double[][] data = new double[][]{{b2s},{eurocrm},{sym},{tvlyon},{tvmontpellier},{tvquimper}};

    //final CategoryDataset dataset = DatasetUtilities.createCategoryDataset("Team ", "", data);
    DefaultCategoryDataset dataset1 = new DefaultCategoryDataset();
    dataset1.addValue(b2s, "b2s", "b2s");
    dataset1.addValue(eurocrm, "eurocrm", "eurocrm");
    dataset1.addValue(sym, "sym", "sym");
    dataset1.addValue(tvlyon, "tvlyon", "tvlyon");
    dataset1.addValue(tvmontpellier, "tvmontpellier", "tvmontpellier");
    dataset1.addValue(tvquimper, "tvquimper", "tvquimper");

    JFreeChart chart = null;
    BarRenderer renderer = null;
    CategoryPlot plot = null;

    final CategoryAxis categoryAxis = new CategoryAxis("Entité");
    final ValueAxis valueAxis = new NumberAxis("IETD non conforme");
    renderer = new BarRenderer();

    plot = new CategoryPlot(dataset1, categoryAxis, valueAxis, renderer);
    plot.setOrientation(PlotOrientation.VERTICAL);
    chart = new JFreeChart("Graph par entité", JFreeChart.DEFAULT_TITLE_FONT, plot, true);
    chart.setBackgroundPaint(new Color(249, 231, 236));

    Paint p1 = new GradientPaint( 0.0f, 0.0f, new Color(16, 89, 172), 0.0f, 0.0f, new Color(201, 201, 244));
    renderer.setSeriesPaint(1, p1);

    Paint p2 = new GradientPaint(0.0f, 0.0f, new Color(255, 35, 35), 0.0f, 0.0f, new Color(40, 150, 70));
    renderer.setSeriesPaint(2, p2);
    plot.setRenderer(renderer);

    try {
    final ChartRenderingInfo info = new ChartRenderingInfo (new StandardEntityCollection());
    final File file1 = new File("barchart.jpeg");
    ChartUtilities.saveChartAsPNG(file1, chart, 600, 400, info);
    } catch (Exception e) {
    out.println(e);
    }
    %>

    <img src="../barchart.png"/>

    </form>
    </body>
    </html></code>

    On dirait qu'il ne trouve pas la librairie POI.
    Quelqu'un saurait-il d'ou ça vient ?

    Merci
    • Partager sur Facebook
    • Partager sur Twitter
      13 février 2012 à 16:20:06

      Donne la liste des jars présents dans WEB-INF/lib



      PS : vive le modèle MVC.
      • Partager sur Facebook
      • Partager sur Twitter
        14 février 2012 à 9:15:45

        Merci, j'ai compris ca fonctionne.
        Il faut mettre le .jar ds ce répertoire.

        Autre problème mais ca c'est concernant mon Tableau de la jsp:

        je fais ça:
        <%@ page import="java.io.*" %>
        <%@ page import="java.util.*" %>
        <%@ page import="org.apache.poi.hssf.usermodel.HSSFWorkbook" %>
        <%@ page import="org.apache.poi.hssf.usermodel.HSSFCell" %>
        <%@ page import="org.apache.poi.hssf.usermodel.HSSFSheet" %>
        <%@ page import="org.apache.poi.hssf.usermodel.HSSFRow" %>
        <%@ page import="org.apache.poi.poifs.filesystem.POIFSFileSystem" %>
        <%@ page import="java.text.DateFormat" %>
        <%@ page import="java.text.ParseException" %>
        <%@ page import="java.text.SimpleDateFormat" %>
        <%@ page import="java.awt.*" %>
        <%@ page import="org.jfree.chart.*" %>
        <%@ page import="org.jfree.chart.axis.*" %>
        <%@ page import="org.jfree.chart.entity.*" %>
        <%@ page import="org.jfree.chart.labels.*" %>
        <%@ page import="org.jfree.chart.plot.*" %>
        <%@ page import="org.jfree.chart.renderer.category.*" %>
        <%@ page import="org.jfree.chart.urls.*" %>
        <%@ page import="org.jfree.data.category.*" %>
        <%@ page import="org.jfree.data.general.*" %>
        
        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
        <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
        <title>Extraction du Fichier Excel</title>
        <link rel="stylesheet" type="text/css" href="style_de_base.css" media="screen">
        </head>
        <body>
        	<h3>Extraction IETD</h3>
        		<br/>
        		chemin= <%=request.getParameter("file")%><br />
        		<%
        			String type_dossier;
        			String ref_presta;
        			String code_action;
        			long N_BP_Symphonie;
        			String Indice_Carat;
        			String lib_offre;
        			String entite;
        			String televendeur;
        			String recu = "";
        			String expedie = "";
        			String date_npai;
        			String anomalie;
        			int compteur = 0;
        			Calendar cal1 = Calendar.getInstance();
        			Calendar cal2 = Calendar.getInstance();
        			Calendar cal3 = Calendar.getInstance();
        			DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
        			java.util.Date dat1;
        			java.util.Date dat2;
        			java.util.Date dat3 = new Date(new GregorianCalendar().getTime().getTime()); 
        			String datedujour=formatter.format(dat3);
        			//compteur pour graphique
        			int b2s = 0;
        			int eurocrm = 0;
        			int sym = 0;
        			int tvmontpellier = 0;
        			int tvlyon = 0;
        			int tvquimper = 0;
        
        		%>
        		<table>
        			<tr>
        				<td>N° de la ligne:</td>
        				<td>Dépassement de:(en jours)</td>
        				<td>type_dossier</td>
        				<td>référence prestataire</td>
        				<td>code action</td>
        				<td>N_BP_Symphonie</td>
        				<td>Indice_Carat</td>
        				<td>lib_offre</td>
        				<td>entite</td>
        				<td>televendeur</td>
        				<td>recu</td>
        				<td>expedie</td>
        				<td>date_npai</td>
        				<td>anomalie</td>
        			</tr>
        
        			<%
        				try {
        					POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(
        							request.getParameter("file")));
        					HSSFWorkbook wb = new HSSFWorkbook(fs);
        					HSSFSheet sheet = wb.getSheetAt(0);
        					HSSFRow row = null;
        					HSSFCell cell = null;
        					int numLigne = 1;
        					int n;
        					int num;
        					for (Iterator rowIt = sheet.rowIterator(); rowIt.hasNext();) {
        						row = (HSSFRow) rowIt.next();
        						//nbre total de ligne
        						n = row.getRowNum();
        
        						//test pour eviter de lire les entetes
        						if (n != 0 && row.getCell(8) != null && row.getCell(9) != null) {
        							recu = row.getCell(8).getStringCellValue();
        							expedie = row.getCell(9).getStringCellValue();
        
        							//test pour eviter que la date d'expedition soit vides et avoir un parse error de la date
        							//ATTENTION: demander à Hervé si la date recu est toujours renseigné dans les fichiers d'export IETD 
        							if (expedie != ""){
        								dat1 = formatter.parse(recu);
        								dat2 = formatter.parse(expedie);
        								cal1.setTime(dat1);
        								cal2.setTime(dat2);
        								//System.out.println("-----"+cal1.toString());
        
        								int jours = 0;
        								while (cal1.before(cal2)) {
        									if(cal1.get(Calendar.DAY_OF_WEEK) != Calendar.SUNDAY && cal1.get(Calendar.DAY_OF_WEEK) != Calendar.SATURDAY)
        										jours++;
        									cal1.add(Calendar.DAY_OF_MONTH, 1);
        									
        								}
        
        								//TEST
        								if (jours > 2) {
        									//pour afficher le nombre total de ligne non conforme
        									compteur++;
        									//pour afficher le numéro de la ligne non conforme
        									num = row.getRowNum();
        									num++;
        
        									type_dossier = row.getCell(0)
        											.getStringCellValue();
        									ref_presta = row.getCell(1)
        											.getStringCellValue();
        									code_action = row.getCell(2)
        											.getStringCellValue();
        									N_BP_Symphonie = (long) row.getCell(3)
        											.getNumericCellValue();
        									Indice_Carat = row.getCell(4)
        											.getStringCellValue();
        									lib_offre = row.getCell(5).getStringCellValue();
        									entite = row.getCell(6).getStringCellValue();
        									televendeur = row.getCell(7)
        											.getStringCellValue();
        									//
        									date_npai = row.getCell(10)
        											.getStringCellValue();
        									anomalie = row.getCell(11).getStringCellValue();
        									//test pour le graphique
        									if(entite.equals("B2S"))b2s++;
        									if(entite.equals("EuroCRM")) eurocrm++;
        									if(entite.equals("SYM")) sym++;
        									if(entite.equals("TV Lyon")) tvlyon++;
        									if(entite.equals("TV Montpellier")) tvmontpellier++;
        									if(entite.equals("TV Quimper")) tvquimper++;
        			%>
        			<tr>
        				<td><%=num%></td>
        				<td><%=jours%></td>
        				<td><%=type_dossier%></td>
        				<td><%=ref_presta%></td>
        				<td><%=code_action%></td>
        				<td><%=N_BP_Symphonie%></td>
        				<td><%=Indice_Carat%></td>
        				<td><%=lib_offre%></td>
        				<td><%=entite%></td>
        				<td><%=televendeur%></td>
        				<td><%=recu%></td>
        				<td><%=expedie%></td>
        				<td><%=date_npai%></td>
        				<td><%=anomalie%></td>
        			</tr>
        		
        		<%
        			}
        							
        							for (Iterator cellIt = row.cellIterator(); cellIt
        									.hasNext();) {
        								cell = (HSSFCell) cellIt.next();
        								//System.out.println("ligne n° "+cell.getRowIndex());//avoir le numéro de ligne
        								break;
        							}
        						}else{//sinon si expedie==""
        								if(row.getCell(11).getStringCellValue().isEmpty()==true){//et si l'anomalie est vide
        									if(recu != ""){
        							dat1 = formatter.parse(recu);
        							dat3 = formatter.parse(datedujour);
        							cal1.setTime(dat1);
        							cal3.setTime(dat3);
        							
        							int jours = 0;
        							while (cal1.before(cal3)) {
        								if(cal1.get(Calendar.DAY_OF_WEEK) != Calendar.SUNDAY && cal1.get(Calendar.DAY_OF_WEEK) != Calendar.SATURDAY)
        									jours++;
        								cal1.add(Calendar.DAY_OF_MONTH, 1);
        								
        							}
        							
        							//TEST si la diff (entre la datedujour et la date recu) est supérieur à 2 jours
        							if (jours > 2) {
        								
        								//pour afficher le nombre total de ligne non conforme
        								compteur++;
        								//pour afficher le numéro de la ligne non conforme
        								num = row.getRowNum();
        								num++;
        
        								type_dossier = row.getCell(0)
        										.getStringCellValue();
        								ref_presta = row.getCell(1)
        										.getStringCellValue();
        								code_action = row.getCell(2)
        										.getStringCellValue();
        								N_BP_Symphonie = (long) row.getCell(3)
        										.getNumericCellValue();
        								Indice_Carat = row.getCell(4)
        										.getStringCellValue();
        								lib_offre = row.getCell(5).getStringCellValue();
        								entite = row.getCell(6).getStringCellValue();
        								televendeur = row.getCell(7)
        										.getStringCellValue();
        								//
        								date_npai = row.getCell(10)
        										.getStringCellValue();
        								anomalie = row.getCell(11).getStringCellValue();
        								//test pour le graphique
        								if(entite.equals("B2S"))b2s++;
        								if(entite.equals("EuroCRM")) eurocrm++;
        								if(entite.equals("SYM")) sym++;
        								if(entite.equals("TV Lyon")) tvlyon++;
        								if(entite.equals("TV Montpellier")) tvmontpellier++;
        								if(entite.equals("TV Quimper")) tvquimper++;
        								
        		%>
        		<tr>
        			<td><%=num%></td>
        			<td><%=jours%></td>
        			<td><%=type_dossier%></td>
        			<td><%=ref_presta%></td>
        			<td><%=code_action%></td>
        			<td><%=N_BP_Symphonie%></td>
        			<td><%=Indice_Carat%></td>
        			<td><%=lib_offre%></td>
        			<td><%=entite%></td>
        			<td><%=televendeur%></td>
        			<td><%=recu%></td>
        			<td><%=expedie%></td>
        			<td><%=date_npai%></td>
        			<td><%=anomalie%></td>
        		</tr><%
        								}
        									}
        							
        							}
        							}
        					}
        				}//boucle for
        				%></table>
        
        		<br />
        		total de ligne ayant dépassé 2 jours: <%=compteur%>
        		<br/>
        		Date du jour: <%=datedujour%>
        		<br/>
        		b2s: <%=b2s%>
        		<br/>
        		eurocrm: <%=eurocrm%>
        		<br/>
        		sym: <%=sym%>
        		<br/>
        		tvlyon: <%=tvlyon%>
        		<br/>
        		tvmontpellier: <%=tvmontpellier%>
        		<br/>
        		tvquimper: <%=tvquimper%>
        		<br/>
        		<%
        			} catch (FileNotFoundException e) {
        				e.printStackTrace();
        			} catch (IOException e) {
        				e.printStackTrace();
        			}
        		
        		//graph
        		
          final double[][] data = new double[][]{{b2s},{eurocrm},{sym},{tvlyon},{tvmontpellier},{tvquimper}};
        
          //final CategoryDataset dataset = DatasetUtilities.createCategoryDataset("Team ", "", data);
          DefaultCategoryDataset dataset1 = new DefaultCategoryDataset(); 
          dataset1.addValue(b2s, "b2s", "b2s"); 
          dataset1.addValue(eurocrm, "eurocrm", "eurocrm"); 
          dataset1.addValue(sym, "sym", "sym"); 
          dataset1.addValue(tvlyon, "tvlyon", "tvlyon");
          dataset1.addValue(tvmontpellier, "tvmontpellier", "tvmontpellier"); 
          dataset1.addValue(tvquimper, "tvquimper", "tvquimper");
        
          JFreeChart chart = null;
          BarRenderer renderer = null;
          CategoryPlot plot = null;
        
          final CategoryAxis categoryAxis = new CategoryAxis("Entité");
          final ValueAxis valueAxis = new NumberAxis("IETD non conforme");
          renderer = new BarRenderer();
        
          plot = new CategoryPlot(dataset1, categoryAxis, valueAxis, renderer); 
          plot.setOrientation(PlotOrientation.VERTICAL);
          chart = new JFreeChart("Graph par entité", JFreeChart.DEFAULT_TITLE_FONT, plot, true);
          chart.setBackgroundPaint(new Color(249, 231, 236));
        
          Paint p1 = new GradientPaint( 0.0f, 0.0f, new Color(16, 89, 172), 0.0f, 0.0f, new Color(201, 201, 244)); 
          renderer.setSeriesPaint(1, p1);
        
          Paint p2 = new GradientPaint(0.0f, 0.0f, new Color(255, 35, 35), 0.0f, 0.0f, new Color(40, 150, 70)); 
          renderer.setSeriesPaint(2, p2);
          plot.setRenderer(renderer);
        
          try {
        	  final ChartRenderingInfo info = new ChartRenderingInfo (new StandardEntityCollection());
        	  final File file1 = new File("barchart.jpeg");
        	  ChartUtilities.saveChartAsPNG(file1, chart, 600, 400, info);
          } catch (Exception e) {
         		out.println(e);
          }
        %>
        
          <img src="../barchart.png"/>	
        </body>
        </html>
        


        mais mon tableau n'affiche que l'entête de mon tableau (coté navigateur avec Firefox et IE) et pas le reste de mes données excel que j'ai récupérer cad ca:
        <table>
        			<tr>
        				<td>N° de la ligne:</td>
        				<td>Dépassement de:(en jours)</td>
        				<td>type_dossier</td>
        				<td>référence prestataire</td>
        				<td>code action</td>
        				<td>N_BP_Symphonie</td>
        				<td>Indice_Carat</td>
        				<td>lib_offre</td>
        				<td>entite</td>
        				<td>televendeur</td>
        				<td>recu</td>
        				<td>expedie</td>
        				<td>date_npai</td>
        				<td>anomalie</td>
        			</tr>
        


        J'ai vérifier en localhost:
        avec IE ca marche
        avec mozilla je n'ai que l'entête

        Je comprend pas o_O
        • Partager sur Facebook
        • Partager sur Twitter
          14 février 2012 à 11:34:55

          Franchement c'est indébuggable (ou alors vraiment très très complexe à débugger).

          Généralement on évite de mettre trop de code dans les JSP, qui plus est on essaye généralement de ne pas mettre de "scriptlet" directement dans la vue.

          Perso, j'ai vraiment vraiment pas envie de me plonger dans (passe moi l'expression) un tel merdier.

          Si tu as du temps devant toi et l'envie de progresser, essaye de faire ça proprement :

          Une classe "domaine" qui représente les valeurs contenues dans ta feuille Excel.

          Une classe "bridge" qui utilise POI pour lire le document Excel et te renvoyer les objets correctement instanciés avec les valeurs provenant de la feuille Excel.

          Une classe "contrôleur" qui fait appel à ta classe bridge et récupère un tableau d'objets domaine et le renvoie à la vue JSP.

          Utilise la JSTL dans la vue pour parcourir le tableau reçu.

          Ton code sera nettement plus propre et clair. Tu peux tester indépendamment tous les modules : le problème vient-il de POI ? De la feuille Excel ? Du JSP ? Tu peux même aller jusqu'à faire des tests unitaires de chacune des briques (un jeu de tests que tu repasseras à chaque fois que tu changes quelque chose dans ton code pour s'assurer qu'il n'y a pas de régression dans les modifs que tu as faites)


          Ce que je t'ai détaillé ici n'est pas forcément l'implémentation la plus adaptée. J'ai considéré que l'organisation des valeurs contenues dans la feuille Excel était "figée", donc que ça se mappait bien sur des objets, on pourrait imaginer passer par une structure plus générique si c'est très changeant, voire se faire un bridge POI-Tableau totalement générique, ou se faire une surcouche à POI adaptée à tes besoins, ...

          Bref des 150 000 façons de procéder t'as choisi la plus dégueulasse.
          • Partager sur Facebook
          • Partager sur Twitter
            14 février 2012 à 13:34:20

            Non j'ai plus de temps.
            Mon appli fonctionne en localhost mais pas lorsque je la déploie sur mon serveur J2EE.

            J'en suis sur que c'est faisable.
            • Partager sur Facebook
            • Partager sur Twitter
              14 février 2012 à 16:38:20

              J'ai pas dit que c'était pas faisable, j'ai dit que c'était infâme.

              Bon courage pour la suite.
              • Partager sur Facebook
              • Partager sur Twitter
                14 février 2012 à 18:18:00

                Merci.
                Aurais-tu un exemple à me proposer des classes:

                -domaine
                -bridge
                -controlleur

                et la JSP avec les jstl dessus.

                C'est juste pour avoir un exemple a suivre.
                Je sais que ta méthode est mieux.

                Merci
                • Partager sur Facebook
                • Partager sur Twitter

                POIFSFileSystem cannot be resolved to a type

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown