• 技术文章 >每日编程 >PHP知识

    PHPExcel数据导入(图文)

    藏色散人藏色散人2020-01-02 14:33:51转载12232

    PHPExcel是一个PHP类库,用来帮助我们简单、高效实现从Excel读取Excel的数据和导出数据到Excel。

    相关视频课程:《PHP快速操控Excel之PhpSpreadsheet

    首先下载压缩包:

    //m.sbmmt.com/xiazai/leiku/1491

    解压后如下:

    在根目录创建一个test.php用来读取excel的内容 excel文件的内容如下:

    然后test.php代码如下:

    <?php
    header("content-type:text/html;charset=utf8");
    include './Classes/PHPExcel/IOFactory.php';//引入PHPExcel类
    $inputFileName = './test.xls';//读取的excel文件
    date_default_timezone_set('PRC');
    // 读取excel文件
    try {
        $inputFileType = PHPExcel_IOFactory::identify($inputFileName);
        $objReader = PHPExcel_IOFactory::createReader($inputFileType);
        $objPHPExcel = $objReader->load($inputFileName);
    } catch(Exception $e) {
        die('加载文件发生错误:"'.pathinfo($inputFileName,PATHINFO_BASENAME).'": '.$e->getMessage());
    }
    $sheet = $objPHPExcel->getSheet(0);
    $data=$sheet->toArray();//该方法读取不到图片 图片需单独处理
    $imageFilePath='./images/'.date('Y-m-d').'/';//图片在本地存储的路径
    if (! file_exists ( $imageFilePath )) {
        mkdir("$imageFilePath", 0777, true);
    }
    //处理图片
    foreach($sheet->getDrawingCollection() as $img) {
        list($startColumn,$startRow)= PHPExcel_Cell::coordinateFromString($img->getCoordinates());//获取图片所在行和列
        $imageFileName = $img->getCoordinates() . mt_rand(100, 999);
        switch($img->getMimeType()) {
            case 'image/jpg':
                $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;
        }
        $startColumn = ABC2decimal($startColumn);//由于图片所在位置的列号为字母,转化为数字
        $data[$startRow-1][$startColumn]=$imageFilePath.$imageFileName;//把图片插入到数组中
    
    }
    print_r($data);die;
    function ABC2decimal($abc){
        $ten = 0;
        $len = strlen($abc);
        for($i=1;$i<=$len;$i++){
            $char = substr($abc,0-$i,1);//反向获取单个字符
    
            $int = ord($char);
            $ten += ($int-65)*pow(26,$i-1);
        }
        return $ten;
    }

    以上代码只是处理图片,得到图片路径插入到数组中,如需数据入库,可循环insert,自行处理,打印结果如下:

    以上就是PHPExcel数据导入(图文)的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:cnblogs,如有侵犯,请联系admin@php.cn删除
    专题推荐:PHPExcel
    上一篇:PHP递归算法(四) 下一篇:php经典趣味算法
    大前端线上培训班

    相关文章推荐

    • 利用PHPExcel如何读取表格中内容• phpExcel在导出文件时内存溢出的解决方法• phpExcel将数据导出至Excel的详细方法介绍• PHPExcel导入Excel文件并对其日期单元格处理的代码示例

    全部评论我要评论

  • YHF

    每天学习,打卡!

    2019-07-18

  • DonnyLiuCoder

    滴滴滴,打卡!

    2019-09-02

  • 无恙.

    daka 很有用

    2020-02-03

  • 取消发布评论发送
  • 1/1

    PHP中文网