PHPExcel导入excel的内容以及表格里的图片

PHPExcel是一个非常强大的PHP表格处理模块


大部分情况下我们只用到了这个插件的字符导入导出功能。很多时候我们要导入导出链接,图片等。

PHPExcel中图片与文本是分开的,也就是在操作时间图片与文本各自独立添加到表格中去的,解析时同样要分两次把图片与文本读出来再合并,图片的也是有坐标的,其坐标是以图片的左上角为准


在某些电脑上可能会存在问题,建议excel 为2003或者2007版本的,也就是后缀名要xls的 不能是xlsx.


代码如下:

<?php
$excel =PHPExcel_IOFactory::load( "file.xlsx" ); //把导入的文件目录传入,系统会自动找到对应的解析类
$sheet = $excel ->getSheet(0); //选择第几个表,如下面图片,默认有三个表
$data = $sheet ->toArray(); //把表格的数据转换为数组,注意:这里转换是以行号为数组的外层下标,列号会转成数字为数组内层下标,坐标对应的值只会取字符串保留在这里,图片或链接不会出现在这里。
/*取图片*/
$imgData = array ();
$imageFilePath = '/images/' . date ( 'Y/m/d' ). '/' ; //图片保存目录
foreach ( $sheet ->getDrawingCollection()  as  $img ){
     list ( $startColumn $startRow ) = PHPExcel_Cell::coordinateFromString( $img ->getCoordinates()); //获取列与行号
     $imageFileName = $img ->getCoordinates().mt_rand(100,999);
     /*表格解析后图片会以资源形式保存在对象中,可以通过getImageResource函数直接获取图片资源然后写入本地文件中*/
     switch  ( $img ->getMimeType()){ //处理图片格式
         case  'image/jpg' :
         case  'image/jpeg' :
             $imageFileName .= '.jpg' ;
             imagejpeg( $img ->getImageResource(), $imageFilePath . $imageFileName );
             break ;
         case  'image/gif' :
             $imageFileName .= '.gif' ;
             imagegif( $img ->getImageResource(), $imageFilePath . $imageFileName );
             break ;
         case  'image/png' :
             $imageFileName .= '.png' ;
             imagepng( $img ->getImageResource(), $imageFilePath . $imageFileName );
             break ;
     }
     $imgData [ $startRow ][ $startColumn ]= $imageFileName ; //追加到数组中去
}
?>


在某些人电脑行可能会出现 getMimeType()方法不存在,解决方案:帮Drawing类里面的代码都复制到MemoryDrawing里面记好了,类名不变!

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值