1,下载phpexcel包,githua地址:https://github.com/PHPOffice/PHPExcel
2,下载好解压,把classes文件拷贝到vender下,重命为PHPExel,如图2
图一
图二
3,在控制器中使用
//导入数据
public function insertExcel(){
if(request() -> isPost())
{
vendor("PHPExcel.PHPExcel");
$objPHPExcel =new \PHPExcel();
//获取表单上传文件
$file = request()->file('excel');
if (empty($file)){
echo "<font color=red>请选择上传文件</font>";
die();
}
$info = $file->validate(['ext' => 'xlsx,xls'])->move(ROOT_PATH . 'public'); //上传验证后缀名,以及上传之后移动的地址 E:\wamp\www\bick\public
if($info)
{
// echo $info->getFilename();
$exclePath = $info->getSaveName(); //获取文件名
$extension = strtolower( pathinfo($exclePath, PATHINFO_EXTENSION) );
$file_name = ROOT_PATH . 'public' . DS . $exclePath;//上传文件的地址
if ($extension =='xlsx') {
$objReader =\PHPExcel_IOFactory::createReader("Excel2007");
$obj_PHPExcel =$objReader->load($file_name, $encode = 'utf-8'); //加载文件内容,编码utf-8
}else{
$objReader =\PHPExcel_IOFactory::createReader("Excel5");
$obj_PHPExcel =$objReader->load($file_name, $encode = 'utf-8'); //加载文件内容,编码utf-8
}
$excel_array=$obj_PHPExcel->getSheet(0)->toArray(); //转换为数组格式
array_shift($excel_array); //删除第一个数组(标题);
$info = [];
$i=0;
$erri=0;
foreach($excel_array as $k=>$v) {
if(empty($v[1])){
$erri++;
echo "<font color=red>".$v[1]."导入失败,姓名不可为空</font><br>";
}else if(empty($v[2])){
$erri++;
echo "<font color=red>".$v[1]."导入失败,性别不可为空</font><br>";
}else if(empty($v[3])){
$erri++;
echo "<font color=red>".$v[1]."导入失败,年龄不可为空</font><br>";
}else if(empty($v[4])){
$erri++;
echo "<font color=red>".$v[1]."导入失败,联系方式不可为空</font><br>";
}else if(empty($v[5])){
$erri++;
echo "<font color=red>".$v[1]."导入失败,学历不可为空</font><br>";
}else if(empty($v[6])){
$erri++;
echo "<font color=red>".$v[1]."导入失败,意向不可为空</font><br>";
}else{
$isexit=Db::name('gonghai')->where('phone='.$v[4])->find();
if ($isexit){
$erri++;
echo "<font color=red>".$v[1]."导入失败,已存在手机号</font><br>";
}else{
$info[$k]['username'] = $v[1];
$info[$k]['sexs'] = $v[2];
$info[$k]['ages'] = $v[3];
$info[$k]['phone'] = $v[4];
$info[$k]['xueli'] = $v[5];
$info[$k]['yixiang'] = $v[6];
$i++;
}
}
}
if($erri>0){
echo "<br><font color=red>以上共".$erri."条数据导入失败</font>";
}
if($i>0){
echo "<br><font color=red>成功导入".$i."条数据!!!请勿重新导</font>";
}
//var_dump($info);
Db::name("gonghai")->insertAll($info);
}else
{
echo $file->getError();
}
}
return $this->fetch("ghexcel");
}