apache poi cellIterator ignore les cellules vides, mais pas en première ligne

Je suis entrain de créer un programme java pour lire une feuille excel et créer un fichier séparé par des virgules. Quand je lance mon exemple de fichier excel, avec des colonnes vides, La première ligne fonctionne parfaitement, mais le reste des lignes ignorer les cellules vides.
J'ai lu sur les modifications de code nécessaires pour insérer les cellules vides dans les lignes, mais ma question est pourquoi la première ligne de travail ????


public ArrayList OpenAndReadExcel(){
    FileInputStream file = null;
    HSSFWorkbook workBook = null;
    ArrayList <String> rows = new ArrayList();

    //open the file

    try {
         file = new FileInputStream(new File("Fruity.xls"));
    } catch (FileNotFoundException e) {
        //TODO Auto-generated catch block
        System.out.println("Could not open Input File");
        e.printStackTrace();
    }

    // open the input stream as a workbook

        try {
             workBook = new HSSFWorkbook(file);
        } catch (IOException e) {
            //TODO Auto-generated catch block
            System.out.println("Can't Open HSSF workbook");
            e.printStackTrace();
        }

        //get the sheet
        HSSFSheet sheet = workBook.getSheetAt(0);

        //add an iterator for every row and column
        Iterator<Row> rowIter = sheet.rowIterator();

        while (rowIter.hasNext())
        {

            String rowHolder = "";
            HSSFRow row = (HSSFRow) rowIter.next();
            Iterator<Cell> cellIter = row.cellIterator();
            Boolean first =true;
            while ( cellIter.hasNext())
            {
                if (!first)
                    rowHolder = rowHolder + ",";

                HSSFCell cell = (HSSFCell) cellIter.next();

                rowHolder = rowHolder + cell.toString() ;
                first = false;
            }

            rows.add(rowHolder);

        }

    return rows;

}
public void WriteOutput(ArrayList<String> rows) {

    //TODO Auto-generated method stub
    PrintStream outFile ;
    try {


        outFile = new PrintStream("fruity.txt");
        for(String row : rows)
        {   
            outFile.println(row);
        }
        outFile.close();

    } catch (FileNotFoundException e) {
        //TODO Auto-generated catch block
        e.printStackTrace();
    }
}

}

-----

mon Entrée dans .fichier xls (Désolé ne sais pas comment insérer un tableau excel ici )

Nom >>>>>>>>>> Pays d'Origine >>>>>>>>> État d'origine >>>>>>> Classe>>>>>> Pas de mois

Apple >>>>>>>> USA >>>>>>>>>>>>>>>>>>>>>> Washington >>>>>>>>>>>>>> A >>>>>>>>> 6

orange >>>>>> USA >>>>>>>>>>>>>>>>>>>>>> de la Floride >>>>>>>>>>>>>>>>> A >>>>>>>>> 9

ananas>>>>> USA >>>>>>>>>>>>>>>>>>>>>> Hawaii >>>>>>>>>>>>>>>>>> B >>>>>>>>> 10

fraise>>>> USA >>>>>>>>>>>>>>>>>>>>>> New Jersey>>>>>>>>>>>>>> C >>>>>>>>>> 3

mon fichier texte de sortie


Le nom ,le Pays d'Origine,État d'origine,,,Grade,Aucun de mois

Apple,états-unis,Washington,6.0

orange,états-unis,en Floride,A,9.0

ananas,etats-unis,Hawaï,B,10.0

fraise,etats-unis,dans le New Jersey,C,3.0


Notice the two extra commas before the Grade column... This is because I have two blank columns there.<br/>

Ces virgules sont manquants dans le reste de la production.

Je suis à l'aide d'Apache Poi-3.9-20121203.jar

  • compris celui-ci. C'est la mise en forme... la Première ligne est le titre qui est en GRAS... le GRAS est applicable même pour les colonnes vides... Alors ces colonnes étaient supposés avoir de la valeur à blanc et ne pas nul... merci
  • Vous pouvez modifier le texte de la question.
InformationsquelleAutor user2047551 | 2013-02-06