2012-07-09 36 views
7

PHPのExcelを使用してExcelファイルを作成するPHPコードを開発する。PHP Excel画像のサイズを変更

イメージをXLSファイルに配置する必要があります。問題は画像の次元がコードで定義した次元ではないということです。

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

この画像は74ピクセルをはるかに超えています。高さと幅を追加しようとしましたが、常に同じです。

PHPコードで定義した寸法で、XLSでイメージを追加する方法を教えてください。

ありがとうございます!

+0

どちらの作家を使っていますか?図面を作成するコードは何も違うわけではありませんが、どのコードが実際にその画像情報をファイルに書き込んでいるのかが分かります。 –

+0

phpexcelサイトからこの問題に関連していますか? http://phpexcel.codeplex.com/workitem/14815 –

+0

XLSの左部分から右に移動すると画像のサイズが変わるため、セルの幅と関係があるようです – user198003

答えて

-2

これを追加し、おそらくこれが働くだろう

$ objDrawing-> setOffsetX(110);

5

setWidthAndHeightを使用して、ResizeProportionalをtrueに設定しましたか?ここ

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

同じ問題は、私のために、私は別の方法でそれを試してみたが、Excelが自動的に画像スケールを強制されたこの

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

ようsetImageResourceを設定した後、VARを設定する必要がありました。とにかく、「サイズ比例」を最初に偽に設定し、画像のカスタム幅を設定することで解決しました。

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

それは私のために働く –

関連する問題