php操作excel表格的導入和導出


前言:對於excel大家肯定熟悉不過了的,那么我們在日常的業務中應該是有對這些文件的導入導出操作的

類的下載:composer require phpoffice/phpexcel,其中Classes文件是核心文件

//導入excel文件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>文件的讀寫</title> </head> <body> <form action="./importexcelserver.php" method="post" enctype="multipart/form-data"> 請選擇文件:<input type="file" name="excel"> <br/> <input type="submit" value="上傳"> </form> </body> </html>
//excel導入的方法的后端代碼
    function import_One()
    {

        require "./Classes/PHPExcel/IOFactory.php";
        $excelio=PHPExcel_IOFactory::load($_FILES['excel']['tmp_name']); //第一個參數是表單提交的name,第二個是臨時名
        $sheetcount=$excelio->getSheetCount();
        $datas=$excelio->getSheet(0)->toArray(); // 獲取第一個sheet數據
        unset($datas[0]);  // 刪除表頭名字,
        echo "<pre>";
        print_r($datas);
     //.....接着你就可以操作數據庫入庫了
} import_One();
//導出前台代碼
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>文件的讀寫</title> </head> <body> <div> <button id="output">單擊我導出文件</button> </div> </body> <script type="text/javascript"> document.getElementById('output').onclick = function(){ location.href = 'export.php'; } </script> </html>
<?php 
//導出文件后台代碼
function export()
    {
        require "./Classes/PHPExcel.php"; // 引入核心文件
        require "./Classes/PHPExcel/Writer/Excel5.php"; //此類主要往excel表中寫數據的文件
        $objPHPExcel = new PHPExcel(); // 實例一個excel核心類
        $objWriter = new PHPExcel_Writer_Excel5($objPHPExcel); // 將excel類對象作為參數傳入進去
        $sheets=$objPHPExcel->getActiveSheet()->setTitle('sheet_name');//設置表格名稱
        //設置sheet列頭信息
        $objPHPExcel->setActiveSheetIndex()->setCellValue('A1', '名字')->setCellValue('B1', '郵箱')->setCellValue('C1', '性別');
        //這里是操作數據庫查詢庫中的字段的值(如果數量龐大可以利用框架的批量讀取功能)
        $users=D("User")->limit(10)->Select();
        $i=2;//第一行被表頭占有了
        foreach($users as $v){
            //設置單元格的值
            $sheets=$objPHPExcel->getActiveSheet()->setCellValue('A'.$i,$v['username']);
            $sheets=$objPHPExcel->getActiveSheet()->setCellValue('B'.$i,$v['email']);
            $sheets=$objPHPExcel->getActiveSheet()->setCellValue('C'.$i,$v['sex']?"男":"女");
            $i++;
        }

        //整體設置字體和字體大小
        $objPHPExcel->getDefaultStyle()->getFont()->setName( 'Arial');//整體設置字體
        $objPHPExcel->getDefaultStyle()->getFont()->setSize(10);//整體設置字體大小


        // $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true); //單元格寬度自適應
        $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(20); //設置列寬度
        $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(20); //設置列寬度
        $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(20); //設置列寬度
        $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(20); //設置列寬度
        $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(20); //設置列寬度
        $objPHPExcel->getActiveSheet()->getStyle('B3')->getFont()->setBold(true); //設置單元格字體加粗

        // 輸出Excel表格到瀏覽器下載
        header('Content-Type: application/vnd.ms-excel');
        header('Content-Disposition: attachment;filename="excel_name.xls"'); //excel表格名稱
        header('Cache-Control: max-age=0');
        header('Cache-Control: max-age=1');
        header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
        header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); // always modified
        header('Cache-Control: cache, must-revalidate'); // HTTP/1.1
        header('Pragma: public'); // HTTP/1.0
        $objWriter->save('php://output');

    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM