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

PHP implementation of Excel import example

小云云
Release: 2023-03-21 18:46:01
Original
10944 people have browsed it

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>
Copy after login

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;
    }
}
Copy after login

PHP code

Remember to introduce

use Org\Util\ExcelToArrary ;
Copy after login
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);
}
Copy after login
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!

Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template