2011-06-02 7 views
5

añado una imagen a la hoja de trabajo a través de algún código como este:PDI Excel HSSFPicture Imagen y Dimensionamiento

// Create the drawing patriarch. This is the top level container for all shapes. 
Drawing drawing = sheet.createDrawingPatriarch(); 

//add a picture shape 
//ClientAnchor anchor = this.creationHelper.createClientAnchor(); 
ClientAnchor anchor = new HSSFClientAnchor((short)0, (short)0, (short)0, (short)0, (short)0, (short)0, (short)2, (short)5) 

// 0 = Move and size with Cells, 2 = Move but don't size with cells, 3 = Don't move or size with cells. 
anchor.setAnchorType(2) 

HSSFPicture pict = drawing.createPicture(anchor, this.images.get("logo")); 
pict.resize() ; 

Sin embargo poco después se añaden las imágenes, que cambiar el tamaño de las columnas - que parece complicar las cosas. Cambia el tamaño de las imágenes, que no es lo que quiero.

//psuedo code 
public void autoSizeColumns() { 
    def cols = (StartColumn..this.cMax) 
    cols.each { i -> 
     sheet.autoSizeColumn i 
    } 
} 

BrandedWorksheet v; 
v.autoSizeColumns() 

Si no realizo autoSizeColumns() la imagen es del tamaño correcto.

¿Hay alguna manera de tener ambos?

+0

¿Tal vez no califique las columnas primero y luego agregue la imagen al tamaño que desea? – Gagravarr

+0

invierte el orden de agregar la imagen y el ajuste automático no tiene ningún efecto ... – akaphenom

Respuesta

5

Esto es una locura y no tiene mucho sentido, pero asignar la cantidad adecuada de espacio y filas parece ser la clave. Agregué suficientes filas para que la imagen se pueda vincular internamente a las filas, y todo parece estar bien.

Moraleja de la historia: sigue trabajando y lloriqueando, y eventualmente puede funcionar. Te sentirás realmente frustrado, y no habrá mucha ayuda, porque aquellos de nosotros que hemos dimensionado correctamente una imagen no entendemos por qué.

+0

Es correcto. Si dimensiona la columna debajo del tamaño de la imagen, la imagen se alarga. Si tienes suficiente espacio, entonces es perfecto y la imagen no se estira. Asumo un factor de 40 para mis cálculos de ancho de columna. – guerda

Cuestiones relacionadas