Einführung, wie thinkphp Excel importiert:
Entwicklungsideen
1. Laden Sie zunächst die Excel-Datei auf den Server hoch
2. Holen Sie sich den Inhalt der Server-Excel-Datei
3. Schreiben Sie in die Datenbank
1. Laden Sie die Excel-Datei mit der mitgelieferten Upload-Methode „ThinkUpload();“ hoch PHP, was sehr praktisch ist. Aus diesem Grund habe ich die einfachste Möglichkeit zur Verwendung dieser Methode herausgefunden:
/** * TODO 上传文件方法 * @param $fileid form表单file的name值 * @param $dir 上传到uploads目录的$dir文件夹里 * @param int $maxsize 最大上传限制,默认1024000 byte * @param array $exts 允许上传文件类型 默认array('gif','jpg','jpeg','bmp','png') * @return array 返回array,失败status=0 成功status=1,filepath=newspost/2014-9-9/a.jpg */ function uploadfile($fileid,$dir,$maxsize=5242880,$exts=array('gif','jpg','jpeg','bmp','png'),$maxwidth=430){ $upload = new \Think\Upload();// 实例化上传类 $upload->maxSize = $maxsize;// 设置附件上传大小,单位字节(微信图片限制1M $upload->exts = $exts;// 设置附件上传类型 $upload->rootPath = './uploads/'; // 设置附件上传根目录 $upload->savePath = $dir.'/'; // 设置附件上传(子)目录 // 上传文件 $info = $upload->upload(); if(!$info) {// 上传错误提示错误信息 return array(status=>0,msg=>$upload->getError()); }else{// 上传成功 return array(status=>1,msg=>'上传成功',filepath=>$info[$fileid]['savepath'].$info[$fileid]['savename']); } }
Standardmäßig wird sie in den Ordner hochgeladen, in dem sich die ThinkPHP-Eintragsdatei index.php befindet. Diese Methode gibt Daten zurück Der Status ist Erfolg, wenn Status = 1. Es wird empfohlen, dass das gesamte System in der frühen Phase der Architektur eine Vereinbarung hat. Bei Bedarf sollte der Rückgabewert in Form eines Arrays vorliegen. Erfolgt die Rückgabe von
return array(status=>1,data=>....,info=>.....)
, kann
array(status->0,info=>'可以说明出错的原因',....)
Die Verwendung eines einheitlichen Ansatzes auf diese Weise kann die Effizienz verbessern und das Nachdenken bei der Betrachtung des Codes reduzieren Teamzusammenarbeit. Vereinfacht ausgedrückt heißt die Upload-Methode wie folgt:
//excel 文件 if(!empty($_FILES['xls']['name'])){ $upload=uploadfile('xls','tempxls',5242880,array('xls','xlsx')); if($upload['status']){ $path=$upload['filepath']; }else{ $this->error($upload['msg']); } }
2. Erhalten Sie Excel-Daten
1. Zuerst müssen Sie die PHPExcel-Klassenbibliothek vorstellen
require_once 'module/PHPExcel/Classes/PHPExcel/IOFactory.php';
2. Holen Sie sich das 0. Excel-Blatt (Blatt1)
//获取excel文件 $objPHPExcel = \PHPExcel_IOFactory::load("uploads/$path"); $objPHPExcel->setActiveSheetIndex(0); $sheet0=$objPHPExcel->getSheet(0);
3. Ermitteln Sie die Anzahl der Zeilen und geben Sie die Daten ein. Lesen Sie das $data-Array aus
$rowCount=$sheet0->getHighestRow();//excel行数 $data=array(); for ($i = 2; $i <= $rowCount; $i++){ $item['name']=$this->getExcelValue($sheet0,'A'.$i); $item['sex']=$this->getExcelValue($sheet0,'B'.$i); $item['contact']=$this->getExcelValue($sheet0,'C'.$i); $item['remark']=$this->getExcelValue($sheet0,'D'.$i); $item['addtime']=$this->getExcelValue($sheet0,'E'.$i); $data[]=$item; }
3 die Daten
$success=0; $error=0; $sum=count($data); foreach($data as $k=>$v){ if(M('temp_area3')->data($v)->add()){ $success++; }else { $error++; } } echo "总{$sum}条,成功{$success}条,失败{$error}条。";
Empfohlenes Tutorial: „TP5“
Das obige ist der detaillierte Inhalt vonSo importieren Sie Excel mit PHPExcel in thinkphp. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!