Quell'errore può dipendere da un po' di cose:
1 - Dalla versione della libreria jOpenDocument utilizzata in combinazione con la versione della JVM
2 - Dal file ODS
3 - Dall'effettivo contenuto della cella che stai andando a leggere
Rispondo in ordine inverso (dalla 3 alla 1).
Caso 3:
Senza vedere il codice, vado un po' a tentativi; ad ogni modo, devi assicurarti che getCellAt() restituisca un oggetto non nullo, prima di invocare getValue():
MutableCell cell = sheet.getCellAt( ... );
if (cell != null) {
Object obj = cell.getValue();
}
Dubito sia questo il caso, vista la specificità del messaggio dell'eccezione sollevata, ma non si sa mai. Se la logica è corretta (verifico che la cella "esista", cioè sia una cella con un valore, prima di leggerne il contenuto), allora può essere il caso 2.
Caso 2:
Può essere che il file ODS sia stato generato "male" o che sia stato scritto con una versione "vecchia" del programma/libreria che lo ha generato. In questo caso, possono mancare dei descrittori che la libreria jOpenDocument si aspetta (uno dei descrittori è la versione del formato ODS utilizzato dal file). In questo caso si dovrebbe risolvere aprendo il documento ODS con un programma aggiornato (LibreOffice, ad esempio), fare una modifica minimale (anche una "finta modifica") e poi ri-salvare il documento, meglio se usando la funzione "Salva con nome...", per generare una nuova copia integrale del documento.
Se nemmeno questo funziona, allora potrebbe essere il caso 1.
Caso 1:
A quanto pare, questa eccezione può venire sollevata se si verificano determinate combinazioni di versione JVM / Libreria jOpenDocument, specialmente se si utilizza una versione "non recentissima" della libreria in combinazione con versioni più recenti della JVM (dalla 11 in poi). In questo caso bisognerebbe verificare di utilizzare l'ultima versione di jOpenDocument (sul Maven l'ultima versione disponibile è la 1.3, ma sul sito della libreria ci sono anche la 1.4 e la 1.5 da scaricare).