use
PhpOffice\PhpSpreadsheet\Cell\Coordinate;
use
PhpOffice\PhpSpreadsheet\IOFactory;
$imageFilePath
= './uploads/imgs/';
if
(!
file_exists
(
$imageFilePath
)) {
mkdir
(
$imageFilePath
, 0777, true);
}
try
{
$inputFileName
= './files/1.xlsx';
$objRead
= IOFactory::createReader('Xlsx');
$objSpreadsheet
=
$objRead
->load(
$inputFileName
);
$objWorksheet
=
$objSpreadsheet
->getSheet(0);
$data
=
$objWorksheet
->toArray();
foreach
(
$objWorksheet
->getDrawingCollection()
as
$drawing
) {
list(
$startColumn
,
$startRow
) = Coordinate::coordinateFromString(
$drawing
->getCoordinates());
$imageFileName
=
$drawing
->getCoordinates() . mt_rand(1000, 9999);
switch
(
$drawing
->getExtension()) {
case
'jpg':
case
'jpeg':
$imageFileName
.= '.jpg';
$source
= imagecreatefromjpeg(
$drawing
->getPath());
imagejpeg(
$source
,
$imageFilePath
.
$imageFileName
);
break
;
case
'gif':
$imageFileName
.= '.gif';
$source
= imagecreatefromgif(
$drawing
->getPath());
imagegif(
$source
,
$imageFilePath
.
$imageFileName
);
break
;
case
'png':
$imageFileName
.= '.png';
$source
= imagecreatefrompng(
$drawing
->getPath());
imagepng(
$source
,
$imageFilePath
,
$imageFileName
);
break
;
}
$startColumn
= ABC2decimal(
$startColumn
);
$data
[
$startRow
-1][
$startColumn
] =
$imageFilePath
.
$imageFileName
;
}
dump(
$data
);
die
();
}
catch
(\Exception
$e
) {
throw
$e
;
}
public
function
ABC2decimal(
$abc
)
{
$ten
= 0;
$len
=
strlen
(
$abc
);
for
(
$i
=1;
$i
<=
$len
;
$i
++){
$char
=
substr
(
$abc
,0-
$i
,1);
$int
= ord(
$char
);
$ten
+= (
$int
-65)*pow(26,
$i
-1);
}
return
$ten
;
}