您的位置:首页 > 编程语言 > PHP开发

利用PhpExcel读取Excel中图片文件

2017-03-23 11:17 453 查看
<?php
ini_set("display_errors",1);

include 'Classes/PHPExcel.php';
include 'Classes/PHPExcel/IOFactory.php';

define('EXCEL_EXTENSION_2003', "xls");
define('EXCEL_EXTENSION_2007', "xlsx");

$fileName2003 = "Standard_Format_File1.xls";
$fileName2007 = "Standard_Format_File1.xlsx";

$fileName = $fileName2003;
//$fileName = $fileName2007;

if(getExtendFileName($fileName) == EXCEL_EXTENSION_2003)
{
$reader = PHPExcel_IOFactory::createReader('Excel5');
}
else if(getExtendFileName($fileName) == EXCEL_EXTENSION_2007)
{
$reader = new PHPExcel_Reader_Excel2007();
}

$PHPExcel = $reader->load($fileName);
$worksheet = $PHPExcel->getActiveSheet();
$imageInfo = extractImageFromWorksheet($worksheet,"importImg/");

print_r($imageInfo);

function getExtendFileName($file_name) {

$extend = pathinfo($file_name);
$extend = strtolower($extend["extension"]);
return $extend;
}

function extractImageFromWorksheet($worksheet,$basePath){

$result = array();

$imageFileName = "";

foreach ($worksheet->getDrawingCollection() as $drawing) {
$xy=$drawing->getCoordinates();
$path = $basePath;
// for xlsx
if ($drawing instanceof PHPExcel_Worksheet_Drawing) {

$filename = $drawing->getPath();

$imageFileName = $drawing->getIndexedFilename();

$path = $path . $drawing->getIndexedFilename();

copy($filename, $path);

$result[$xy] = $path;

// for xls
} else if ($drawing instanceof PHPExcel_Worksheet_MemoryDrawing) {

$image = $drawing->getImageResource();

$renderingFunction = $drawing->getRenderingFunction();

switch ($renderingFunction) {

case PHPExcel_Worksheet_MemoryDrawing::RENDERING_JPEG:

$imageFileName = $drawing->getIndexedFilename();
$path = $path . $drawing->getIndexedFilename();
imagejpeg($image, $path);
break;

case PHPExcel_Worksheet_MemoryDrawing::RENDERING_GIF:
$imageFileName = $drawing->getIndexedFilename();
$path = $path . $drawing->getIndexedFilename();
imagegif($image, $path);
break;

case PHPExcel_Worksheet_MemoryDrawing::RENDERING_PNG:
$imageFileName = $drawing->getIndexedFilename();
$path = $path . $drawing->getIndexedFilename();
imagegif($image, $path);
break;

case PHPExcel_Worksheet_MemoryDrawing::RENDERING_DEFAULT:
$imageFileName = $drawing->getIndexedFilename();
$path = $path . $drawing->getIndexedFilename();
imagegif($image, $path);
break;
}
$result[$xy] = $imageFileName;
}
}

return $result;
}
?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  excel phpexcel