2012-07-09 61 views
7

Desarrollo de código PHP que creará un archivo de Excel utilizando PHP Excel.Tamaño de modificación de imagen de PHP

Necesito colocar una imagen en el archivo XLS. El problema que tengo es que la dimensión de la imagen no son la definí en mi código:

$objDrawing = new PHPExcel_Worksheet_Drawing(); 
$objDrawing->setName('Water_Level'); 
$objDrawing->setDescription('Water_Level'); 
$objDrawing->setPath('img/logo-rab.jpg'); 
$objDrawing->setHeight(74); 
$objDrawing->setCoordinates('A1'); 
$objDrawing->setWorksheet($objPHPExcel->getActiveSheet()); 

Esta imagen es mucho mayor que 74 píxeles. Intenté agregar alto y ancho también, pero siempre igual.

¿Puede ayudarme a agregar imágenes en mi XLS, con dimensiones definidas en código PHP?

¡Gracias de antemano!

+0

¿Qué escritor estás usando? El código que crea el dibujo no es diferente, pero marca la diferencia al saber qué código está realmente escribiendo esa información de imagen en el archivo. –

+0

¿Podría estar relacionado con este problema desde el sitio phpexcel? http://phpexcel.codeplex.com/workitem/14815 –

+0

parece que hay alguna relación con el ancho de la celda, porque la imagen cambia de tamaño si la muevo (es decir) de la parte izquierda de XLS a la derecha – user198003

Respuesta

-2

Añadir esto, probablemente esto funcionaría

$ objDrawing-> setOffsetX (110);

5

¿Ha intentado utilizar setWidthAndHeight y establecer ResizeProportional true?

$objDrawing->setWidthAndHeight(148,74); 
$objDrawing->setResizeProportional(true); 
1

mismo problema aquí, para mí, tuve que ajustar el var después de establecer setImageResource como esto

 ... 
     $this->objPHPExcel->getActiveSheet()->SetCellValue($index, $entry); 
     $this->gdImage = imagecreatefromjpeg('/path/img.jpg'); 
     $this->objDrawing->setCoordinates('C1'); 
     ... 
     } 


     function save_excel(){ 
     $this->objDrawing->setRenderingFunction(PHPExcel_Worksheet_MemoryDrawing::RENDERING_JPEG); 
     $this->objDrawing->setMimeType(PHPExcel_Worksheet_MemoryDrawing::MIMETYPE_DEFAULT);  
     $this->objDrawing->setImageResource($this->gdImage); 
     $this->objDrawing->setHeight(100); 
2

Lo he intentado de manera diferente, pero Excel estaba forzando la escala de la imagen automáticamente. De todos modos lo resolví estableciendo primero en falso el "tamaño proporcional" y luego estableciendo un ancho personalizado para la imagen

/* ADD LOGO */ 
$objDrawing = new PHPExcel_Worksheet_Drawing(); 
$objDrawing->setName('Logo'); 
$objDrawing->setDescription('Logo'); 
$objDrawing->setPath('../images/logoexcel.png'); 
$objDrawing->setCoordinates('A1'); 
// set resize to false first 
$objDrawing->setResizeProportional(false); 
// set width later 
$objDrawing->setWidth(45); 
$objDrawing->setWorksheet($objPHPExcel->getActiveSheet()); 
$objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(35); 
/* END LOGO */ 
+0

me funciona –

Cuestiones relacionadas