中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

tp怎么實現excel的導入和導出

發布時間:2021-08-19 11:54:28 來源:億速云 閱讀:142 作者:chen 欄目:互聯網科技

本篇內容介紹了“tp怎么實現excel的導入和導出”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

一:下載phpExcel第三方類庫

              下載地址:http://www.thinkphp.cn/topic/14005.html下載官方網站;

二:下載成功之后將文件放到Vendor下:ThinkPHP\Extend\Vendor\PHPExcel\PHPExcel.php。

三:配置數據庫的信息操作(我的是在home文件夾下(application/home/config/config.php)添加如下配置):

<?php
return array(
    //'配置項'=>'配置值'
    'DB_TYPE'   => 'mysql', // 數據庫類型
    'DB_HOST'   => 'localhost', // 服務器地址
    'DB_NAME'   => 'db_oa', // 數據庫名
    'DB_USER'   => 'root', // 用戶名
    'DB_PWD'    => 'root', // 密碼
    'DB_PORT'   => 3306, // 端口
     'DB_PREFIX' => 'tg_', // 數據庫表前綴
//    'DB_FIELDS_CACHE'       =>  false,        // 啟用字段緩存(開發時這個要寫成false)
)
?>

四:模板代碼:        

<html>
<head>

</head>
<body>
<P><a href="{:U('Index/expUser')}" >導出數據并生成excel</a></P><br/>
<form action="{:U('Index/impUser')}" method="post" enctype="multipart/form-data">
    <input type="file" name="import"/>
    <input type="hidden" name="table" value="tablename"/>
    <input type="submit" value="導入"/>
</form>
</body>
</html>
<?php

?>

實現功能的控制器方法:

  1>導出數據方法的實現:

function expUser(){//導出Excel
        //獲取表頭名:
        $xlsName  = "evaluate_check";
        //獲取文件里面具體的數據
        $xlsCell  = array('教師檢查作業表', '所屬功能','所屬權限','所屬學生','學生答案'
        );
//        連接數據庫找到查詢的表
        $xlsModel = M('evaluate_check');
//        通過調用select方法field查找數據表里面的字段
        $xlsData  = $xlsModel->Field('id,tep_id,tet_id,student_id,student_anwser')->select();
        $this->exportExcel($xlsName,$xlsCell,$xlsData);
    }
    public function exportExcel($expTitle,$expCellName,$expTableData){
//        抓取文件名將字符編碼轉換成utf8格式
        $xlsTitle = iconv('utf-8', 'gb2312', $expTitle);//文件名稱
//       命名Excel文件的文件名稱,通過時間函數隨即打亂
        $fileName = $_SESSION['account'].date('_YmdHis');//or $xlsTitle 文件名稱可根據自己情況設定
        //通過count函數獲取到字段的行數
        $cellNum = count($expCellName);
       //獲取具體的值
        $dataNum = count($expTableData);
//        var_dump(count($expTableData));exit;
        //引入具體的類庫
        vendor("PHPExcel.PHPExcel");
//        echo '111111dfgfhj';exit;
        //實例化方法,得到所有的方法;
        $objPHPExcel = new \PHPExcel();
        //設置單元格的行數
        $cellName = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','AA','AB','AC','AD','AE','AF','AG','AH','AI','AJ','AK','AL','AM','AN','AO','AP','AQ','AR','AS','AT','AU','AV','AW','AX','AY','AZ');

//        var_dump($cellName);exit;
//        var_dump($objPHPExcel->getActiveSheet(0)->mergeCells('A1:'.$cellName[$cellNum-1].'1'));exit;
        $objPHPExcel->getActiveSheet(0)->mergeCells('A1:'.$cellName[$cellNum-1].'1');//合并單元格
//        echo '1111111';exit;
//        var_dump($objPHPExcel->getActiveSheet(0)->mergeCells('A1:'.$cellName[$cellNum-1].'1'));exit;
//         $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', $expTitle.'  Export time:'.date('Y-m-d H:i:s'));
        //對獲取的行號進行循環遍歷并且賦值
        for($i=0;$i<$cellNum;$i++){
           $objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellName[$i].'2', $expCellName[$i]);
        }
        $objPHPExcel->getActiveSheet()->setTitle($expTitle);
        $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1',$expTitle);
        // Miscellaneous glyphs, UTF-8
//        var_dump($dataNum);exit;
        //對獲取的列好進行遍歷賦值輸出
        for($i=0;$i<$dataNum;$i++){
            for($j=0;$j<$cellNum;$j++){
               $a  = array_values($expTableData[$i]) ;
                $objPHPExcel->getActiveSheet(0)->setCellValue($cellName[$j].($i+3),$a[$j]);
            }
        }
        ob_end_clean();//清楚緩沖避免亂碼
        header('pragma:public');
        //設置表頭信息
        header('Content-type:application/vnd.ms-excel;charset=utf-8;name="'.$xlsTitle.'.xls"');
        header("Content-Disposition:attachment;filename=$fileName.xls");//attachment新窗口打印inline本窗口打印
        //通過調用如下方法來創建Excel將值寫入
        $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
        //進行保存下載
        $objWriter->save('php://output');
        exit;
    }

3>導入數據方法的實現:

      (1)選取你要導入的xls文件,進行操作 

      (2)代碼如下: 

function impUser(){
         //判斷你的文件是否為空
        if (!empty($_FILES)) {
//            引入類庫
            vendor("PHPExcel.PHPExcel");
            //獲取存儲文件的文件名
            $file_name=$_FILES['import']['tmp_name'];
            //調用如下方法來讀取你表里面的信息
            $objReader = \PHPExcel_IOFactory::createReader('Excel5');
//            var_dump($objReader);exit;
            //讀取到的臨時文件名的信息
            $objPHPExcel = $objReader->load($file_name,$encode='utf-8');
            //獲取Excel表格的列數
            $sheet = $objPHPExcel->getSheet(0);
            $highestRow = $sheet->getHighestRow(); // 取得總行數

            $highestColumn = $sheet->getHighestColumn(); // 取得總列數
//            將值進行寫入
            for($i=3;$i<=$highestRow;$i++)
            {
                $data['account']= $data['truename'] = $objPHPExcel->getActiveSheet()->getCell("B".$i)->getValue();
                $sex = $objPHPExcel->getActiveSheet()->getCell("C".$i)->getValue();
                // $data['res_id']    = $objPHPExcel->getActiveSheet()->getCell("D".$i)->getValue();
                $data['class'] = $objPHPExcel->getActiveSheet()->getCell("E".$i)->getValue();
                $data['year'] = $objPHPExcel->getActiveSheet()->getCell("F".$i)->getValue();
                $data['city']= $objPHPExcel->getActiveSheet()->getCell("G".$i)->getValue();
                $data['company']= $objPHPExcel->getActiveSheet()->getCell("H".$i)->getValue();
                $data['zhicheng']= $objPHPExcel->getActiveSheet()->getCell("I".$i)->getValue();
                $data['zhiwu']= $objPHPExcel->getActiveSheet()->getCell("J".$i)->getValue();
                $data['jibie']= $objPHPExcel->getActiveSheet()->getCell("K".$i)->getValue();
                $data['honor']= $objPHPExcel->getActiveSheet()->getCell("L".$i)->getValue();
                $data['tel']= $objPHPExcel->getActiveSheet()->getCell("M".$i)->getValue();
                $data['qq']= $objPHPExcel->getActiveSheet()->getCell("N".$i)->getValue();
                $data['email']= $objPHPExcel->getActiveSheet()->getCell("O".$i)->getValue();
                $data['remark']= $objPHPExcel->getActiveSheet()->getCell("P".$i)->getValue();
                $data['sex']=$sex=='男'?1:0;
                $data['res_id'] =1;

                $data['last_login_time']=0;
                $data['create_time']=$data['last_login_ip']=$_SERVER['REMOTE_ADDR'];
                $data['login_count']=0;
                $data['join']=0;
                $data['avatar']='';
                $data['password']=md5('123456');
                //通過以下方法,將值添加到數據庫中;
                M('Member')->add($data);

            }
            $this->success('導入成功!');
        }else
        {
            $this->error("請選擇上傳的文件");
        }

    }

說明:最后的數據庫信息以你具體的表信息為主,在M(‘表明’)->add($data);

         $data里面的數據也以你真實的表為基礎

“tp怎么實現excel的導入和導出”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

二连浩特市| 霍城县| 建德市| 安国市| 周宁县| 无棣县| 万安县| 平阴县| 台安县| 温泉县| 成武县| 米林县| 上思县| 五原县| 莲花县| 广水市| 扶风县| 阿拉尔市| 沙田区| 土默特右旗| 嘉祥县| 临高县| 海门市| 原平市| 鄂尔多斯市| 陵川县| 达日县| 措勤县| 双牌县| 怀安县| 巴南区| 南汇区| 汉中市| 舟山市| 澄江县| 三门峡市| 无锡市| 余庆县| 辽中县| 渝中区| 时尚|