61 lines
2.3 KiB
PHP
61 lines
2.3 KiB
PHP
<?php
|
|
|
|
namespace PhpOffice\PhpSpreadsheetTests\Functional;
|
|
|
|
use PhpOffice\PhpSpreadsheet\Reader\Csv as CsvReader;
|
|
use PhpOffice\PhpSpreadsheet\Shared\File;
|
|
use PhpOffice\PhpSpreadsheet\Spreadsheet;
|
|
use PhpOffice\PhpSpreadsheet\Writer\Csv as CsvWriter;
|
|
use PhpOffice\PhpSpreadsheet\Writer\Exception as WriterException;
|
|
use PhpOffice\PhpSpreadsheetTests\Functional;
|
|
|
|
class CsvWriteTest extends Functional\AbstractFunctional
|
|
{
|
|
public function testNotFirstSheet(): void
|
|
{
|
|
$spreadsheet = new Spreadsheet();
|
|
$sheet = $spreadsheet->getActiveSheet();
|
|
$sheet->setCellValue('A1', 'First Sheet');
|
|
$sheet = $spreadsheet->createSheet();
|
|
$sheet->setCellValue('A1', 'Second Sheet');
|
|
$sheet = $spreadsheet->createSheet();
|
|
$sheet->setCellValue('A1', 'Third Sheet');
|
|
$writer = new CsvWriter($spreadsheet);
|
|
$writer->setSheetIndex(1);
|
|
self::assertEquals(1, $writer->getSheetIndex());
|
|
$filename = tempnam(File::sysGetTempDir(), 'phpspreadsheet-test');
|
|
$writer->save($filename);
|
|
$reader = new CsvReader();
|
|
$newspreadsheet = $reader->load($filename);
|
|
unlink($filename);
|
|
$sheet = $newspreadsheet->getActiveSheet();
|
|
self::assertEquals('Second Sheet', $sheet->getCell('A1')->getValue());
|
|
self::assertEquals(0, $newspreadsheet->getActiveSheetIndex());
|
|
}
|
|
|
|
public function testWriteEmptyFileName(): void
|
|
{
|
|
$this->expectException(WriterException::class);
|
|
$spreadsheet = new Spreadsheet();
|
|
$writer = new CsvWriter($spreadsheet);
|
|
$filename = '';
|
|
$writer->save($filename);
|
|
}
|
|
|
|
public function testDefaultSettings(): void
|
|
{
|
|
$spreadsheet = new Spreadsheet();
|
|
$writer = new CsvWriter($spreadsheet);
|
|
self::assertEquals('"', $writer->getEnclosure());
|
|
$writer->setEnclosure('\'');
|
|
self::assertEquals('\'', $writer->getEnclosure());
|
|
$writer->setEnclosure('');
|
|
self::assertEquals('"', $writer->getEnclosure());
|
|
self::assertEquals(PHP_EOL, $writer->getLineEnding());
|
|
self::assertFalse($writer->getUseBOM());
|
|
self::assertFalse($writer->getIncludeSeparatorLine());
|
|
self::assertFalse($writer->getExcelCompatibility());
|
|
self::assertEquals(0, $writer->getSheetIndex());
|
|
}
|
|
}
|