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) == 'xls')//判断excel表类型为2003还是2007 { Vendor("Excel.PHPExcel.Reader.Excel5"); $objReader = \PHPExcel_IOFactory::createReader('Excel5'); } elseif (strtolower($file_type) == 'xlsx') { Vendor("Excel.PHPExcel.Reader.Excel2007"); $objReader = \PHPExcel_IOFactory::createReader('Excel2007'); } $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; } }
use Org\Util\ExcelToArrary ;
public function uploadxsl() { /******************导入文件处理*******************/ $tmp_file = $_FILES ['file_stu'] ['tmp_name']; $file_types = explode(".", $_FILES ['file_stu'] ['name']); $file_type = $file_types [count($file_types) - 1]; /*判别是不是.xls文件,判别是不是excel文件*/ if (strtolower($file_type) != "xlsx" && strtolower($file_type) != "xls") { $this->error('不是Excel文件,重新上传'); } /*设置上传路径*/ $savePath = C('UPLOAD_DIR'); /*以时间来命名上传的文件*/ $str = date('Ymdhis'); $file_name = $str . "." . $file_type; /*是否上传成功*/ if (!copy($tmp_file, $savePath . $file_name)) { $this->error('上传失败'); } $ExcelToArrary = new ExcelToArrary();//实例化 $res = $ExcelToArrary->read(C('UPLOAD_DIR') . $file_name, "UTF-8", $file_type);//传参,判断office2007还是office2003 foreach ($res as $k => $v) //循环excel表 { $k = $k - 1;//addAll方法要求数组必须有0索引 $data[$k]['user_id'] = $_SESSION['admin_id']; $data[$k]['mobile_user'] = $v [0];//创建二维数组 $data[$k]['mobile'] = $v [1]; } $db = M('user_db');//数据库 $db->addAll($data); }
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!