利用phpspreadsheet插件实现,可根据单元格读取
public function index(){
$objRead = IOFactory::createReader('Xlsx');
$spreadsheet = $objRead->load('./test.xlsx');
/* 获取指定的sheet表 */
$currSheet = $spreadsheet->getSheet(0);
/* 获取总行数 */
// $rowCnt = $currSheet->getHighestRow();
// var_dump($rowCnt);
// var_dump($currSheet->getCell('B2')->getValue());
// exit;
$i = 0;
foreach ($spreadsheet->getActiveSheet()->getDrawingCollection() as $drawing) {
if ($drawing instanceof \PhpOffice\PhpSpreadsheet\Worksheet\MemoryDrawing) {
ob_start();
call_user_func(
$drawing->getRenderingFunction(),
$drawing->getImageResource()
);
$imageContents = ob_get_contents();
ob_end_clean();
switch ($drawing->getMimeType()) {
case \PhpOffice\PhpSpreadsheet\Worksheet\MemoryDrawing::MIMETYPE_PNG :
$extension = 'png';
break;
case \PhpOffice\PhpSpreadsheet\Worksheet\MemoryDrawing::MIMETYPE_GIF:
$extension = 'gif';
break;
case \PhpOffice\PhpSpreadsheet\Worksheet\MemoryDrawing::MIMETYPE_JPEG :
$extension = 'jpg';
break;
}
} else {
if($drawing->getCoordinates()=='C3'){
$zipReader = fopen($drawing->getPath(),'r');
$imageContents = '';
while (!feof($zipReader)) {
$imageContents .= fread($zipReader,1024);
}
fclose($zipReader);
$extension = $drawing->getExtension();
}else{
continue;
}
}
$myFileName = '00_Image_'.'b2'.'.'.$extension;
file_put_contents('./'.$myFileName,$imageContents);
}
}
本文介绍了如何使用PHP的phpspreadsheet库来读取Excel文档中的图片,详细阐述了通过指定单元格读取图片的方法。
1561

被折叠的 条评论
为什么被折叠?



