CsvWriteTest.php 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. namespace PhpOffice\PhpSpreadsheetTests\Writer\Csv;
  3. use PhpOffice\PhpSpreadsheet\Reader\Csv as CsvReader;
  4. use PhpOffice\PhpSpreadsheet\Shared\File;
  5. use PhpOffice\PhpSpreadsheet\Spreadsheet;
  6. use PhpOffice\PhpSpreadsheet\Writer\Csv as CsvWriter;
  7. use PhpOffice\PhpSpreadsheet\Writer\Exception as WriterException;
  8. use PhpOffice\PhpSpreadsheetTests\Functional;
  9. class CsvWriteTest extends Functional\AbstractFunctional
  10. {
  11. public function testNotFirstSheet(): void
  12. {
  13. $spreadsheet = new Spreadsheet();
  14. $sheet = $spreadsheet->getActiveSheet();
  15. $sheet->setCellValue('A1', 'First Sheet');
  16. $sheet = $spreadsheet->createSheet();
  17. $sheet->setCellValue('A1', 'Second Sheet');
  18. $sheet = $spreadsheet->createSheet();
  19. $sheet->setCellValue('A1', 'Third Sheet');
  20. $writer = new CsvWriter($spreadsheet);
  21. $writer->setSheetIndex(1);
  22. self::assertEquals(1, $writer->getSheetIndex());
  23. $filename = File::temporaryFilename();
  24. $writer->save($filename);
  25. $reader = new CsvReader();
  26. $newspreadsheet = $reader->load($filename);
  27. unlink($filename);
  28. $sheet = $newspreadsheet->getActiveSheet();
  29. self::assertEquals('Second Sheet', $sheet->getCell('A1')->getValue());
  30. self::assertEquals(0, $newspreadsheet->getActiveSheetIndex());
  31. }
  32. public function testWriteEmptyFileName(): void
  33. {
  34. $this->expectException(WriterException::class);
  35. $spreadsheet = new Spreadsheet();
  36. $writer = new CsvWriter($spreadsheet);
  37. $filename = '';
  38. $writer->save($filename);
  39. }
  40. public function testDefaultSettings(): void
  41. {
  42. $spreadsheet = new Spreadsheet();
  43. $writer = new CsvWriter($spreadsheet);
  44. self::assertEquals('"', $writer->getEnclosure());
  45. $writer->setEnclosure('\'');
  46. self::assertEquals('\'', $writer->getEnclosure());
  47. $writer->setEnclosure('');
  48. self::assertEquals('', $writer->getEnclosure());
  49. $writer->setEnclosure();
  50. self::assertEquals('"', $writer->getEnclosure());
  51. self::assertEquals(PHP_EOL, $writer->getLineEnding());
  52. self::assertFalse($writer->getUseBOM());
  53. self::assertFalse($writer->getIncludeSeparatorLine());
  54. self::assertFalse($writer->getExcelCompatibility());
  55. self::assertEquals(0, $writer->getSheetIndex());
  56. }
  57. }