entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

3votos

Ajustar ancho de celda con Apache POI

Buenas, estoy creando un archivo xls y escribiendo dinamicamente en el.

El problema es el ancho de las celdas.

Estoy manejando la librería de Apache POI - HSSF

y hay un metodo que es autoSizeColumn(int);

pero mi HSSFSheet no lo reconoce, este es el código.

    Statement StReporte     = conexion.createStatement();
    ResultSet rs_marcador = StReporte.executeQuery("call sprep_reportesmensuales('2014-06-01','2014-07-01',6,2)");

    ResultSetMetaData rsmd = rs_marcador.getMetaData();
    int columnsNumber = rsmd.getColumnCount();

    FileOutputStream fileOut = new FileOutputStream("C:/Servidorweb/apache-tomcat-6.0.37/webapps/reportes_mensuales/reporte_prueba.xls");
    HSSFWorkbook workbook = new HSSFWorkbook();
    HSSFSheet worksheet = workbook.createSheet("POI Worksheet");

    int controw = 0;

    while(rs_marcador.next())
    {

        HSSFRow row = worksheet.createRow((short) controw);

        for(int i = 0; i < columnsNumber; i++)
        {
            HSSFCell cellA1 = row.createCell((short) i);
            cellA1.setCellValue(rs_marcador.getString(i+1));
            worksheet.autoSizeColumn(i);
        }

            controw++;    
    }

        workbook.write(fileOut);
        fileOut.flush();
        fileOut.close();

y este es el error : The method autoSizeColumn(int) is undefined for the type HSSFSheet.

Alguna idea?

2 Respuestas

2votos

Antes de workbook.write(fileOut); puse esto for(int j = 0; j < columnsNumber; j++) { worksheet.autoSizeColumn((short)j); }

y con el error de metodo indefinido, actualice la librería y todo bien :)

0voto

Leonardo-Tadei comentado

Gracias por compartir la respuesta Alejandro!

0voto

TomiStyle Puntos140

Hola,
tengo un problemilla y a ver si me podéis ayudar.
Estoy generando un excel que constará de dos columnas.
En la primera fila, que será el título, combino las dos celdas; después voy rellenando las filas con sus dos columnas y tal...
El problema es al ajustar el tamaño, que la fila que uso de título no se ajusta bien.

Lo hago así:

//PRIMERA FILA DE LA HOJA
int numFila = 0;
Row fila = hoja.createRow(numFila);
Cell celda = fila.createCell(0);
celda.setCellValue("TITULO");
//COMBINO LAS CELDAS
hoja.addMergedRegion(new CellRangeAddress(0,0,0,1));
//TAMAÑO DE CELDA
hoja.autoSizeColumn(0,true);   (el true es para usar las merged)

//SEGUNDA FILA
numFila++;
fila = hoja.createRow(numFila);
celda = fila.createCell(0);
celda.setCellValue("COLUMNA 1");
celda = fila.createCell(1);
celda.setCellValue("COLUMNA 2");

Como resultado obtengo la primera columna más ancha que la segunda pero el contenido de las dos columnas de la primera fila no entra en el ancho total.

¿Cómo lo puedo hacer?

0voto

Peter comentado

Por favor abre una pregunta nueva. Esta es otro tema y ya esta solucionada.

Saludos.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta