• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

php导入excel表格

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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

html代码:

<form action="{:U('Mall/updExcel')}" method="POST" enctype="multipart/form-data">    //提交form表单到Mall控制器下的upExcel方法中
              <div style="float:left;width:41%;">   
                <div style="float:left;">
                    <input type='submit' value="更改价格" style="margin: 0px 0px 7px 10px;cursor: pointer;background-color:#C30D23;border:0px;color:#FFFFFF;width:90px;border-radius:5px;padding:3px 0;font-size:13px;"/>
                </div>
                <div style="float:left;width:45%">
                    <input type='file' value="" name="import"/>
                </div>
                <input type="hidden" id="url" name="url" value=""/>      //添加一个隐藏域 传递url
             </div>

</form>

写ExcelController工具类:此类用来被实例化

<?php
namespace Home\Controller;
use Think\Controller;
include "./Public/Plugin/PHPExcel.class.php";
include "./Public/Plugin/PHPExcel/Writer/Excel5";
include "./Public/Plugin/PHPExcel/IOFactory.php";

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');
        
        $objPHPExcel = $objReader->load($file,$encode='utf-8');
        
        $sheet = $objPHPExcel->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']= $objPHPExcel->getActiveSheet()->getCell("B".$i)->getValue();
            $j++;
        }
        return $data;
    }

下面书写控制器来上传excel表格:此类方法不用把excel表格传递到服务器,直接写入数据:

<?php
namespace Admin\Controller;
use Think\Controller;
use Think\Page;
use Home\Controller\IndexController;
use Common;
use Org\Util\Date;
use Home\Controller\ExcelController;

class MallController extends Controller {
            /*商品列表批量导入*/
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"]);
            /*
             * 业务逻辑代码
             * */
            $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('param.url')."';";
            echo "</script>";
            exit;
        }else{
            echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />';
            echo "<script type='text/javascript'>";
            echo "alert('文件读取失败');window.location.href='".I('param.url')."';";
            echo "</script>";
            exit;
        }
    }
}

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
PHP中文字符gbk编码与UTF-8编码的转换发布时间:2022-07-10
下一篇:
基于php-redis的redis操作发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap