16_Csv.php 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?php
  2. use PhpOffice\PhpSpreadsheet\Reader\Csv as CsvReader;
  3. use PhpOffice\PhpSpreadsheet\Writer\Csv as CsvWriter;
  4. require __DIR__ . '/../Header.php';
  5. $spreadsheet = require __DIR__ . '/../templates/sampleSpreadsheet.php';
  6. $helper->log('Write to CSV format');
  7. /** @var \PhpOffice\PhpSpreadsheet\Writer\Csv $writer */
  8. $writer = new CsvWriter($spreadsheet);
  9. $writer->setDelimiter(',')
  10. ->setEnclosure('"')
  11. ->setSheetIndex(0);
  12. $callStartTime = microtime(true);
  13. $filename = $helper->getTemporaryFilename('csv');
  14. $writer->save($filename);
  15. $helper->logWrite($writer, $filename, $callStartTime);
  16. $helper->log('Read from CSV format');
  17. /** @var \PhpOffice\PhpSpreadsheet\Reader\Csv $reader */
  18. $reader = new CsvReader();
  19. $reader->setDelimiter(',')
  20. ->setEnclosure('"')
  21. ->setSheetIndex(0);
  22. $callStartTime = microtime(true);
  23. $spreadsheetFromCSV = $reader->load($filename);
  24. $helper->logRead('Csv', $filename, $callStartTime);
  25. unlink($filename);
  26. // Write Xlsx
  27. $helper->write($spreadsheetFromCSV, __FILE__, ['Xlsx']);
  28. // Write CSV
  29. $filenameCSV = $helper->getFilename(__FILE__, 'csv');
  30. /** @var \PhpOffice\PhpSpreadsheet\Writer\Csv $writerCSV */
  31. $writerCSV = new CsvWriter($spreadsheetFromCSV);
  32. //$writerCSV->setExcelCompatibility(true);
  33. $writerCSV->setUseBom(true); // because of non-ASCII chars
  34. $callStartTime = microtime(true);
  35. $writerCSV->save($filenameCSV);
  36. $helper->logWrite($writerCSV, $filenameCSV, $callStartTime);