Я использую PHPExcel для записи набора изображений в файл Excel с использованием PHP. Вставка изображений не кажется проблемой, однако у меня возникают трудности с установкой соответствующей высоты строки в соответствии с высотой изображения.PHPExcel: установить высоту строки в пикселях
Мне удалось использовать pixelsToCellDimension для вычисления правильной ширины столбца, но это не подходит для расчета высоты строки. После проверки остальных функций класса PHPExcel_Shared_Drawing и Googling, я остался ошарашенным, как это сделать.
Мой код до сих пор:
// 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();
[некоторый код для создания моих изображений и добавить их пути к массиву]
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;
что ужасно хакерское решение – DevDonkey
хе-хе да! Но я не нашел другого решения, и он работает: p – squaleXxi