mirror of
https://github.com/PHPOffice/PhpSpreadsheet.git
synced 2026-09-02 13:41:21 +00:00
567b9601b0
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.
46 lines
1.2 KiB
PHP
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();
|
|
}
|
|
}
|