noam76

extract2.php

May 24th, 2023
745
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.48 KB | None | 0 0
  1. <?php
  2. require '../vendor/autoload.php';
  3.  
  4. use GuzzleHttp\Client;
  5. use PhpOffice\PhpSpreadsheet\IOFactory;
  6. use PhpOffice\PhpSpreadsheet\Spreadsheet;
  7. use PHPHtmlParser\Dom;
  8.  
  9. //$id = 3853;
  10. $client = new Client();
  11. $res = $client->request('GET', 'https://www.duurzaamloket.nl/SolKey_X014/Spec_Collector.php?ID='. $id .'&SchemeNo=0&Offset=1&SearchText=&PageCnt=500');
  12.  
  13. $dom = new DOMDocument();
  14. @$dom->loadHTML($res->getBody());
  15.  
  16. $divs = $dom->getElementsByTagName('div');
  17.  
  18. $spreadsheet = new Spreadsheet();
  19. $sheet = $spreadsheet->getActiveSheet();
  20.  
  21. foreach ($divs as $div) {
  22.     $id = $div->getAttribute('id');
  23.     if ($id == 'tblTestResults_1') {
  24.         $tables = $div->getElementsByTagName('table');
  25.         foreach ($tables as $table) {
  26.             $class = $table->getAttribute('class');
  27.             if ($class == 'LicDetails') {
  28.                 $rows = $table->getElementsByTagName('tr');
  29.                 foreach ($rows as $row) {
  30.                     $cols = $row->getElementsByTagName('td');
  31.                     $rowValues = [];
  32.                     foreach ($cols as $col) {
  33.                         $rowValues[] = trim($col->nodeValue);
  34.                     }
  35.                     if (!empty($rowValues)) {
  36.                         $sheet->fromArray($rowValues, null, 'A' . $sheet->getHighestRow()+1);
  37.                     }
  38.                 }
  39.             }
  40.         }
  41.     }
  42. }
  43.  
  44. $writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
  45. $writer->save('tabledetails.xlsx');
  46. ?>
Advertisement
Add Comment
Please, Sign In to add comment