Pregunta

Estoy usando un libro de trabajo HSSF como plantilla para otro. Debido a cómo funciona, como probablemente sepa si estás leyendo esto, no puedo simplemente tomar una celda del libro 1 y establecer su estilo en el estilo de celda desde el libro 2. La forma en que se supone que se hace es clonestyle del segundo estilo.

Sin embargo, hay un máximo de 4000 estilos en una hoja de trabajo, por lo que estoy tratando de evitar clonar un número ilimitado de estilos. Entonces, estoy verificando si el estilo que estoy a punto de clon es igual a cualquier estilo que ya exista en mi libro de trabajo. Si es así, solo uso el estilo que ya existe. Si no es así, clono el estilo del libro de trabajo de la plantilla.

Estoy usando el método Equals definido a continuación, que no parece importarle de qué libro de trabajo proviene el estilo.

http://www.java2s.com/open-source/java-document/collaboration/poi-3.6/org/apache/poi/hssf/usermodel/hssfcellstyle.java.htm#equalsObject

Sin embargo, cuando al final de todo esto verifico:

        if ( !getCellStyle().equals(cell.getCellStyle()) ) {
            System.out.println("Not equal to cloned style!");
        } else {
            System.out.println("Equal to cloned style.");
        }

... La salida indica que los estilos no son iguales.

¿Por qué es esto?

Nota: Verificado que ambos objetos son tipo HSSFCellStyle usando InstanceOf.

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top