导入:
public function savestudentImport(){ //import('phpexcel.PHPExcel', EXTEND_PATH);//方法二 vendor("PHPExcel.PHPExcel"); //方法一 $objPHPExcel = new \PHPExcel(); //获取表单上传文件 $file = request()->file('excel'); $info = $file->validate(['size'=>15678,'ext'=>'xlsx,xls,csv'])->move(ROOT_PATH . 'public' . DS . 'excel'); if($info){ $exclePath = $info->getSaveName(); //获取文件名 $file_name = ROOT_PATH . 'public' . DS . 'excel' . DS . $exclePath; //上传文件的地址 $objReader =\PHPExcel_IOFactory::createReader('Excel2007'); $obj_PHPExcel =$objReader->load($file_name, $encode = 'utf-8'); //加载文件内容,编码 utf-8 echo "<pre>"; $excel_array=$obj_PHPExcel->getsheet(0)->toArray(); //转换为数组格式 array_shift($excel_array); //删除第一个数组(标题); $data = []; $i=0; foreach($excel_array as $k=>$v) { $data[$k]['title'] = $v[0]; $i++; } $success=Db::name('t_station')->insertAll($data); //批量插入数据 //$i= $error=$i-$success; echo "总{$i}条,成功{$success}条,失败{$error}条。"; // Db::name('t_station')->insertAll($city); //批量插入数据 }else{ // 上传失败获取错误信息 echo $file->getError(); } }
导出
public function excel($data) { //导出 $name='place'; $header=['MAC','品牌']; foreach ($data as $v){ unset($info); $info[] = $v['MAC']; $info[] = $v['BRAND']; $new_data[] = $info; } excelExport($name,$header,$new_data); }
function excelExport($fileName = '', $headArr = [], $data = []) { $fileName .= "_" . date("Y_m_d", time()) . ".xls"; $objPHPExcel = new \PHPExcel(); $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objPHPExcel->getProperties(); $key = ord("A"); // 设置表头 foreach ($headArr as $v) { $colum = chr($key); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '1', $v); $key += 1; } $column = 2; $objActSheet = $objPHPExcel->getActiveSheet(0); foreach ($data as $key => $rows) { // 行写入 $span = ord("A"); foreach ($rows as $keyName => $value) { // 列写入 $objActSheet->setCellValue(chr($span) . $column, $value); $span++; } $column++; } $fileName = iconv("utf-8", "gb2312", $fileName); // 重命名表 $objPHPExcel->setActiveSheetIndex(0); // 设置活动单指数到第一个表,所以Excel打开这是第一个表 ob_end_clean(); header('Content-Type: application/vnd.ms-excel'); header("Content-Disposition: attachment;filename='$fileName'"); header('Cache-Control: max-age=0'); $objWriter->save('php://output'); // 文件通过浏览器下载 exit(); }