Skip to content

Commit dade9cc

Browse files
authored
Corrupt Sample Output for 20 and 30 (PHPOffice#2648)
Xls Reader can read drawing offsetX and offsetY as float. However, Excel Xlsx (and PhpSpreadsheet) wants them only as int. This leads 20_Read_Xls and 30_Template to produce corrupt Xlsx files for any Php release. Change Xls Reader to treat values as int, eliminating the corrupt files.
1 parent e87be5e commit dade9cc

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

src/PhpSpreadsheet/Reader/Xls.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -1101,8 +1101,8 @@ protected function loadSpreadsheetFromFile(string $filename): Spreadsheet
11011101
$height = SharedXls::getDistanceY($this->phpSheet, $startRow, $startOffsetY, $endRow, $endOffsetY);
11021102

11031103
// calculate offsetX and offsetY of the shape
1104-
$offsetX = $startOffsetX * SharedXls::sizeCol($this->phpSheet, $startColumn) / 1024;
1105-
$offsetY = $startOffsetY * SharedXls::sizeRow($this->phpSheet, $startRow) / 256;
1104+
$offsetX = (int) ($startOffsetX * SharedXls::sizeCol($this->phpSheet, $startColumn) / 1024);
1105+
$offsetY = (int) ($startOffsetY * SharedXls::sizeRow($this->phpSheet, $startRow) / 256);
11061106

11071107
switch ($obj['otObjType']) {
11081108
case 0x19:

0 commit comments

Comments
 (0)