learningPHP-students2018

前言:对于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\');

    }

 

分类:

技术点:

相关文章: