thinkphp5 (tp5)导入excel
必须要先下载一个插件,即https://github.com/PHPOffice/PHPExcel
解压后,里面有个classes文件夹,我们需要把classes文件夹名修改为为PHPExcel
,然后把他复制到根目录中的extend目录下.
然后,在控制器中这样引入
import('phpexcel.PHPExcel', EXTEND_PATH);
也可以放在根目录中的/vendor/目录中
引入方法为
vendor("PHPExcel.PHPExcel");
具体案例
数据库
一,模板中这样写
<form action="{:url('index/upload_excel')}" method="post" enctype="multipart/form-data">
<input name='excel' type='file'/>
<input type='submit' value="excel导入,提交"/>
</form><br>
控制器中这样
public function upload_excel() {
$request = \think\Request::instance();
$file = $request->file('excel');
$save_path = ROOT_PATH . 'uploads/';
$info = $file->move($save_path);
//print_r($info);exit;
$filename=$save_path . DIRECTORY_SEPARATOR . $info->getSaveName();
if(file_exists($filename)) {
//如果文件存在
import('phpexcel.PHPExcel', EXTEND_PATH);
if( strstr($filename,'.xlsx'))
{
$PHPReader = new \PHPExcel_Reader_Excel2007();
}
else
{
$PHPReader = new \PHPExcel_Reader_Excel5();
}
//载入excel文件
$PHPExcel = $PHPReader->load($filename);
$sheet = $PHPExcel->getActiveSheet(0);//获得sheet
$highestRow = $sheet->getHighestRow(); // 取得共有数据数
$data=$sheet->toArray();
for($i=0;$i<$highestRow;$i++){
$user['wxid']=trim($data[$i][0]);//excel中的第一栏
//$user['name']=$data[$i][1];//第二栏
if(strlen($user['wxid'])==11 && substr($user['wxid'] , 0 , 1) =='1' ){
//如果内容为11位的手机号,则入库
$new_datas[] = $user;
}
}
if(count($new_datas)>0){
db('data')->insertAll($new_datas, true);
$this->success('上传成功' . count($new_datas) . '条数据');
}else{
$this->success('内容为空');
}
// return $ret;
}else{
return array("resultcode" => -5, "resultmsg" => "文件不存在", "data" => null);
}
}
还没有评论,来说两句吧...