phpspreadsheet, созданный файл для mysql db - PullRequest
0 голосов
/ 20 октября 2019

Я использую библиотеку 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');
...