1:下载PHPExcel 包
https://github.com/PHPOffice/PHPExcel
放到 vendor 文件夹里
前端代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="{:url('index.php/index/Excel/save')}" method="post" class="form form-horizontal" enctype="multipart/form-data">
<div class="row cl">
<label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>导入数据:</label>
<div class="formControls col-xs-8 col-sm-9">
<input type="file" name="excel" />
</div>
</div>
<div class="row cl">
<div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-3">
<input class="btn btn-primary radius" type="submit" value=" 提交 ">
</div>
</div>
</form>
</body>
</html>
控制器代码
<?php
namespace app\index\controller;
use think\Controller;
use think\Db;//引入数据库
class Excel extends Controller
{
public function save(){
if(request() -> isPost())
{
vendor("PHPExcel.PHPExcel");
$objPHPExcel =new \PHPExcel();
//获取表单上传文件
$file = request()->file('excel');
$info = $file->validate(['ext' => 'xlsx'])->move(ROOT_PATH . 'public'); //上传验证后缀名,以及上传之后移动的地址 E:\wamp\www\bick\public
if($info)
{
// echo $info->getFilename();
$exclePath = $info->getSaveName(); //获取文件名
$file_name = ROOT_PATH . 'public' . DS . $exclePath;//上传文件的地址
$objReader =\PHPExcel_IOFactory::createReader("Excel2007");
$obj_PHPExcel =$objReader->load($file_name, $encode = 'utf-8'); //加载文件内容,编码utf-8
$excel_array=$obj_PHPExcel->getSheet(0)->toArray(); //转换为数组格式
array_shift($excel_array); //删除第一个数组(标题);
$city = [];
$i=0;
foreach($excel_array as $k=>$v) {
$city[$k]['name'] = $v[0];
$city[$k]['code'] = $v[1];
$i++;
}
Db::name("area_code")->insertAll($city);
}else
{
echo $file->getError();
}
}
}
public function r(){
return $this->fetch('upload');
}
}