原创文章引自(https://www.ympfb.com/show-29-154-1.html)
在用之前必须
use think\PHPExcel;
并且这个是第三方类库,这个类库是直接用命令能后下载的
composer 命令: | |
composer require phpoffice/phpexcel | |
public function save(){ | |
//前台的form表单大家都会吧,我就不写了 | |
//设置文件上传的最大限制 | |
ini_set('memory_limit','1024M'); | |
//加载第三方类文件 | |
require_once "../extend/PHPExcel/PHPExcel.php"; | |
//防止乱码 | |
header("Content-type:text/html;charset=utf-8"); | |
//实例化主文件 | |
//接收前台传过来的execl文件 | |
$file = $_FILES['file']; | |
//截取文件的后缀名,转化成小写 | |
$extension = strtolower(pathinfo($file['name'],PATHINFO_EXTENSION)); | |
if($extension == "xlsx"){ | |
//2007(相当于是打开接收的这个excel) | |
$objReader =\PHPExcel_IOFactory::createReader('Excel2007'); | |
}else{ | |
//2003(相当于是打开接收的这个excel) | |
$objReader = \PHPExcel_IOFactory::createReader('Excel5'); | |
} | |
$objContent = $objReader -> load($file['tmp_name']); | |
if ($objContent){ | |
$sheetContent = $objContent -> getSheet(0) -> toArray(); | |
//删除第一行标题 | |
//dump($sheetContent);die; | |
//其实到这里就结束了,就已经得到excel表格的所有数据了,下面就是如何插入数据库的问题了 ,下面我的方法大家可以参考 | |
$len = count($sheetContent); | |
//var_dump($len);exit; | |
if($len == 1){ | |
echo "<script>alert('请不要拿空表格来骗我');window.history.back();</script>"; | |
exit(); | |
} | |
for($i = 1;$i<$len; $i++){ | |
$data = [ | |
'id' => '', | |
'phone' => $sheetContent[$i][0], | |
'company_name' => $sheetContent[$i][1], | |
'add_id' => $sheetContent[$i][2], | |
'industry_id' => $sheetContent[$i][3], | |
'data_name' => $sheetContent[$i][4], | |
'data_address' => $sheetContent[$i][5], | |
'data_class' => $sheetContent[$i][6], | |
'data_set_up_date' => $sheetContent[$i][6], | |
'create_time' => date('Y-m-d') | |
]; | |
//dump($data);die; | |
$re = Db::name('data_decoration_company')->insert($data); | |
} | |
//var_dump($res);die; | |
if($re){ | |
echo "<script>alert('导入成功');window.history.back(); </script>"; | |
exit(); | |
$this->redirect('/')->remember(); | |
}else{ | |
echo "<script>alert('导入失败了,慢点慢点@!@本电脑的脑子已经跟不上你的节奏了');window.history.back();</script>"; | |
exit(); | |
$this->redirect('/')->remember(); | |
} | |
}else{ | |
$this->error('请导入表格 !'); | |
} | |
} |