java - ¿Cómo acelerar las columnas de tamaño automático en apache POI?
performance excel (1)
Uso el siguiente código para cambiar el tamaño de las columnas en mi hoja de cálculo:
for (int i = 0; i < columns.size(); i++) {
sheet.autoSizeColumn(i, true);
sheet.setColumnWidth(i, sheet.getColumnWidth(i) + 600);
}
El problema es que se necesitan más de 10 minutos para cambiar el tamaño de cada columna en el caso de hojas de cálculo grandes con más de 3000 filas. Aunque va muy rápido para documentos pequeños. ¿Hay algo que pueda ayudar al autoajuste para trabajar más rápido?
Solución que funcionó para mí:
Era posible evitar las regiones fusionadas, por lo que podía recorrer las otras celdas y finalmente cambiar el tamaño a la celda más grande como esta:
int width = ((int)(maxNumCharacters * 1.14388)) * 256;
sheet.setColumnWidth(i, width);
donde 1.14388 es un ancho máximo de caracteres de la fuente "Serif" y 256 unidades de fuente.
El rendimiento del autoajuste mejoró de 10 minutos a 6 segundos.