1
我需要創建一個只有2個col的excel文檔。第一個將包含150px大的多個圖像,而第二個將包含網絡代碼。出於某種原因,僅添加一個圖像並且該文件看起來已經被破壞。不知道我做錯了......PHPExcel單元格中的多個圖像
<?php
include("../../init.php");
if (is_numeric($_GET[groupe])){
define('PCLZIP_TEMPORARY_DIR', $_CONFIG['upload']['root'].'/cache');
// filename for download
$groupe = mysql_query("SELECT * FROM photographe_groupe WHERE id='$_GET[groupe]'");
$records = "Groupe - $groupe[nom].xlsx";
header('Content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition:inline;filename='.$records);
$workbook = new PHPExcel;
$sheet = $workbook->getActiveSheet();
$i=0;
$select = mysql_query("SELECT * FROM photographe_images WHERE sid='$_GET[groupe]' group by `paire`");
while($photo = mysql_fetch_array($select)){
// Table header
if ($i=="1"){
$sheet->setCellValue("A1",'Photo(s)');
$sheet->setCellValue('B1','Code Web');
$i++;
}
// Set images in col 1
$select1 = mysql_query("SELECT * FROM photographe_images WHERE paire='$photo[paire]'");
while($photo1 = mysql_fetch_array($select1)){
$objDrawing = new PHPExcel_Worksheet_Drawing();
$objDrawing->setName($photo1[img]);
$objDrawing->setDescription($photo1[img]);
$objDrawing->setWorksheet($workbook->getActiveSheet());
$objDrawing->setPath($_CONFIG['upload']['root'].'/userfiles/photos/'.$photo1[img]);
$objDrawing->setWidth(150);
$objDrawing->setCoordinates('A'.$i);
}
// Set web code in col 2
$sheet->setCellValue("B$i",$photo[code_web]);
$i++;
}
}
$workbook->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
$writer = new PHPExcel_Writer_Excel2007($workbook);
PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP);
$writer->save('php://output');
?>
您可以下載和輸出demo here
我看...聽起來很複雜...所以我需要做的是獲取圖像的高度和寬度,然後將大小應用到單元格,以便圖像在裏面然後計算setOffsetX和setOffsetY爲下一個.. 。必須有更好的方法來添加圖片否? ...我不知道如何在我的代碼中實現這樣的策略... –
好吧,您已經通過調用'setWidth(150)來強制圖像寬度;'您可以使用類似於圖像高度的方法 –
高度沒有指定或它會扭曲圖像。但我仍然可能可能會檢索新的高度,並將其應用於單元格中,方法如下... –