我们做网站的时候经常要用到excel导入和导出的功能,我们通常的做法是用PHPexcel工具包来完成,具体方法如下:
写ExcelController工具类:此类用来被实例化
class ExcelController extends Controller {
//导入功能
public function updExcel($file){
if(!file_exists($file)){
return array("error"=>0,'message'=>'file not found!');
}
$objReader = \PHPExcel_IOFactory::createReader('Excel5');
//导入功能
public function updExcel($file){
if(!file_exists($file)){
return array("error"=>0,'message'=>'file not found!');
}
$objReader = \PHPExcel_IOFactory::createReader('Excel5');
$obj<a href="https://www.jb51.cc/tag/PHP/" target="_blank" class="keywords">PHP</a>Excel = $objReader->load($file,$encode='utf-8');
$sheet = $obj<a href="https://www.jb51.cc/tag/PHP/" target="_blank" class="keywords">PHP</a>Excel->getSheet(0);
$highestRow = $sheet->getHighestRow(); // 取得总行数
$highestColumn = $sheet->getHighestColumn(); // 取得总列数
$j=0;
for($i=2;$i<=$highestRow;$i++){
$data[$j]['id']= $objPHPExcel->getActiveSheet()->getCell("A".$i)->getValue();
$data[$j]['result_price']= $obj<a href="https://www.jb51.cc/tag/PHP/" target="_blank" class="keywords">PHP</a>Excel->getActiveSheet()->getCell("B".$i)->getValue();
$j++;
}
return $data;
}</span></pre>
下面书写控制器来上传excel表格:此类方法不用把excel表格传递到服务器,直接写入数据:
class MallController extends Controller {
/商品列表批量导入/
public function updExcel(){
$excel=new ExcelController();
$goods=M('shop_goods_subinfo');
/商品列表批量导入/
public function updExcel(){
$excel=new ExcelController();
$goods=M('shop_goods_subinfo');
if(isset($_FILES["import"]) && ($_FILES["import"]["error"] == 0)){
$result = $excel->updExcel($_FILES["import"]["tmp_name"]);
/*
* 业务逻辑<a href="https://www.jb51.cc/tag/daima/" target="_blank" class="keywords">代码</a>
* */
$true="";
$false="";
foreach($result as $value){
//$where=array('id'=>$value['id'],'status'=>0);
$where=array(
'code'=>$value['id'],);
$data=array(
'result_price'=>$value['result_price'],);
$state=$goods->where($where)->save($data);
if($state > 0){
$true .= ";".$value['id'];
}else{
$false .= ";".$value['id'];
}
}
echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />';
echo "<script type='text/javascript'>";
echo "alert('更改成功".$true.";更改失败".$false."');window.location.href='".I('p<a href="https://www.jb51.cc/tag/ara/" target="_blank" class="keywords">ara</a>m.url')."';";
echo "</script>";
exit;
}else{
echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />';
echo "<script type='text/javascript'>";
echo "alert('<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>读取失败');window.location.href='".I('p<a href="https://www.jb51.cc/tag/ara/" target="_blank" class="keywords">ara</a>m.url')."';";
echo "</script>";
exit;
}
}
}