前面刚刚写过 利用phpexcel 导出超过26列的数据,这里一些之前的准备就不说了先,就是吧phpexcel放到项目指定文件夹,并进行引入。
言归正传,直接上代码吧 首先是简单的html部分 就2句话。如下
<form action="{:U('Pro/upload')}" method="post" enctype="multipart/form-data">
<input type="file" name="file"/>
<input type="submit" value="导入"/>
</form>
然后下面部分是核心 就是后台的导入:
public function upload(){
$upload=new \Think\Upload(); //实例化上传类
$upload->maxSize = 3145728; //设置附件上传大小
$upload->exts = array('xlsx','xls'); //设置附件上传类型
$upload->rootPath = './Uploads/'; //设置附件上传根目录(没有则需手动新建)
$upload->savePath = ''; //设置附件上传(子)目录
//上传文件
$info = $upload->upload();
if(!$info){ //上传错误提示错误信息
$this->error($upload->getError());
}else{ //上传成功获取上传文件信息
foreach($info as $file){
//echo $file['savepath'].$file['savename'];
//这里的路径为网站根目录下Uploads/2016-02-19/56c7056f732ff.xlsx
$filePath="Uploads/".$file['savepath'].$file['savename'];
//等价于
//$filePath = __ROOT__."Uploads/" .$file['savepath'].$file['savename'];
}
echo "<h3>".$filePath."文件上传成功!</h3><p>";
//上传成功则开始导入到mysql中
$result=$this->importExcel($filePath);
echo $result['message'];
}
}
public function importExcel($file){
//导入PHPExcel类库,因为PHPExcel没有用命名空间,只能inport导入
import("Org.Util.PHPExcel");
import("Org.Util.PHPExcel.Writer.Excel5");
import("Org.Util.PHPExcel.IOFactory.php");
if(!file_exists($file)){
return array("error"=>0,'message'=>'file not found!');
}
vendor("PHPExcel.Classes.PHPExcel.IOFactory");
//出现:Class 'Admin\Controller\PHPExcel_IOFactory' not found
//注意这儿加了一个"\"表示调用公共空间,也可以理解为顶层
//$objReader = \PHPExcel_IOFactory::createReader('Excel5');
//获取excel文件:获取Excel第1张表即(Sheet1)
$objPHPExcel= \PHPExcel_IOFactory::load($file);
$objPHPExcel->setActiveSheetIndex(0);
$sheet1=$objPHPExcel->getSheet(0);
//获取行数,并把数据读取出来$data数组
$rowCount=$sheet1->getHighestRow();//excel行数
$data=array();
for($i=2;$i<=$rowCount;$i++){
$item['LieferantNr']=$sheet1->getCellByColumnAndRow(1,$i)->getValue();
$item['DerProdukt1']=$sheet1->getCellByColumnAndRow(2,$i)->getValue();
$item['DerProdukt2']=$sheet1->getCellByColumnAndRow(3,$i)->getValue();
$item['ProduktaufChinesisch']=$sheet1->getCellByColumnAndRow(4,$i)->getValue();
$item['ArtikelNr']=$sheet1->getCellByColumnAndRow(5,$i)->getValue();
$item['EAN1']=$sheet1->getCellByColumnAndRow(6,$i)->getValue();
$item['EAN2']=$sheet1->getCellByColumnAndRow(7,$i)->getValue();
$item['EAN3']=$sheet1->getCellByColumnAndRow(8,$i)->getValue();
$item['EAN4']=$sheet1->getCellByColumnAndRow(9,$i)->getValue();
$item['Marken']=$sheet1->getCellByColumnAndRow(10,$i)->getValue();
$item['Kategorie']=$sheet1->getCellByColumnAndRow(11,$i)->getValue();
$item['Unterkategorie']=$sheet1->getCellByColumnAndRow(12,$i)->getValue();
$item['Spezifikation']=$sheet1->getCellByColumnAndRow(13,$i)->getValue();
$item['St_Einheit']=$sheet1->getCellByColumnAndRow(14,$i)->getValue();
$item['SchichtaufPalette']=$sheet1->getCellByColumnAndRow(15,$i)->getValue();
$item['Einheit_Palette']=$sheet1->getCellByColumnAndRow(16,$i)->getValue();
$item['St_palette']=$sheet1->getCellByColumnAndRow(17,$i)->getValue();
$item['Gewicht_netto']=$sheet1->getCellByColumnAndRow(18,$i)->getValue();
$item['Gewicht_brutto']=$sheet1->getCellByColumnAndRow(19,$i)->getValue();
$item['Gewicht_Palette']=$sheet1->getCellByColumnAndRow(20,$i)->getValue();
$item['Steuersatz']=$sheet1->getCellByColumnAndRow(21,$i)->getValue();
$item['Preis_brutto']=$sheet1->getCellByColumnAndRow(22,$i)->getValue();
$item['Offizielle_Preis']=$sheet1->getCellByColumnAndRow(23,$i)->getValue();
$item['Rabatt']=$sheet1->getCellByColumnAndRow(24,$i)->getValue();
$item['Preis_netto']=$sheet1->getCellByColumnAndRow(25,$i)->getValue();
$item['Preis1']=$sheet1->getCellByColumnAndRow(26,$i)->getValue();
$item['Preis2']=$sheet1->getCellByColumnAndRow(27,$i)->getValue();
$item['Preis3']=$sheet1->getCellByColumnAndRow(28,$i)->getValue();
$item['Stock']=$sheet1->getCellByColumnAndRow(29,$i)->getValue();
$item['Kosten_Transport2']=$sheet1->getCellByColumnAndRow(30,$i)->getValue();
$item['Sonstige_Kosten']=$sheet1->getCellByColumnAndRow(31,$i)->getValue();
$item['Gesamtkosten_netto']=$sheet1->getCellByColumnAndRow(32,$i)->getValue();
$item['Bemerkung1']=$sheet1->getCellByColumnAndRow(33,$i)->getValue();
$item['Bemerkung2']=$sheet1->getCellByColumnAndRow(34,$i)->getValue();
$item['Bemerkung3']=$sheet1->getCellByColumnAndRow(35,$i)->getValue();
$item['Bemerkung4']=$sheet1->getCellByColumnAndRow(36,$i)->getValue();
$item['Bemerkung5']=$sheet1->getCellByColumnAndRow(37,$i)->getValue();
$item['Bemerkung6']=$sheet1->getCellByColumnAndRow(38,$i)->getValue();
$item['Bemerkung7']=$sheet1->getCellByColumnAndRow(39,$i)->getValue();
$item['Bemerkung8']=$sheet1->getCellByColumnAndRow(40,$i)->getValue();
$item['Bemerkung9']=$sheet1->getCellByColumnAndRow(41,$i)->getValue();
$item['Bemerkung10']=$sheet1->getCellByColumnAndRow(42,$i)->getValue();
$item['Kosten_Transport2']=$sheet1->getCellByColumnAndRow(43,$i)->getValue();
$item['userid']='1';
$item['addtime']=time();
$data[]=$item;
}
$success=0;
$error=0;
$sum=count($data);
foreach($data as $k=>$v){
if(M('pro')->data($v)->add()){
$success++;
}else{
$error++;
}
}
echo "<h3>总{$sum}条,成功{$success}条,失败{$error}条</h3>";
return array("error"=>0,'message'=>'import is succussful!');
}
© 版权声明
本文刊载的所有内容,包括文字、图片、音频、视频、软件、程序、以及网页版式设计等部门来源于互联网,版权均归原作者所有!本网站提供的内容服务于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
联系信息:邮箱aoxolcom@163.com或见网站底部。
联系信息:邮箱aoxolcom@163.com或见网站底部。
THE END















请登录后发表评论
注册
社交帐号登录