Home  >  Article  >  Backend Development  >  PHP implementation of Excel import example

PHP implementation of Excel import example

小云云
小云云Original
2018-03-20 13:14:0810904browse

This article mainly shares with you PHP implementation of Excel import examples. First, you need to download the PHPexcel portal. Hope it helps everyone.

After decompressing the file, place it in the ThinkPHP\Library\Vendor directory

HTML code

<div class="form-group">
   <!-- <a class="button input-file" style="text-align: center;vertical-align: middle;" href="javascript:void(0);">上传要发送的号码文件<input  size="80" type="file" name="file1" id="file1" onchange="check1()" /></a>!-->
    <h3>导入Excel表:</h3><input  type="file" name="file_stu" />
    <input type="submit"  value="导入" />
</div>

PHP code

# Create a new ExcelToArrary.class.php under ##ThinkPHP\Library\Org\Util\


<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2016/12/6 0006
 * Time: 下午 3:23
 */
namespace Org\Util;


class ExcelToArrary
{
    public function __construct() {
        Vendor("Excel.PHPExcel");//引入phpexcel类(注意你自己的路径)
        Vendor("Excel.PHPExcel.IOFactory");
    }
    public function read($filename,$encode,$file_type)
    {
        if (strtolower($file_type) == &#39;xls&#39;)//判断excel表类型为2003还是2007
        {
            Vendor("Excel.PHPExcel.Reader.Excel5");
            $objReader = \PHPExcel_IOFactory::createReader(&#39;Excel5&#39;);
        } elseif (strtolower($file_type) == &#39;xlsx&#39;) {
            Vendor("Excel.PHPExcel.Reader.Excel2007");
            $objReader = \PHPExcel_IOFactory::createReader(&#39;Excel2007&#39;);
        }
        $objReader->setReadDataOnly(true);
        $objPHPExcel = $objReader->load($filename);
        $objWorksheet = $objPHPExcel->getActiveSheet();
        $highestRow = $objWorksheet->getHighestRow();
        $highestColumn = $objWorksheet->getHighestColumn();
        $highestColumnIndex = \PHPExcel_Cell::columnIndexFromString($highestColumn);
        $excelData = array();
        for ($row = 1; $row <= $highestRow; $row++) {
            for ($col = 0; $col < $highestColumnIndex; $col++) {
                $excelData[$row][] = (string)$objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
            }
        }
        return $excelData;
    }
}

PHP code

Remember to introduce

use Org\Util\ExcelToArrary ;
public function uploadxsl()
{

    /******************导入文件处理*******************/
    $tmp_file = $_FILES [&#39;file_stu&#39;] [&#39;tmp_name&#39;];
    $file_types = explode(".", $_FILES [&#39;file_stu&#39;] [&#39;name&#39;]);
    $file_type = $file_types [count($file_types) - 1];

    /*判别是不是.xls文件,判别是不是excel文件*/
    if (strtolower($file_type) != "xlsx" && strtolower($file_type) != "xls") {
        $this->error(&#39;不是Excel文件,重新上传&#39;);
    }

    /*设置上传路径*/
    $savePath = C(&#39;UPLOAD_DIR&#39;);

    /*以时间来命名上传的文件*/
    $str = date(&#39;Ymdhis&#39;);
    $file_name = $str . "." . $file_type;

    /*是否上传成功*/
    if (!copy($tmp_file, $savePath . $file_name)) {
        $this->error(&#39;上传失败&#39;);
    }
    $ExcelToArrary = new ExcelToArrary();//实例化
    $res = $ExcelToArrary->read(C(&#39;UPLOAD_DIR&#39;) . $file_name, "UTF-8", $file_type);//传参,判断office2007还是office2003
   
    foreach ($res as $k => $v) //循环excel表
    {
        $k = $k - 1;//addAll方法要求数组必须有0索引
        $data[$k][&#39;user_id&#39;] = $_SESSION[&#39;admin_id&#39;];
        $data[$k][&#39;mobile_user&#39;] = $v [0];//创建二维数组
        $data[$k][&#39;mobile&#39;] = $v [1];

    }

    $db = M(&#39;user_db&#39;);//数据库
    $db->addAll($data);
}

at the beginning may appear at the end Problem

Fatal error: Class 'PHPExcel_IOFactory' not found


Solution: Add \

in front of PHPExcel_IOFactoryRelated recommendations:


Sharing the method of importing excel from phpexcel in TP3.2

php Excel imports multiple tables

PHPExcel imports and exports Excel files

The above is the detailed content of PHP implementation of Excel import example. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn