我有一个Excel文件(xlsx),里面有几张图片
我有一个php脚本,它允许我提取其中包含的照片,将它们插入一个文件夹中,并根据每张照片前面的单元格的名称重命名它们。这个脚本可以工作,但是我想从第5行开始读这些行,我尝试用$i <= 3跳过前4行,但是这会导致图片名称的变化。我该如何解决我的问题?
<?php
require_once 'PHPExcel/Classes/PHPExcel/IOFactory.php';
$path = 'C:/wamp64/www/Extract_pictures_Excel/imagetest.xlsx';
$objPHPExcel = PHPExcel_IOFactory::load($path);
$i = 0;
foreach ($objPHPExcel->getActiveSheet()->getDrawingCollection() as $drawing ) {
$i++;
if ($drawing instanceof PHPExcel_Worksheet_MemoryDrawing) {
ob_start();
call_user_func(
$drawing->getRenderingFunction(),
$drawing->getImageResource()
);
$imageContents = ob_get_contents();
ob_end_clean();
switch ($drawing->getMimeType()) {
case PHPExcel_Worksheet_MemoryDrawing::MIMETYPE_PNG :
$extension = 'png'; break;
case PHPExcel_Worksheet_MemoryDrawing::MIMETYPE_GIF:
$extension = 'gif'; break;
case PHPExcel_Worksheet_MemoryDrawing::MIMETYPE_JPEG :
$extension = 'jpg'; break;
}
}
else {
$zipReader = fopen($drawing->getPath(),'r');
$imageContents = '';
while (!feof($zipReader)) {
$imageContents .= fread($zipReader,1024);
}
fclose($zipReader);
$extension = $drawing->getExtension();
$chemin = 'C:/wamp64/www/Extract_pictures_Excel/images/';
}
$sheet = $objPHPExcel->getActiveSheet();
foreach ($sheet->getDrawingCollection() as $drawing) {
$row = (int)substr($drawing->getCoordinates(), 1);
// retrieve the image data anyway you like
$stylecode = $sheet->getCell('B'.$row)->getValue();
$colorcode = $sheet->getCell('C'.$row)->getValue();
$finalname = $stylecode.'_'.$colorcode;
$myFileName = $chemin.$finalname.'.'.$extension;
file_put_contents($myFileName,$imageContents);
}
}
?>https://stackoverflow.com/questions/64124408
复制相似问题