Я извлекаю данные массива из своей базы данных для определенного идентификатора, и я определил ячейки, в которых эти значения должны быть сохранены для экспорта.
Я звоню из службы через функцию и не могу найти ни одногопример того, как установить конкретные данные в определенных ячейках.
Мой код:
Из моего сервиса ..
public function getExport($account)
{
$all = $this->em->getRepository('AppBundle:App')->findBy([
'account' => $account
]);
$rows = [];
$rows[] = [
"client",
"payer_name",
"payer_info"
];
foreach ($all as $row) {
$client = $row->getAccount();
$payerName = $row->getName();
$payerInfo = $row->getInfo();
if (empty($rows[$client])) {
$rows[] = [
$client,
$payerName,
$payerInfo
];
} else {
$rows[$client][1][] = $payerInfo;
}
};
return $rows;
}
И в контроллере я подготовил логику для экспорта ..
public function downloadInvoice($account) {
$phpExcelObject = $this->get('phpexcel')->createPHPExcelObject($webPath);
$rows= $this->get('app')->getExport($account);
$phpExcelObject->setActiveSheetIndex(0)
->setCellValue('A17', 'Here need to go client')
->setCellValue('E17', 'Here needs to go payer info etc...')
$writer = $this->get('phpexcel')->createWriter($phpExcelObject, 'Excel2007');
$response = $this->get('phpexcel')->createStreamedResponse($writer);
$dispositionHeader = $response->headers->makeDisposition(
ResponseHeaderBag::DISPOSITION_ATTACHMENT,
'the-file.xlsx'
);
$response->headers->set('Content-Type', 'text/vnd.ms-excel; charset=utf-8');
$response->headers->set('Cache-Control', 'maxage=1');
$response->headers->set('Content-Disposition', $dispositionHeader);
return $response;
}