2012-12-27 7 views
7

Come ottenere il valore di una cella specifica da un file .xlsm utilizzando java .. ?? Voglio recuperare il valore della cella specificando la riga e la colonna particolari, ad esempio ho bisogno del valore della cella alla riga 1 e della colonna C1 o della riga5 e della colonna C6 ... Sto ottenendo i valori specificando il numero di riga e colonna come questoCome ottenere il valore di una cella in una posizione specificata in un foglio Excel utilizzando JAVA

XSSFRow row = sheet.getRow(4); // 4 è il numero di riga

cell = row.getCell(4); // 4 è il numero di colonna

Ma questo funziona solo se il foglio ha colonna partendo da A, B, C, D ... così via ... quando provo con lo stesso codice per il feto di un altro foglio ma non funziona ... In questo foglio, la colonna inizia da C, D, E ... così via

Qualcuno può darmi una mano per sapere cosa posso usare therr per ottenere il risultato specificato?

+0

Se ho capito bene, il foglio ha le sue due prime colonne (A e B) nascosto. Sono lì, ma solo nascosti. A è ancora all'indice 0, B all'indice 1, C all'indice 2, ecc. –

risposta

0

se il foglio contiene un nome, è possibile ottenere il nome del foglio e utilizzare l'iteratore.

Iterator iterator = workSheet.rowIterator(); 
    while(iterator.next){ 
     Row row = (Row) iterator.next(); 
     //u can iterate and use row.getCell(i) 
    } 
10

Probabilmente si desidera utilizzare la classe di utilità CellReference per facilitare l'operazione.

È quindi possibile fare qualcosa di simile:

Sheet sheet = workbook.getSheet("MyInterestingSheet"); 

CellReference ref = new CellReference("B12"); 
Row r = sheet.getRow(ref.getRow()); 
if (r != null) { 
    Cell c = r.getCell(ref.getCol()); 
} 

che vi permetterà di trovare il cellulare a un punto di riferimento determinato in stile Excel

+0

Grande, lieto! Contrassegna la risposta come accettata quando hai un minuto (fai clic sul segno di spunta accanto alla domanda), in modo che altri in futuro sappiano che funziona – Gagravarr

+0

@Gagravarr Che ne dici di leggere un valore che si estende su più colonne come B3: G3? – EMM

+0

@EMM Come in una cella unita? Se è così, basta leggere la cella in alto a sinistra per ottenere il valore in uscita – Gagravarr