美文网首页
PHPExcel数据导入

PHPExcel数据导入

作者: 爱喝马黛茶的安东尼 | 来源:发表于2019-08-09 16:54 被阅读0次

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

    首先下载压缩包:

    http://www.php.cn/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;

    functionABC2decimal($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,自行处理,打印结果如下:

    本文转自:https://www.php.cn/jishu/php/425035.html

    相关文章

      网友评论

          本文标题:PHPExcel数据导入

          本文链接:https://www.haomeiwen.com/subject/hfwhjctx.html