zoukankan      html  css  js  c++  java
  • thinkPHP5.0 使用PHPExcel导出Excel文件

    首先下载PHPExcel类。网上很多,自行下载。

    我下载的跟composer下载的不太一样。我下载的是


     
    下载存放目录.jpg

    而composer下载的是:

     
    composer下载.jpg

    本篇使用的是第一种。所以下载请下载对应的。

    前端代码:

    <form action="ADMIN_MAIN/Excel/out" enctype="multipart/form-data" method="post">
        <input type="submit" value="导出">
    </form>
    

    创建Excel控制器和out方法:

    首先use两个类,否则会报错:

    use PHPExcel_IOFactory;
    use PHPExcel;
    

    然后引入vendor里面的PHPExcel类:

    vendor("PHPExcel.PHPExcel.PHPExcel");
    vendor("PHPExcel.PHPExcel.Writer.Excel5");
    vendor("PHPExcel.PHPExcel.Writer.Excel2007");
    vendor("PHPExcel.PHPExcel.IOFactory");
    

    一般引用vendor里面的类或者插件用vendor();
    里面加载的就是vendor文件,然后想要加载哪个文件,直接写就行,中间的“.”相当于文件路径的“/”。
    例如加载excel5这个文件:

     
    加载.jpg

    最后不写php。这样就加载进来了。
    接下来实例化类时候,一定要加“”。


     
    控制器.jpg

    实例化完了之后就先把数据库里面的数据查出来:

    $sql = db('sys_user')->select();

    有了数据,就可以设置Excel表的表头信息了:

     /*--------------设置表头信息------------------*/
            $objPHPExcel->setActiveSheetIndex(0)
                ->setCellValue('A1', 'ID编号')
                ->setCellValue('B1', '用户名')
                ->setCellValue('C1', '手机号');
    

    这里的A1,B1是A列第一行。以此类推,就是表头了,想要哪些信息就写什么,只要数据库有,接下来可以对的上就行。

    接下来就是查到的信息,对号入座到表格中:

     /*--------------开始从数据库提取信息插入Excel表中------------------*/
    
    
            $i=2;  //定义一个i变量,目的是在循环输出数据是控制行数
            $count = count($sql);  //计算有多少条数据
            for ($i = 2; $i <= $count+1; $i++) {
                $objPHPExcel->getActiveSheet()->setCellValue('A' . $i, $sql[$i-2][uid]);
                $objPHPExcel->getActiveSheet()->setCellValue('B' . $i, $sql[$i-2][user_name]);
                $objPHPExcel->getActiveSheet()->setCellValue('C' . $i, $sql[$i-2][user_tel]);
    

    $i = 2,因为第一行是表头,所以写到表格时候只能从第二行开始写。
    然后for循环。不知道的,我也无能为力。

    接下来就是设置导入表的名称等内容了

     /*--------------下面是设置其他信息------------------*/
    
            $objPHPExcel->getActiveSheet()->setTitle('user');      //设置sheet的名称
            $objPHPExcel->setActiveSheetIndex(0);                   //设置sheet的起始位置
            $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');   //通过PHPExcel_IOFactory的写函数将上面数据写出来
            $PHPWriter = PHPExcel_IOFactory::createWriter( $objPHPExcel,"Excel2007");
            header('Content-Disposition: attachment;filename="用户信息.xlsx"');
            header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
            $PHPWriter->save("php://output"); //表示在$path路径下面生成demo.xlsx文件
    

    到这里,数据导出已经完成

     
    下载完成.jpg
     
    内容.jpg



    原文:https://www.jianshu.com/p/6684cfb61a99

  • 相关阅读:
    财富平台项目日记1:spring boot + mybatis 实现分页查询
    Spring boot 跨域
    Mysql索引
    Java中list多对多拆分
    Redis持久化
    Windows下安装Redis
    idea 常用快捷键
    数据库事务
    Linux开启防火墙端口号
    nginx相关
  • 原文地址:https://www.cnblogs.com/showcase/p/10894159.html
Copyright © 2011-2022 走看看