控制器里:
/**
* 订单导入(excel导入)
*/
public function import()
{
if(request()->isPost()){
if (!empty($_FILES)){
import('PHPExcel.PHPExcel', EXTEND_PATH);
$PHPExcel = new \PHPExcel();
$file = request()->file('order');
if($file){
//var_dump($file);die;
$info = $file->move(ROOT_PATH . 'Uploads' . DS . 'Excel');
if($info){
$exclePath = $info->getSaveName(); //获取文件名
$file_name = ROOT_PATH . 'Uploads' . DS . 'Excel' . DS . $exclePath; //上传文件的地址
$extension = strtolower( pathinfo($file_name, PATHINFO_EXTENSION));
if($extension =='xlsx'){
$objReader =\PHPExcel_IOFactory::createReader('Excel2007');
}else if($extension =='xls'){
$objReader = \PHPExcel_IOFactory::createReader('Excel5');
}
$obj_PHPExcel =$objReader->load($file_name, $encode = 'utf-8'); //加载文件内容,编码utf-8
$a = $obj_PHPExcel->getsheet(0);
$imgData=array();
$imageFilePath='public/goods/';//图片保存目录
foreach($a->getDrawingCollection() as $img){
list ($startColumn, $startRow) = \PHPExcel_Cell::coordinateFromString($img->getCoordinates());//获取列与行号
$imageFileName=date('Ymd').$startRow.mt_rand(100,999);
/*表格解析后图片会以资源形式保存在对象中,可以通过getImageResource函数直接获取图片资源然后写入本地文件中*/
switch ($img->getMimeType()){//处理图片格式
case 'image/jpg':
case 'image/jpeg':
$imageFileName.='.jpg';
imagejpeg($img->getImageResource(),$imageFilePath.$imageFileName);
break;
case 'image/gif':
$imageFileName.='.gif';
imagegif($img->getImageResource(),$imageFilePath.$imageFileName);
break;
case 'image/png':
$imageFileName.='.png';
imagepng($img->getImageResource(),$imageFilePath.$imageFileName);
break;
}
$tb_data[$startRow-2]['to_image']=$imageFileName;//追加到数组中去
}
// var_dump($imgData);die;
$excel_array=$obj_PHPExcel->getsheet(0)->toArray(); //转换为数组格式
array_shift($excel_array); //删除第一个数组(标题);
$i=0;
// var_dump($excel_array);die;
foreach($excel_array as $k=>$v) {
// $tb_data = [];
$tb_data[$k]['to_order_id'] = $v[0];
$tb_data[$k]['to_buyer_name'] = $v[1];
$tb_data[$k]['to_buy_time'] = $v[2];
$tb_data[$k]['to_pay_time'] = $v[3];
$tb_data[$k]['to_address'] = $v[4];
$tb_data[$k]['to_name'] = $v[5];
$tb_data[$k]['to_phone'] = $v[6];
$tb_data[$k]['to_tel'] = $v[7];
$tb_data[$k]['to_province'] = $v[8];
$tb_data[$k]['to_city'] = $v[9];
$tb_data[$k]['to_area'] = $v[10];
$tb_data[$k]['to_message'] = $v[11];
$tb_data[$k]['to_remark'] = $v[12];
$tb_data[$k]['to_sub_id'] = $v[13];
$tb_data[$k]['to_goods_name'] = $v[15];
$tb_data[$k]['to_code'] = $v[16];
$tb_data[$k]['to_sku'] = $v[17];
$tb_data[$k]['to_color_size'] = $v[18];
$tb_data[$k]['to_number'] = $v[19];
$tb_data[$k]['to_create'] = time();
$tb_data[$k]['to_modified'] = time();
//入库(淘宝订单)
$res = Db::table('kjds_tb_order')->insertGetId($tb_data[$k]);
$this->checkGoods($tb_data[$k],$res);
}
if($res){
$this->success("导入成功");
}else{
$this->error("导入失败");
}
}else{
$this->error("文件上传失败");
}
}else{
$this->success("未上传文件");
}
}else{
$this->success("未上传文件");
}
}else{
$this->success("未上传文件");
}
}