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

    }
IT这条路,当你懂得越多的时候,那么你不懂的也就会越多了.
原文地址:https://www.cnblogs.com/learningPHP-students2018/p/10309849.html