Pesquisar na Comunidade
Mostrando resultados para as tags ''phpspreadsheet''.
Encontrado 1 registro
-
Preciso gerar um excel com várias sheets através de php/mysql e estou usando o phpspreadsheet. O objetivo é indicar um ou mais ID, e em cada sheet no excel, colocar a informação desses IDs, exemplo: ID1 = sheet1, ID2 = sheet2, etc... Este é o script que montei. Se mudar a array para variavel e retirar o foreach, consigo gerar o arquivo de excel apenas com um ID e uma sheet. Se mudo para vários IDs com array e foreach gera o arquivo excel mas com uma sheet em branco. O que precisa ser ajustado aqui? <?php include ("conexao_banco.php"); require ("vendor/autoload.php"); use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; $spreadsheet = new Spreadsheet(); $array = array('A0001','A0002'); $date1 = '2023-08-14'; $date2 = '2023-08-15'; foreach($array as $account){ $sheet = $spreadsheet->getActiveSheet(); $sheet->setTitle($account); $sql = $conn->prepare("call procedure (?, ?, ?)"); $sql->bind_param("sss", $conta, $date1, $date2); $sql->execute(); $res = $sql->get_result(); $i = 1; while($row = $res->fetch_assoc()){ $sheet->setCellValue("A$i", $row["IDACCOUNT"]); $sheet->setCellValue("B$i", $row["DATE1"]); $sheet->setCellValue("C$i", $row["DATE2"]); $sheet->setCellValue("D$i", $row["COLUMN1"]); $sheet->setCellValue("E$i", $row["COLUMN2"]); $i++; } $sheet->insertNewRowBefore(1, 1); $sheet->setCellValue("A1", "IDACCOUNT"); $sheet->setCellValue("B1", "DATE1"); $sheet->setCellValue("C1", "DATE2"); $sheet->setCellValue("D1", "COLUMN1"); $sheet->setCellValue("E1", "COLUMN2"); // for bold on header $highestColumn = $sheet->getHighestColumn(); $sheet->getStyle('A1:E1:' . $highestColumn . '1' )->getFont()->setBold(true); } // saving file $filename = "teste.xlsx"; $writer = new Xlsx($spreadsheet); $writer->save($filename); ?>