php导入excel表格

我们做网站的时候经常要用到excel导入和导出的功能,我们通常的做法是用PHPexcel工具包来完成,具体方法如下:

HTML代码

//提交form表单到Mall控制器下的upExcel方法 //添加一个隐藏域 传递url

写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');

    $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');

    if(isset($_FILES["import"]) &amp;&amp; ($_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;
    }
}

}

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...