2013-01-24 15 views
7

E 'possibile autoSizeColumns su un SXSSFWorkbook in streaming? Ho implementato una funzionalità di esportazione per esportare un elenco di oggetti da eccellere. All'inizio ho usato XSSFWorkbook (non in streaming) e dopo che tutte le celle sono state create, ho automatizzato tutte le colonne, ottenendo un bel file excel.AutosizeColumns su SXSSFWorkbook

Per problemi di prestazioni, volevamo modificare la cartella di lavoro nella versione di streaming, ma questo ha comportato un NullPointer su org.apache.poi.ss.util.SheetUtil.getCellWidth.

È possibile chiamare autoSizeColumns per un SXSSFWorkbook?

Im usando poi-ooxml 3.9, ma ho lo stesso problema in 3.8.

risposta

8

È necessario assicurarsi che ogni cella abbia un valore.

Usiamo il seguente codice per impostare un valore di stringa a una cella:

Cell c = row.createCell(i); 
c.setCellValue(text == null ? "" : text); 
+0

Questa era la soluzione, grazie mille! – sterym

+2

Ho usato lo streaming API di poi 3.14, ma ho riscontrato "Impossibile modificare la dimensione della colonna. Assicurati che la colonna sia stata tracciata prima di ridimensionare automaticamente la colonna. " quando ho chiamato autoSizeColumn. L'hai mai incontrato? –

+8

Ho avuto anche questo errore, liam xu. Chiama trackAllColumnsForAutoSizing() sull'oggetto SXSSFSheet prima di chiamare autoSizeColumn (columnIndex) e verrà risolto. – superbAfterSemperPhi

Problemi correlati