Я использую библиотеку phpspreadsheet для создания файла xls с php, внутри которого есть переменные и изображения. Пока все хорошо, если varibialis являются «фиксированными». Но теперь я хотел бы загрузить все переменные из БД Mysql и циклически вставить их в файл, все сразу и, наконец, загрузить файл. Я прилагаю письменный код. скриншот ошибки Excel
РЕДАКТИРОВАТЬ:
это код. кажется, работает, но с Office 365 я не могу открыть сгенерированный файл, я получаю следующую ошибку. в то время как со старыми версиями Excel я могу открыть файл без проблем.
$query = $db->query("SELECT * FROM $targa ORDER BY id DESC");
if($query->num_rows > 0) {
$i = 2;
while($row = $query->fetch_assoc())
{
$data = date("d", strtotime($row['data']));
$activeSheet->setCellValue('A'.$cella_giorno , $data );
$activeSheet->setCellValue('L'.$cella_giorno , $row['dipendente']);
$activeSheet->setCellValue('C'.$cella_giorno, $row['uscita']);
$activeSheet->setCellValue('E'.$cella_giorno, $row['rientro']);
$activeSheet->setCellValue('H'.$cella_giorno, $row['tragitto']);
$activeSheet->setCellValue('C'.($cella_giorno+1), $row['km_partenza']);
$activeSheet->setCellValue('E'.($cella_giorno+1), $row['km_rientro']);
$cella_giorno=$cella_giorno+2;
$cella_oggi++;
$i++;
}
}
$activeSheet->setCellValue('M2', $auto);
$activeSheet->setCellValue('M3', $targa);
$activeSheet->setCellValue('H5', $garage);
$activeSheet->setCellValue('M4', $multicard);
$activeSheet->setCellValue('M5', $alimentazione);
$activeSheet->setCellValue('J5', $mese_data.' '.$anno_data);
$drawing = new \PhpOffice\PhpSpreadsheet\Worksheet\Drawing();
$drawing->setPath('logo.png'); // put your path and image here
$drawing->setCoordinates('A2');
$drawing->setHeight(50);
$drawing->setOffsetY(50);
$drawing->setOffsetX(05);
$drawing->setWorksheet($spreadsheet->getActiveSheet());
// OUTPUT
$writer = new Xlsx($spreadsheet);
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="'.$auto.'_'.$mese_data.$anno.'.xlsx"');
header('Cache-Control: max-age=0');
//header('Expires: Fri, 11 Nov 2011 11:11:11 GMT');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: cache, must-revalidate');
header('Pragma: public');
$writer->save('php://output');