Я на самом деле создаю CSV-файл содержимого моей базы данных (базовый c запрос выбора), используя fputcsv
. Он работает отлично. Я хотел бы сейчас создать не CSV, а XSLX с Phpspreadsheet
. Я могу вставлять значения ячейка за ячейкой, но она не оптимизирована. В do c я не нахожу, как напрямую вставить массив, который будет интерпретирован как полная строка. Как это сделать ? Это код, который я использую:
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'My column 1');
$sheet->setCellValue('B1', 'My column 2');
$sheet->setCellValue('C1', 'My column 3');
$sheet->setCellValue('D1', 'My column 4');
$sheet->setCellValue('E1', 'My column 5');
$writer = new Xlsx($spreadsheet);
if (mysqli_num_rows($resultSQL)){
$filename = 'MyFile.csv';
$output_file = fopen($filename, 'w');
fputcsv($output_file,array('My column 1','My column 2','My column 3','My column 4','My column 5')); // The old way I create my CSV
while($line = $resultSQL->fetch_assoc()) {
fputcsv($output_file, $line); // The old way to put all values of row in my CSV
// How to do the same with PhpSpreadSheet ?
}
$writer->save('MyFile.xlsx');