fix warning when open xlsx file with thumbnail (#2517)

This commit is contained in:
mix5003 2022-01-25 05:17:53 +07:00 committed by GitHub
parent aa29947e0d
commit e7b0497237
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 65 additions and 0 deletions

View File

@ -149,6 +149,7 @@ class Xlsx extends BaseReader
private const REL_TO_MAIN = [
Namespaces::PURL_OFFICE_DOCUMENT => Namespaces::PURL_MAIN,
Namespaces::THUMBNAIL => '',
];
private const REL_TO_DRAWING = [

View File

@ -14,6 +14,8 @@ class Namespaces
// This one used in Reader\Xlsx\Properties
const CORE_PROPERTIES2 = 'http://schemas.openxmlformats.org/package/2006/metadata/core-properties';
const THUMBNAIL = 'http://schemas.openxmlformats.org/package/2006/relationships/metadata/thumbnail';
const THEME = 'http://schemas.openxmlformats.org/package/2006/relationships/theme';
const COMPATIBILITY = 'http://schemas.openxmlformats.org/markup-compatibility/2006';

View File

@ -0,0 +1,62 @@
<?php
namespace PhpOffice\PhpSpreadsheetTests\Reader\Xlsx;
use PhpOffice\PhpSpreadsheet\Reader\Xlsx;
use PHPUnit\Framework\TestCase;
class Issue2516Test extends TestCase
{
/**
* @var string
*/
private static $testbook = 'tests/data/Reader/XLSX/issue.2516b.xlsx';
public function testPreliminaries(): void
{
$file = 'zip://';
$file .= self::$testbook;
$file .= '#docProps/thumbnail.wmf';
$data = file_get_contents($file);
// confirm that file exists
self::assertNotFalse($data, 'thumbnail.wmf not exists');
$file = 'zip://';
$file .= self::$testbook;
$file .= '#_rels/.rels';
$data = file_get_contents($file);
// confirm that file contains expected namespaced xml tag
if ($data === false) {
self::fail('Unable to read file .rels');
} else {
self::assertStringContainsString('Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/thumbnail" Target="docProps/thumbnail.wmf"', $data);
}
}
public function testIssue2516a(): void
{
$filename = self::$testbook;
$reader = new Xlsx();
$names = $reader->listWorksheetNames($filename);
$expected = ['Sheet1'];
self::assertSame($expected, $names);
}
public function testIssue2516b(): void
{
$filename = self::$testbook;
$reader = new Xlsx();
$infos = $reader->listWorksheetInfo($filename);
$expected = [
[
'worksheetName' => 'Sheet1',
'lastColumnLetter' => 'B',
'lastColumnIndex' => 1,
'totalRows' => '6',
'totalColumns' => 2,
],
];
self::assertSame($expected, $infos);
}
}

Binary file not shown.