需要引入PHPExcel 的第三方库 可以在百度搜索下 并且在根目录下引入该模块,也可以放在根目录vendor目录下 使用这个方法 vendor("PHPExcel.PHPExcel");
//上传excel
public function uploadExcel(){
$request = \think\Request::instance();
//引入导入excel第三方库
vendor("PHPExcel.PHPExcel");
$file = request()->file('excel');
//数据为空返回错误
if(empty($file)){
$this->error("导入数据失败");
}
$info = $file->validate(['ext' => 'xlsx,xls'])->move(ROOT_PATH . 'public' . DS . 'uploads');
//获取上传到后台的文件名
$fileName = $info->getSaveName();
//获取文件路径
$filePath = Env::get('root_path').'public'.DIRECTORY_SEPARATOR.'uploads'.DIRECTORY_SEPARATOR.$fileName;
//获取文件后缀
$suffix = $info->getExtension();
//判断哪种类型
if($suffix=="xlsx"){
$reader = \PHPExcel_IOFactory::createReader('Excel2007');
}else{
$reader = PHPExcel_IOFactory::createReader('Excel5');
}
//载入excel文件
$excel = $reader->load("$filePath",$encode = 'utf-8');
//读取第一张表
$sheet = $excel->getSheet(0);
//获取总行数
$row_num = $sheet->getHighestRow();
//获取总列数
$col_num = $sheet->getHighestColumn();
$data = []; //数组形式获取表格数据
for ($i=2; $i <=$row_num; $i++) {
// var_dump($sheet->getCell("A".$i)->getValue());exit;
$data['kuaidi_sn'] = $sheet->getCell("A".$i)->getValue();
$data['order_sn'] = $sheet->getCell("G".$i)->getValue();
$data['kuaidi_name'] = $excel->getActiveSheet()->getCell("H".$i)->getValue();
$data['kuaidi_code'] = $excel->getActiveSheet()->getCell("I".$i)->getValue();
$data['status'] = 0;
$datas = M("all_order")->where([
"order_sn" => $data['order_sn'],
])->find();
if(!$datas){
M("all_order")->add($data);
}
}
$this->success('导入成功!');
}
需要引入
use think\Request;
use think\Env;
这两个内置的模块