@Aricus

Почему не устанавливаются границы в PhpExcel?

Я использую PhpExcel, а не PhpSpreadsheet, потому что в последней у меня так и не получилось устанавливать изображения.
Мне нужно установить границы ячеек. Перепробовал разные варианты. Вот тут красный цвет текста устанавливается, а границы - нет:
$objReader = new PHPExcel_Reader_Excel2007();
$objPHPExcel = $objReader->load('..\..\control-files\templates\storeconfirm.xlsx');
$objPHPExcel->setActiveSheetIndex(0);
$sheet = $objPHPExcel->getActiveSheet();


			$styleArray = array(
				'font'  => array(
					'bold'  => true,
					'color' => array('rgb' => 'FF0000'),
				),
				'borders' => array(
					'bottom' => array(
						'borderStyle' => PHPExcel_Style_Border::BORDER_THIN,
						'color' => array('rgb' => '000000')
					 ),
					'top' => array(
						'borderStyle' => PHPExcel_Style_Border::BORDER_THIN,
						'color' => array('rgb' => '000000')
					)
				)
			);
			$sheet->getStyle('A'.$coord)->applyFromArray($styleArray);

Вариант напрямую из документации, тоже не работает:
$objPHPExcel->getActiveSheet()->getStyle('B2')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_RED);
$objPHPExcel->getActiveSheet()->getStyle('B2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
$objPHPExcel->getActiveSheet()->getStyle('B2')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THICK);

При этом никаких ошибок не выдаётся.
  • Вопрос задан
  • 696 просмотров
Решения вопроса 1
@Aricus Автор вопроса
Если кому интересно, сработал очередной вариант:
$borderStyle = array(
		'borders' => array(
			'allborders' => array(
				'style' => PHPExcel_Style_Border::BORDER_THIN
			)
		)
	);
	$sheet->getStyle('A'.$coord.':J'.$coord)->applyFromArray($borderStyle);

Этот код рисует все границы внутри интервала. Отдельно рисуются как-то по другому, но для моих целей это не нужно, если пользоваться объединением ячеек:
$sheet->mergeCells('D'.$coord.':J'.$coord);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы