TransWar File Browser

Path: C:\

<?php
  ini_set('max_execution_time',259200); 
  ini_set ( 'memory_limit' , '-1' ) ;
  date_default_timezone_set('America/Sao_Paulo');
  $arqxlsx="Croda-Rota.xlsx";
  // Verifica se o arquivo Excel está aberto/bloqueado antes de tentar salvar
  $xlsxDest = 'Excel/'.$arqxlsx;
  if (file_exists($xlsxDest)) {
      $ftest = @fopen($xlsxDest, 'r+');
      if ($ftest === false) {
          echo "<script>alert('ATENÇÃO: O arquivo \"$arqxlsx\" está aberto no Excel!\\nFeche o arquivo no Excel e tente gerar novamente.');</script>";
          exit;
      }
      fclose($ftest);
  }
  $fptemp = fopen('temp.csv', 'w+');
  $cabecalho="TRANS WAR TRANSPORTES LTDA.   -   Relação de CTes/Minutas do Grupo CRODA de  ".Dia105($de)." até  ".Dia105($ate);
  fwrite($fptemp,$cabecalho.PHP_EOL); 
  fwrite($fptemp,'MOTORISTA;PLACA;VEÍCULO;LOT/FRAC/ESPECIAL;CT-E/MINUTA;NF;Total NFs;Tomador;Centro de Custo;Remetente;Destinatário;Status;Última Ocorrência;Emissão;Atualização'.PHP_EOL);
  $lin=2;
  $json = file_get_contents('JSON/CTes.json');
  $dados=json_decode($json, true);
  foreach($dados as $pag => $x){
    foreach($x as $reg => $col){
      $lin++;$linha=$col['nome'].';'.$col['placa'].';'.$col['rodado'].';'.$col['descricao'].';'.$col['numero'].';'.$col['NFeNumeros'].';'.$col['NFeTotal'].';'.$col['tomador'].';'.$col['centroCusto'].';'.$col['remetente'].';'.$col['destinatario'].';'.$col['status'].';'.$col['ocorrencia'].';'.$col['emissao'].';'.$col['atualizacao'].PHP_EOL;
      fwrite($fptemp, $linha);
    }
  }
  fclose($fptemp); 
  require '../vendor/autoload.php';
  use PhpOffice\PhpSpreadsheet\Spreadsheet;
  use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
  $spreadsheet = new Spreadsheet();
  $reader = new \PhpOffice\PhpSpreadsheet\Reader\Csv();
  /* Set CSV parsing options */
  $reader->setDelimiter(';');
  $reader->setEnclosure('"');
  $reader->setSheetIndex(0);
  /* Load a CSV file and save as a XLS */
  $spreadsheet = $reader->load("temp.csv");
  $writer = new Xlsx($spreadsheet);
  $spreadsheet->getActiveSheet()->setTitle('Croda-Rota');
  $spreadsheet->getActiveSheet()->getRowDimension('1')->setRowHeight(30);
  $styleArray = [
      'borders' => [
          'inside' => [
              'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN,
              'color' => ['argb' => '000000'],
          ],
      ],
  ];
  $styleArray2 = [
    'borders' => [
        'vertical' => [
            'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN,
            'color' => ['argb' => '000000'],
        ],
    ],
];
$styleArray3 = [
    'borders' => [
        'outline' => [
            'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN,
            'color' => ['argb' => '000000'],
        ],
    ],
];
$format = '* #,##0.00';
  $format1 = '* #,##0.00';
  $format2 = '* ###';
  $spreadsheet->getActiveSheet()->getStyle('A1:O2')->applyFromArray($styleArray);
  $spreadsheet->getActiveSheet()->getStyle('A3:o'.$lin)->applyFromArray($styleArray2);
  $spreadsheet->getActiveSheet()->getStyle('A3:O'.$lin)->applyFromArray($styleArray3);
  $spreadsheet->getActiveSheet()->getStyle('A1:O2')->getAlignment()->setWrapText(true);
  $spreadsheet->getActiveSheet()->getStyle('a1:O1')->getFont()->setSize(14);
  $spreadsheet->getActiveSheet()->getStyle('a2:O2')->getFont()->setSize(12);
  $spreadsheet->getActiveSheet()->getStyle('a1:O2')->getFont()->setBold(true);
  $spreadsheet->getActiveSheet()->getStyle('F2:F'.$lin)
      ->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_LEFT);
  $spreadsheet->getActiveSheet()->getStyle('a1:O2')
      ->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  $spreadsheet->getActiveSheet()->getStyle('A1:O2')
      ->getAlignment()->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER);
  $spreadsheet->getActiveSheet()->getStyle('L3:L'.$lin)
      ->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  $spreadsheet->getActiveSheet()->getStyle('B3:E'.$lin)
      ->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  $spreadsheet->getActiveSheet()->getStyle('N3:O'.$lin)
      ->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  $spreadsheet->getActiveSheet()->getStyle('A1:O2')
      ->getFont()->getColor()->setARGB(\PhpOffice\PhpSpreadsheet\Style\Color::COLOR_WHITE);
  $spreadsheet->getActiveSheet()->getStyle('G3:G'.$lin)->getNumberFormat()->setFormatCode($format);
  for ($c=3; $c <= $lin; $c++) 
    { if ($c % 2 == 0) { $bg="d8d8d8";} else {$bg="ffffff";}
      $range='A'.$c.':O'.$c;
      $spreadsheet->getActiveSheet()->getStyle($range)->getFill()
          ->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
          ->getStartColor()->setARGB($bg);
    }
  $spreadsheet->getActiveSheet()->getStyle('A1:O2')->getFill()
      ->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
      ->getStartColor()->setARGB('5882FA');
  $spreadsheet->getActiveSheet()->mergeCells('A1:O1');
  $spreadsheet->getActiveSheet()->getColumnDimension('A')->setWidth(40);
  $spreadsheet->getActiveSheet()->getColumnDimension('B')->setWidth(10);
  $spreadsheet->getActiveSheet()->getColumnDimension('C')->setWidth(18);
  $spreadsheet->getActiveSheet()->getColumnDimension('D')->setWidth(23);
  $spreadsheet->getActiveSheet()->getColumnDimension('E')->setWidth(15);
  $spreadsheet->getActiveSheet()->getColumnDimension('F')->setWidth(15);
  $spreadsheet->getActiveSheet()->getColumnDimension('G')->setWidth(12);
  $spreadsheet->getActiveSheet()->getColumnDimension('H')->setWidth(40);
  $spreadsheet->getActiveSheet()->getColumnDimension('I')->setWidth(20);
  $spreadsheet->getActiveSheet()->getColumnDimension('J')->setWidth(40);
  $spreadsheet->getActiveSheet()->getColumnDimension('K')->setWidth(40);
  $spreadsheet->getActiveSheet()->getColumnDimension('L')->setWidth(15);
  $spreadsheet->getActiveSheet()->getColumnDimension('M')->setWidth(40);
  $spreadsheet->getActiveSheet()->getColumnDimension('N')->setWidth(15);
  $spreadsheet->getActiveSheet()->getColumnDimension('O')->setWidth(25);

  $writer->save('Excel/'.$arqxlsx);
  $spreadsheet->disconnectWorksheets();
  unset($spreadsheet);
  unlink('temp.csv'); 
?>