Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php declare(strict_types=1); namespace PhpOffice\PhpSpreadsheetTests\Writer\Csv; use ..
Decoded Output download
<?php
declare(strict_types=1);
namespace PhpOffice\PhpSpreadsheetTests\Writer\Csv;
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\PhpSpreadsheetTests\Functional;
class CsvExcelCompatibilityTest extends Functional\AbstractFunctional
{
// Excel seems to have changed with how they handle this.
// In particular, it does not recognize UTF-8 non-ASCII characters
// if a file is written with ExcelCompatibility on.
// The initial 'sep=;' line seems to confuse it, even though
// it has a BOM. The Unix "file" command also indicates a difference
// when the sep line is or is not included:
// UTF-8 Unicode (with BOM) text, with CRLF line terminators
// vs CSV text (without sep line, with or without BOM)
// So, this test has no UTF-8 yet while more research is conducted.
public function testExcelCompatibility(): void
{
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', '1');
$sheet->setCellValue('B1', '2');
$sheet->setCellValue('C1', '3');
$sheet->setCellValue('A2', '4');
$sheet->setCellValue('B2', '5');
$sheet->setCellValue('C2', '6');
$writer = new CsvWriter($spreadsheet);
$writer->setExcelCompatibility(true);
self::assertSame('', $writer->getOutputEncoding());
$filename = File::temporaryFilename();
$writer->save($filename);
$reader = new CsvReader();
$spreadsheet2 = $reader->load($filename);
$contents = file_get_contents($filename);
unlink($filename);
self::assertEquals(1, $spreadsheet2->getActiveSheet()->getCell('A1')->getValue());
self::assertEquals(6, $spreadsheet2->getActiveSheet()->getCell('C2')->getValue());
self::assertStringContainsString(CsvReader::UTF8_BOM, $contents);
self::assertStringContainsString("
", $contents);
self::assertStringContainsString('sep=;', $contents);
self::assertStringContainsString('"1";"2";"3"', $contents);
self::assertStringContainsString('"4";"5";"6"', $contents);
}
}
?>
Did this file decode correctly?
Original Code
<?php
declare(strict_types=1);
namespace PhpOffice\PhpSpreadsheetTests\Writer\Csv;
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\PhpSpreadsheetTests\Functional;
class CsvExcelCompatibilityTest extends Functional\AbstractFunctional
{
// Excel seems to have changed with how they handle this.
// In particular, it does not recognize UTF-8 non-ASCII characters
// if a file is written with ExcelCompatibility on.
// The initial 'sep=;' line seems to confuse it, even though
// it has a BOM. The Unix "file" command also indicates a difference
// when the sep line is or is not included:
// UTF-8 Unicode (with BOM) text, with CRLF line terminators
// vs CSV text (without sep line, with or without BOM)
// So, this test has no UTF-8 yet while more research is conducted.
public function testExcelCompatibility(): void
{
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', '1');
$sheet->setCellValue('B1', '2');
$sheet->setCellValue('C1', '3');
$sheet->setCellValue('A2', '4');
$sheet->setCellValue('B2', '5');
$sheet->setCellValue('C2', '6');
$writer = new CsvWriter($spreadsheet);
$writer->setExcelCompatibility(true);
self::assertSame('', $writer->getOutputEncoding());
$filename = File::temporaryFilename();
$writer->save($filename);
$reader = new CsvReader();
$spreadsheet2 = $reader->load($filename);
$contents = file_get_contents($filename);
unlink($filename);
self::assertEquals(1, $spreadsheet2->getActiveSheet()->getCell('A1')->getValue());
self::assertEquals(6, $spreadsheet2->getActiveSheet()->getCell('C2')->getValue());
self::assertStringContainsString(CsvReader::UTF8_BOM, $contents);
self::assertStringContainsString("\r\n", $contents);
self::assertStringContainsString('sep=;', $contents);
self::assertStringContainsString('"1";"2";"3"', $contents);
self::assertStringContainsString('"4";"5";"6"', $contents);
}
}
Function Calls
None |
Stats
MD5 | a3322116be1bc4e6cf705523ca3c95d5 |
Eval Count | 0 |
Decode Time | 84 ms |