Прежде всего - «нормальный» экспорт и запись файла Excel с использованием phpspreadsheet работает как чудо. То, что я не могу выяснить, это как это сделать динамически c. «Dynami c» означает не определять заголовки вручную в row1
и не определять вручную столбцы данных из mysql.
Что я сделал (попробовал):
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setTitle('test');
if ($result = $mysqli -> query($sql)) {
$co = 'A';
$ro = '1';
while ($fieldinfo = $result -> fetch_field()) {
// printf("$col.$row %s\n", $fieldinfo -> name);
$sheet->setCellValue($co.$ro, $fieldinfo -> name);
$$co = $fieldinfo -> name;
$co++;
}
$result -> free_result();
}
Это создает файл Excel со всеми именами полей, как определено в представлении mysql. Задача состоит в том, чтобы поместить дату в столбец за столбцом, не создавая их по коду. Что я сделал, так это сгенерировал переменную для каждого столбца. Итак, $A = firstname
, $B = name
, и т. Д. c.
Моя идея состояла в том, чтобы обратиться к этой переменной с помощью чего-то вроде "первый столбец - это" А ", тогда я должен обратиться к переменной $A
. Но динамический вызов переменных как-то не работает
$sheet->setCellValue($co.$ro, $row[$cuco]);
$cuco
(текущий столбец) должен быть $cuco = '$'.$A
, но тогда значение $cuco
будет $A
, а разрешенная переменная $A
который должен быть "имя", то есть