2012-07-09 13 views
7

Sviluppo di codice PHP che creerà il file Excel utilizzando PHP Excel.Dimensione di modifica immagine Excel di PHP

Ho bisogno di inserire un'immagine nel file XLS. Problema che ho è che la dimensione dell'immagine non è quella che ho definito nel mio codice:

$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()); 

Questa immagine è molto più alto di 74 pixel. Ho cercato di aggiungere anche altezza e larghezza, ma sempre lo stesso.

Potete aiutarmi come aggiungere un'immagine nel mio XLS, con le dimensioni che ho definito nel codice PHP?

Grazie in anticipo!

+0

Quale scrittore stai usando? Il codice che crea il disegno non è diverso, ma fa la differenza sapendo quale codice sta effettivamente scrivendo le informazioni sull'immagine sul file. –

+0

Potrebbe essere correlato a questo problema dal sito phpexcel? http://phpexcel.codeplex.com/workitem/14815 –

+0

sembra che ci sia qualche relazione con la larghezza della cella, perché l'immagine cambia dimensione se la sposto (cioè.) dalla parte sinistra di XLS a destra – user198003

risposta

-2

Aggiungere questo, probabilmente, questo dovrebbe funzionare

$ objDrawing-> setOffsetX (110);

5

Hai provato a utilizzare setWidthAndHeight e impostare ResizeProportional true?

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

Stesso problema qui, per me, ho dovuto impostare la var dopo aver impostato setImageResource come questo

 ... 
     $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

ho provato in modo diverso, ma Excel stavo forzando automaticamente la scala dell'immagine. Comunque l'ho risolto impostando prima su false il "ridimensionamento proporzionale" e quindi impostando una larghezza personalizzata per l'immagine

/* 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

funziona per me –