Skip to content

Commit

Permalink
Fix loading drawing size (#2492)
Browse files Browse the repository at this point in the history
  • Loading branch information
silverslice authored Jan 17, 2022
1 parent 06ea9ea commit dbaafba
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 2 deletions.
4 changes: 2 additions & 2 deletions src/PhpSpreadsheet/Reader/Xlsx.php
Original file line number Diff line number Diff line change
Expand Up @@ -1257,8 +1257,8 @@ public function load(string $filename, int $flags = 0): Spreadsheet
$objDrawing->setOffsetX((int) Drawing::EMUToPixels($oneCellAnchor->from->colOff));
$objDrawing->setOffsetY(Drawing::EMUToPixels($oneCellAnchor->from->rowOff));
$objDrawing->setResizeProportional(false);
$objDrawing->setWidth(Drawing::EMUToPixels(self::getArrayItem((int) self::getAttributes($oneCellAnchor->ext), 'cx')));
$objDrawing->setHeight(Drawing::EMUToPixels(self::getArrayItem((int) self::getAttributes($oneCellAnchor->ext), 'cy')));
$objDrawing->setWidth(Drawing::EMUToPixels(self::getArrayItem(self::getAttributes($oneCellAnchor->ext), 'cx')));
$objDrawing->setHeight(Drawing::EMUToPixels(self::getArrayItem(self::getAttributes($oneCellAnchor->ext), 'cy')));
if ($xfrm) {
$objDrawing->setRotation((int) Drawing::angleToDegrees(self::getArrayItem(self::getAttributes($xfrm), 'rot')));
}
Expand Down
28 changes: 28 additions & 0 deletions tests/PhpSpreadsheetTests/Reader/Xlsx/DrawingOneCellAnchorTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<?php

namespace PhpOffice\PhpSpreadsheetTests\Reader\Xlsx;

use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Worksheet\BaseDrawing;
use PHPUnit\Framework\TestCase;

class DrawingOneCellAnchorTest extends TestCase
{
public function testGetDrawing(): void
{
$filename = __DIR__ . '/../../../data/Reader/XLSX/drawingOneCellAnchor.xlsx';
$reader = IOFactory::createReader('Xlsx');
$spreadsheet = $reader->load($filename);
$worksheet = $spreadsheet->getActiveSheet();
$collection = $worksheet->getDrawingCollection();
self::assertCount(1, $collection);

/** @var BaseDrawing $drawing */
$drawing = $collection[0];
self::assertEquals('A2', $drawing->getCoordinates());
self::assertEquals(10, $drawing->getOffsetX());
self::assertEquals(10, $drawing->getOffsetY());
self::assertEquals(150, $drawing->getHeight());
self::assertEquals(150, $drawing->getWidth());
}
}
Binary file added tests/data/Reader/XLSX/drawingOneCellAnchor.xlsx
Binary file not shown.

0 comments on commit dbaafba

Please sign in to comment.