getActiveSheet(); $sheet->fromArray([ [6, '=TEXT(A1,"yyyy-mm-dd hh:mm")', null, 0.572917], ['="6"', '=TEXT(A2,"yyyy-mm-dd hh:mm")', null, '1<>2'], ['xyz', '=TEXT(A3,"yyyy-mm-dd hh:mm")'], ], strictNullComparison: true); /** @var mixed[][] */ $temp = $sheet->toArray(null, true, true, true); $textGrid = new TextGrid( $temp, $cli, rowDividers: $rowDividers, rowHeaders: $rowHeaders, columnHeaders: $columnHeaders ); $result = $textGrid->render(); // Note that, for cli, string will end with PHP_EOL, // so explode will add an extra null-string element // to its array output. $lines = explode(PHP_EOL, $result); self::assertSame($expected, $lines); $spreadsheet->disconnectWorksheets(); } public static function providerTextGrid(): array { return [ 'cli default values' => [ true, false, true, true, [ ' +-----+------------------+---+----------+', ' | A | B | C | D |', '+---+-----+------------------+---+----------+', '| 1 | 6 | 1900-01-06 00:00 | | 0.572917 |', '| 2 | 6 | 1900-01-06 00:00 | | 1<>2 |', '| 3 | xyz | xyz | | |', '+---+-----+------------------+---+----------+', '', ], ], 'html default values' => [ false, false, true, true, [ '
',
' +-----+------------------+---+----------+',
' | A | B | C | D |',
'+---+-----+------------------+---+----------+',
'| 1 | 6 | 1900-01-06 00:00 | | 0.572917 |',
'| 2 | 6 | 1900-01-06 00:00 | | 1<>2 |',
'| 3 | xyz | xyz | | |',
'+---+-----+------------------+---+----------+',
'',
],
],
'cli rowDividers' => [
true, true, true, true,
[
' +-----+------------------+---+----------+',
' | A | B | C | D |',
'+---+-----+------------------+---+----------+',
'| 1 | 6 | 1900-01-06 00:00 | | 0.572917 |',
'+---+-----+------------------+---+----------+',
'| 2 | 6 | 1900-01-06 00:00 | | 1<>2 |',
'+---+-----+------------------+---+----------+',
'| 3 | xyz | xyz | | |',
'+---+-----+------------------+---+----------+',
'',
],
],
'cli no columnHeaders' => [
true, false, true, false,
[
'+---+-----+------------------+--+----------+',
'| 1 | 6 | 1900-01-06 00:00 | | 0.572917 |',
'| 2 | 6 | 1900-01-06 00:00 | | 1<>2 |',
'| 3 | xyz | xyz | | |',
'+---+-----+------------------+--+----------+',
'',
],
],
'cli no row headers' => [
true, false, false, true,
[
'+-----+------------------+---+----------+',
'| A | B | C | D |',
'+-----+------------------+---+----------+',
'| 6 | 1900-01-06 00:00 | | 0.572917 |',
'| 6 | 1900-01-06 00:00 | | 1<>2 |',
'| xyz | xyz | | |',
'+-----+------------------+---+----------+',
'',
],
],
'cli row dividers, no row nor column headers' => [
true, true, false, false,
[
'+-----+------------------+--+----------+',
'| 6 | 1900-01-06 00:00 | | 0.572917 |',
'+-----+------------------+--+----------+',
'| 6 | 1900-01-06 00:00 | | 1<>2 |',
'+-----+------------------+--+----------+',
'| xyz | xyz | | |',
'+-----+------------------+--+----------+',
'',
],
],
];
}
public function testBool(): void
{
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->fromArray([
[0, 1],
[true, false],
[true, true],
], strictNullComparison: true);
/** @var mixed[][] */
$temp = $sheet->toArray(null, true, false, true);
$textGrid = new TextGrid(
$temp,
true,
rowDividers: false,
rowHeaders: false,
columnHeaders: false,
);
$expected = [
'+------+-------+',
'| 0 | 1 |',
'| TRUE | FALSE |',
'| TRUE | TRUE |',
'+------+-------+',
'',
];
$result = $textGrid->render();
$lines = explode(PHP_EOL, $result);
self::assertSame($expected, $lines);
$spreadsheet->disconnectWorksheets();
}
public function testNumbersDefault(): void
{
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->fromArray([
[0, 1, 'string1'],
[18, 13.25, 'string2'],
[100, 2.5, 'string12'],
], strictNullComparison: true);
$sheet->getStyle('B1:B3')->getNumberFormat()
->setFormatCode('0.00');
/** @var mixed[][] */
$temp = $sheet->toArray(null, true, true, true);
$textGrid = new TextGrid(
$temp,
true,
rowDividers: false,
rowHeaders: false,
columnHeaders: false,
);
$expected = [
'+-----+-------+----------+',
'| 0 | 1.00 | string1 |',
'| 18 | 13.25 | string2 |',
'| 100 | 2.50 | string12 |',
'+-----+-------+----------+',
'',
];
$result = $textGrid->render();
$lines = explode(PHP_EOL, $result);
self::assertSame($expected, $lines);
$spreadsheet->disconnectWorksheets();
}
public function testNumbersRight(): void
{
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->fromArray([
[0, 1, '$1,234.56'],
[18, 13.25, 'string2'],
[100, 2.5, 'string123456'],
], strictNullComparison: true);
$sheet->getStyle('B1:B3')->getNumberFormat()
->setFormatCode('0.00');
/** @var mixed[][] */
$temp = $sheet->toArray(null, true, true, true);
$textGrid = new TextGrid(
$temp,
true,
rowDividers: false,
rowHeaders: false,
columnHeaders: false,
numbersRight: TextGridRightAlign::numeric,
);
$expected = [
'+-----+-------+--------------+',
'| 0 | 1.00 | $1,234.56 |',
'| 18 | 13.25 | string2 |',
'| 100 | 2.50 | string123456 |',
'+-----+-------+--------------+',
'',
];
$result = $textGrid->render();
$lines = explode(PHP_EOL, $result);
self::assertSame($expected, $lines);
$spreadsheet->disconnectWorksheets();
}
public function testExtendedNumbersRight(): void
{
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->fromArray([
[0, 1, '$1,234.56'],
[18, 13.25, 'string2'],
[100, 2.5, 'string123456'],
], strictNullComparison: true);
$sheet->getStyle('B1:B3')->getNumberFormat()
->setFormatCode('0.00');
/** @var mixed[][] */
$temp = $sheet->toArray(null, true, true, true);
$textGrid = new TextGridExtended(
$temp,
true,
rowDividers: false,
rowHeaders: false,
columnHeaders: false,
);
$textGrid->setNumbersRight(TextGridRightAlign::numeric);
$expected = [
'+-----+-------+--------------+',
'| 0 | 1.00 | $1,234.56 |',
'| 18 | 13.25 | string2 |',
'| 100 | 2.50 | string123456 |',
'+-----+-------+--------------+',
'',
];
$result = $textGrid->render();
$lines = explode(PHP_EOL, $result);
self::assertSame($expected, $lines);
$spreadsheet->disconnectWorksheets();
}
}