mirror of
https://github.com/PHPOffice/PhpSpreadsheet.git
synced 2026-08-22 01:25:42 +00:00
29c0162e2a
* Let Phpstan Run on Samples Phpstan currently analyzes all source and test members. We already run phpcs and php-cs-fixer on samples as well. I would expect that samples are often used as templates for code in userland; it behooves us to be at least as careful with those members as for the others which are already being analyzed. Aside from 1300+ messages `Variable $helper might not be defined.`, which will be suppressed in phpstan.neon.dist, there are really only a few changes needed for sample members, so that part of the code base was already in good shape, and is now even better. No annotations were needed. * Scrutinizer 2 out of 3 1 false positive, now suppressed; fix other 2. * Remove Dead Code * Very Minor Changes * Add infra
62 lines
1.8 KiB
PHP
62 lines
1.8 KiB
PHP
<?php
|
|
|
|
use PhpOffice\PhpSpreadsheet\Shared\File;
|
|
use PhpOffice\PhpSpreadsheet\Spreadsheet;
|
|
|
|
require __DIR__ . '/../Header.php';
|
|
$inputFileType = 'Xlsx';
|
|
|
|
$helper->log('Start');
|
|
|
|
$spreadsheet = new Spreadsheet();
|
|
|
|
$aSheet = $spreadsheet->getActiveSheet();
|
|
|
|
$gdImage = @imagecreatetruecolor(120, 20);
|
|
if ($gdImage === false) {
|
|
throw new Exception('imagecreatetruecolor failed');
|
|
}
|
|
$textColor = imagecolorallocate($gdImage, 255, 255, 255);
|
|
if ($textColor === false) {
|
|
throw new Exception('imagecolorallocate failed');
|
|
}
|
|
imagestring($gdImage, 1, 5, 5, 'Created with PhpSpreadsheet', $textColor);
|
|
|
|
$baseUrl = 'https://phpspreadsheet.readthedocs.io';
|
|
|
|
$drawing = new \PhpOffice\PhpSpreadsheet\Worksheet\MemoryDrawing();
|
|
$drawing->setName('In-Memory image 1');
|
|
$drawing->setDescription('In-Memory image 1');
|
|
$drawing->setCoordinates('A1');
|
|
$drawing->setImageResource($gdImage);
|
|
$drawing->setRenderingFunction(
|
|
\PhpOffice\PhpSpreadsheet\Worksheet\MemoryDrawing::RENDERING_JPEG
|
|
);
|
|
$drawing->setMimeType(\PhpOffice\PhpSpreadsheet\Worksheet\MemoryDrawing::MIMETYPE_DEFAULT);
|
|
$drawing->setHeight(36);
|
|
$helper->log('Write image');
|
|
|
|
$hyperLink = new \PhpOffice\PhpSpreadsheet\Cell\Hyperlink($baseUrl, 'test image');
|
|
$drawing->setHyperlink($hyperLink);
|
|
$helper->log('Write link: ' . $baseUrl);
|
|
|
|
$drawing->setWorksheet($aSheet);
|
|
|
|
$filename = File::temporaryFilename();
|
|
|
|
$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, $inputFileType);
|
|
$writer->save($filename);
|
|
|
|
$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader($inputFileType);
|
|
|
|
$reloadedSpreadsheet = $reader->load($filename);
|
|
unlink($filename);
|
|
|
|
$helper->log('reloaded Spreadsheet');
|
|
|
|
foreach ($reloadedSpreadsheet->getActiveSheet()->getDrawingCollection() as $pDrawing) {
|
|
$helper->log('Read link: ' . ($pDrawing->getHyperlink()?->getUrl() ?? 'none'));
|
|
}
|
|
|
|
$helper->log('end');
|