• 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这条路,当你懂得越多的时候,那么你不懂的也就会越多了.
  • 相关阅读:
    苦尽甘来之国产数据库风云榜2022年03月
    存储demo
    行云日志捕获
    重跑支持,删除历史数据
    SpingMVC:结果跳转方式与数据处理
    从Go编程看IO多路复用Select
    mac brew 安装
    对手价是什么意思
    WPF 自定义 窗体(抄袭Fluent.Ribbon仿VS窗体)
    领域驱动设计(2) 领域事件、DDD分层架构
  • 原文地址:https://www.cnblogs.com/learningPHP-students2018/p/10309849.html
Copyright © 2020-2023  润新知