Я пытаюсь выровнять изображение с помощью PHPExcel, но я не могу, потому что изображение наложено над листом.
// Create new picture object $objDrawing = new PHPExcel_Worksheet_Drawing(); $objDrawing->setPath('my_img.jpg'); // Insert picture $objDrawing->setCoordinates('A1'); $objDrawing->setWorksheet($objPHPExcel->getActiveSheet()); // Style cell $objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
Текстовое выравнивание A1 изменяется вправо, но изображение все равно выравнивается слева.
Вот идея:
Вы должны определить максимальную ширину / высоту (путем экспериментирования). Сохраните значения.
// Logo $maxWidth = 700; $maxHeight = 40;
Вот остальная часть кода:
$objDrawing = new PHPExcel_Worksheet_Drawing(); $objDrawing->setWorksheet($objPHPExcel->getActiveSheet()); $objDrawing->setName("Logo"); $objDrawing->setDescription("Company Logo"); $objDrawing->setPath('logo.png'); $objDrawing->setCoordinates('A1'); $objDrawing->setHeight($maxHeight); // This is the "magic" formula $offsetX =$maxWidth - $objDrawing->getWidth(); $objDrawing->setOffsetX($offsetX);
Надеюсь это поможет.
Задайте высоту строки вручную
$objPHPExcel->getActiveSheet()->getRowDimension($index)->setRowHeight(100);
$index
– номер строки.