Files
oleibman 567b9601b0 Allow Csv Reader to Store Null String in Spreadsheet (#2842)
Fix #2840 (and also #2839 but that's Q&A, not an issue). Csv Reader does not populate cells which contain null string. This PR provides an option for the reader to store null strings as it does with any other string.
2022-05-21 07:21:14 -07:00

46 lines
1.2 KiB
PHP

<?php
namespace PhpOffice\PhpSpreadsheetTests\Reader\Csv;
use PhpOffice\PhpSpreadsheet\Reader\Csv;
use PHPUnit\Framework\TestCase;
class CsvIssue2840Test extends TestCase
{
public function testNullStringIgnore(): void
{
$reader = new Csv();
self::assertFalse($reader->getPreserveNullString());
$inputData = <<<EOF
john,,doe,,
mary,,jane,,
EOF;
$expected = [
['john', null, 'doe'],
['mary', null, 'jane'],
];
$spreadsheet = $reader->loadSpreadsheetFromString($inputData);
$sheet = $spreadsheet->getActiveSheet();
self::assertSame($expected, $sheet->toArray());
$spreadsheet->disconnectWorksheets();
}
public function testNullStringLoad(): void
{
$reader = new Csv();
$reader->setPreserveNullString(true);
$inputData = <<<EOF
john,,doe,,
mary,,jane,,
EOF;
$expected = [
['john', '', 'doe', '', ''],
['mary', '', 'jane', '', ''],
];
$spreadsheet = $reader->loadSpreadsheetFromString($inputData);
$sheet = $spreadsheet->getActiveSheet();
self::assertSame($expected, $sheet->toArray());
$spreadsheet->disconnectWorksheets();
}
}