Sto utilizzando PHPExcel per scrivere un set di immagini in un file Excel utilizzando PHP. L'inserimento delle immagini non sembra essere un problema, tuttavia ho qualche difficoltà nell'impostare l'altezza della riga appropriata per abbinare l'altezza dell'immagine.PHPExcel: imposta l'altezza della riga in pixel
Sono riuscito a utilizzare pixelsToCellDimension per calcolare la larghezza della colonna corretta, ma questo non sembra essere appropriato per il calcolo dell'altezza della riga. Dopo aver controllato il resto delle funzioni nella classe PHPExcel_Shared_Drawing e Googling in giro, sono rimasto interdetto su come farlo.
Il mio codice finora:
// Create new PHPExcel object
$objPHPExcel = new PHPExcel();
// Set document properties
$objPHPExcel->getProperties()->setCreator("creator")
->setLastModifiedBy("modifiedby")
->setTitle("Title")
->setSubject("Subject")
->setDescription("Description")
->setKeywords("keyword1 keyword2")
->setCategory("category");
// Get default font
$defaultFont = $objPHPExcel->getDefaultStyle()->getFont();
[po 'di codice per generare le mie immagini e aggiungere i loro percorsi in un array]
foreach($filePaths as $i => $filePath) {
$objDrawing = new PHPExcel_Worksheet_Drawing();
$objDrawing->setWorkSheet($objPHPExcel->getActiveSheet());
$objDrawing->setName("name");
$objDrawing->setDescription("Description");
$objDrawing->setPath($filePath);
$size = getimagesize($filePath);
$columnWidth = PHPExcel_Shared_Drawing::pixelsToCellDimension($size[0], $defaultFont);
$rowHeight = PHPExcel_Shared_Drawing::pixelsToCellDimension($size[1], $defaultFont);
$objDrawing->setCoordinates('A' . ($i+1));
$objDrawing->setOffsetX(0);
$objDrawing->setOffsetY(0);
// set row/column (cell) sizes to match image size
$objPHPExcel->getActiveSheet()
->getColumnDimension('A')
->setWidth($columnWidth);
$objPHPExcel->getActiveSheet()
->getRowDimension($i+1)
->setRowHeight($rowHeight);
}
// Rename worksheet
$objPHPExcel->getActiveSheet()->setTitle('Worksheet 1');
// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$objPHPExcel->setActiveSheetIndex(0);
// Redirect output to a client’s web browser (Excel5)
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="myMCS Scancode Export.xls"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
exit;
che soluzione terribilmente hacky – DevDonkey
hehe sì! Ma non ho trovato alcuna altra soluzione, e funziona: p – squaleXxi