Dimensione della cella excel e java

di imparareJava il
3 risposte
Poiché esiste il metodo size () con Arrraylist, per conoscere la dimensione degli elementi.
Invece usando apache poi, acome posso conoscere la dimensione della cella in Excel, per sapere quanti record ci sono?

public void fillDispositivoVeicoloIDVEICOLO () {
  for (int rowIndex = 1; rowIndex <281; rowIndex ++) {
       currentRow = dataTypeSheet.getRow (rowIndex);
       cell_id_veicolo = currentRow.getCell (8); // Cella I
       id_veicolo.add (cell_id_veicolo.getStringCellValue ());
   }
       System.out.println (id_veicolo);
}


invece di 281 cosa dovrei inserire? dato che in Excel ci sono 281 record?

3 Risposte

  • Il getLastRowNum() dello Sheet ma l'avevi già usato in un'altra discussione. Quindi quale sarebbe il dubbio?

    P.S. il size() delle collezioni non c'entra nulla con Excel.
  • Il dubbio è questo:
    
    public void fillVeicoloId() {
    		for (int rowIndex = 1; rowIndex < 12; rowIndex++) {
    			currentRow = dataTypeSheet.getRow(rowIndex);
    			cell_id = currentRow.getCell(16); // Cella Q
    			veicoloId.add(cell_id.getStringCellValue());
    		}
    
    		System.out.println(veicoloId);
    	}
    
    
    risultato:

    [2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597]

    Vado a modificare:
    
    public void fillVeicoloId() {
    		for (int rowIndex = 1; rowIndex < dataTypeSheet.getLastRowNum(); rowIndex++) {
    			currentRow = dataTypeSheet.getRow(rowIndex);
    			cell_id = currentRow.getCell(16); // Cella Q
    			veicoloId.add(cell_id.getStringCellValue());
    		}
    
    		System.out.println(veicoloId);
    	}
    
    
    Risultato:
    Exception in thread "main" java.lang.NullPointerException
    at it.cliente.Cliente.fillVeicoloId(Cliente.java:112)
    at it.cliente.Test.main(Test.java:15)

    L'errore me lo da qua: veicoloId.add(cell_id.getStringCellValue().toString());
  • Mi funziona, però quando vado ad eseguire, riconosce che sono 12, ma se modifico e ne tolgo 1
    
    
    public void fillTarga() {
    		for (int rowIndex = 1; rowIndex < dataTypeSheet.getPhysicalNumberOfRows(); rowIndex++) {
    			currentRow = dataTypeSheet.getRow(rowIndex);
    			cell_targa = currentRow.getCell(21); // Cella V
    			if( cell_targa != null)
    			targa.add(cell_targa.getStringCellValue());
    		}
    
    		System.out.println(targa);
    	}
    
    Error:
    Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 12, Size: 12
    at java.util.ArrayList.rangeCheck(ArrayList.java:657)
    at java.util.ArrayList.get(ArrayList.java:433)
    at it.cliente.Confrontare.confrontaTargheVeicolo(Confrontare.java:97)
    at it.cliente.Test.main(Test.java:10)
Devi accedere o registrarti per scrivere nel forum
3 risposte