利用PhpExcel读取Excel中图片文件

<?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;
}
?>
使用的phpexcel是PHPExcel 1.7.9
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值