Как в PHPExcel скопировать ячейки? Доброго времени суток! Требуется помощь. Есть табличка подобной структуры.
(розовым указал строки в этой табличке).
Мне нужно подытожить весь вывод. Ячейка В45 считается по формуле СУММ(В35;В25;В15;В5), С45 по формуле СУММ(С35;С25;С15;В5), В46 - СУММ(В36;В26;В16;В6).
Когда в Excel мы в ячейку вбили формулу, то можем растянуть ее на всю строку - при этом значение столбца подставится автоматически; получившуюся строку растянули на несколько других - также все отрабатывает без ошибок и подстановки Строка/Столбец отрабатывают на ура.
Не хочется в циклах прокидывать формулу вычисления значение итоговых ячеек. Не пойму, как вбив в ячейку В45 формулу, потом скопировать ее значение на диапазон ячеек B45:I45.
Как скопировать ячейку (диапазон ячеек), чтобы при вставке срабатывали формулы по новым координатам?

21 Авг 2019 в 07:08
173 +1
0
Ответы
1

В PHPExcel вы можете скопировать содержимое ячейки с формулой на другие ячейки с помощью метода setSharedFormula(). Ниже приведен пример кода, который показывает, как это можно сделать:

$objPHPExcel = new PHPExcel();
// Добавляем данные в ячейки
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('B45', '=SUM(B35,B25,B15,B5)');
// Копируем формулу на диапазон ячеек B45:I45
$objPHPExcel->getActiveSheet()->duplicateStyle($objPHPExcel->getActiveSheet()->getStyle('B45'), 'B45:I45');
$objPHPExcel->getActiveSheet()->setSharedFormula('B45', array(
'B45', 'C45', 'D45', 'E45', 'F45', 'G45', 'H45', 'I45'
), PHPExcel_Cell_DataType::TYPE_FORMULA);
// Генерируем Excel файл
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('output.xlsx');

Этот код создаст ячейку B45 с формулой SUM(B35,B25,B15,B5) и скопирует ее на диапазон ячеек B45:I45. При вставке значений в эти ячейки, формула будет автоматически рассчитывать значения по новым координатам.

20 Апр в 13:06
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 83 887 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир