需要引入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;
這兩個內置的模塊