Restituzione data (formula) excel in java

di il
5 risposte

Restituzione data (formula) excel in java

Ciao a tutti,


Visto che una cella in excel è stata inserita la formula per creare una data in base al formato.
Non mi restituisce il valore della cella cioè 12/02/2019 ma restituisce la formula.
Non capisco dove sbaglio, mi potete aiutare??

public void fillVeicoloDataFineValidita() {
		for (int rowIndex = 1; rowIndex < dataTypeSheet.getPhysicalNumberOfRows(); rowIndex++) {
			currentRow = dataTypeSheet.getRow(rowIndex);
			try {
				cell_data_fine_validita = currentRow.getCell(29).getCellFormula().toString(); // Cella AD
				if (cell_data_fine_validita != null)
					data_fine_validita.add(cell_data_fine_validita.toString());
			} catch (NotImplementedException e) {
				e.printStackTrace();
			}

		}

		System.out.println(data_fine_validita.toString());
	}

Error:
Exception in thread "main" java.lang.IllegalStateException: Cannot get a FORMULA value from a BLANK cell
at org.apache.poi.xssf.usermodel.XSSFCell.typeMismatch(XSSFCell.java:1075)
at org.apache.poi.xssf.usermodel.XSSFCell.getCellFormula(XSSFCell.java:483)
at org.apache.poi.xssf.usermodel.XSSFCell.getCellFormula(XSSFCell.java:470)
at it.clienteUno.Cliente.fillVeicoloDataFineValidita(Cliente.java:513)
at it.clienteUno.Test.main(Test.java:19)

Errore riga 513 --> cell_data_fine_validita = currentRow.getCell(29).getCellFormula().toString(); // Cella AD

le celle nel file excel sono tutte piene cioè tutti hanno dei valori in base alla loro data

5 Risposte

  • Re: Restituzione data (formula) excel in java

    imparareJava ha scritto:


    Non mi restituisce il valore della cella cioè 12/02/2019 ma restituisce la formula.
    
    				cell_data_fine_validita = currentRow.getCell(29).getCellFormula().toString();
    
    getCellFormula() restituisce appunto la formula (es. "SUM(A1:D1)" ). Se tu dici "voglio il valore e NON la formula" ... ovviamente getCellFormula() NON è il metodo da usare ....
  • Re: Restituzione data (formula) excel in java

    Ci sono riuscito
    
    public void fillVeicoloDataFineValidita() {
    		for (int rowIndex = 1; rowIndex < dataTypeSheet.getPhysicalNumberOfRows(); rowIndex++) {
    			currentRow = dataTypeSheet.getRow(rowIndex);
    			try {
    				cell_data_fine_validita = currentRow.getCell(29).getDateCellValue(); // Cella AD
    				if (cell_data_fine_validita != null)
    					data_fine_validita.add(cell_data_fine_validita.toString());
    			} catch (NotImplementedException e) {
    				e.printStackTrace();
    			}
    
    		}
    
    		System.out.println(data_fine_validita.toString());
    	}
    
    
  • Re: Restituzione data (formula) excel in java

    imparareJava ha scritto:


    Ci sono riuscito
    Non ho ancora capito se stai andando "a caso" con la Apache POI. Comunque il javadoc è qui: https://poi.apache.org/apidocs/4.1
    Leggilo.
  • Re: Restituzione data (formula) excel in java

    Il fatto che ho problema di logica, perciò mi sto esercitando tanto per capite il tutto
  • Re: Restituzione data (formula) excel in java

    imparareJava ha scritto:


    Il fatto che ho problema di logica, perciò mi sto esercitando tanto per capite il tutto
    "logica" nel senso di come ragionare per realizzare certi programmi e algoritmi?
    Esercitarsi va ovviamente bene ma tieni presente che stai usando una libreria molto particolare, la Apache POI che "banale" non lo è.
    Se ti servissero "esercizi" su cui ragionare, se ne possono fare "mille" altri, anche senza dover usare librerie esterne specifiche o particolarmente complesse.
Devi accedere o registrarti per scrivere nel forum
5 risposte