1.首先需要下载PHPExcel 插件包,解压后放入vendor文件夹中
2.代码
/**
* 批量导入数据
*/
public function add(){
if ($this->request->isPost()) {
vendor("PHPExcel.PHPExcel");
Loader::import('PHPExcel.PHPExcel.IOFactory.PHPExcel_IOFactory');
Loader::import('PHPExcel.PHPExcel.Reader.Excel5');
$objPHPExcel = new \PHPExcel();
$param=input('post.');
//获取表单上传文件
// $file = request()->file('fileurl');
$file = fopen(ROOT_PATH . 'public' . DS . $param['fileurl'], "r");
$file_name = ROOT_PATH . 'public' . DS . $param['fileurl']; //上传文件的地址
$name=strrchr($file_name,'.');
if($name=='.xlsx'){
$objReader =\PHPExcel_IOFactory::createReader('Excel2007');
}elseif($name=='.xls'){
$objReader =\PHPExcel_IOFactory::createReader('Excel5');
}elseif($name=='.csv'){
$objReader =\PHPExcel_IOFactory::createReader('csv');
}
$obj_PHPExcel =$objReader->load($file_name, $encode = 'utf-8'); //加载文件内容,编码utf-8
$excel_array=$obj_PHPExcel->getsheet(0)->toArray(); //转换为数组格式
array_shift($excel_array); //删除第一个数组(标题);
$data = [];
$i=0;
foreach($excel_array as $k=>$v) {
$data[$k]['bianhao'] = $v[0];
$data[$k]['compname'] = $v[1];
$data[$k]['prodname'] = $v[2];
$data[$k]['materiel'] = $v[3];
$data[$k]['num'] = $v[4];
$data[$k]['money'] = $v[5];
$data[$k]['date'] = $v[6];
$data[$k]['salesperson'] = $v[7];
$data[$k]['attribute'] = $v[8];
$data[$k]['recorddate'] = $v[9];
$data[$k]['contractcode'] = $v[10];
$data[$k]['lidu'] = $v[11];
$data[$k]['chanliang'] = $v[12];
$data[$k]['datetime'] = time();
$i++;
}
$success=Db::name('alpacooperation')->insertAll($data); //批量插入数据
$error=$i-$success;
// echo "总{$i}条,成功{$success}条,失败{$error}条。";
$this->success('添加成功', url('admin/xslpl/index'));
//}else{
// 上传失败获取错误信息
// echo $file->getError();
// $this->error($this->errorMsg);
// }
}
return $this->fetch('save');
}