本人学习过程中编写,定有美中不足,如果有错误,请您积极指正;如果有帮助,请不要吝啬您的赞美(点赞),欢迎各位大佬点赞评论。
thinkPHP3.2 excel 数据导入
功能用途:(淘宝,京东等电商订单数据导入自己系统数据库,以及各种数据导入)
使用工具包: SDK(PHPexcel) 下载地址:https://www.php.cn/xiazai/leiku/1491#download-comment
html代码:
php代码:
public function dataFile(){
if(IS_POST){
$upload = new \Think\Upload();// 实例化上传类
$upload->maxSize = 3145728 ;// 设置附件上传大小
$upload->exts = array('xls','xlsx');// 设置附件上传类型
$upload->rootPath = "./Application/Admin/Public/Upload/"; // 设置附件上传根目录
$upload->savePath = ''; // 设置附件上传子目录
// 上传文件
$info = $upload->upload();
if(!$info) {// 上传错误提示错误信息
$this->error($upload->getError());
}
$savePath = './Application/Admin/Public/Upload/'.$info['file']['savename'].date("Y-m-d").'/'.$info['file']['savename'];//获取上传文件路径
vendor("PHPExcel.PHPExcel");
$exts = $info['file']['ext'];//获取上传文件格式
if($exts == "xls"){
$objReader=\PHPExcel_IOFactory::createReader('Excel5');//设置读取文件方式
}
if($exts == "xlsx"){
$objReader=\PHPExcel_IOFactory::createReader('Excel2007');//设置读取文件方式
}
$objPHPExcel = $objReader->load($savePath,$encode='utf-8');//读取文件
$sheet = $objPHPExcel->getSheet(0);//获取Excel第一张表
$highestRow = $sheet->getHighestRow(); // 取得总行数
$highestColumn = $sheet->getHighestColumn(); // 取得总列数
$code = M('taoists_person');//实例化数据表
for($i=2;$i<=$highestRow;$i++){ //循环
$data['name']= $objPHPExcel->getActiveSheet()->getCell("A".$i)->getValue();//获取A列第一行的值
$data['sex']= $objPHPExcel->getActiveSheet()->getCell("B".$i)->getValue();//获取B列第一行的值
$data['birthday']= $objPHPExcel->getActiveSheet()->getCell("C".$i)->getValue();//获取C列第一行的值
$data['intro']= $objPHPExcel->getActiveSheet()->getCell("D".$i)->getValue();//获取D列第一行的值
$data['time']= date("Y-m-d H:i:s");
$result = $code->add($data);//插入数据库
}
if ($result) {
$this->success ( "导入成功!",U('DataManage/daoJiaPerson') );
}else{
$error = $this->Model->getError ();
$this->error ( $error ? $error : "导入失败!" );
}
} else {
$this->display();
}
}