现在数据库里面有一组数据,我们将它按照不同的难度进行分sheet.

首先我们需要写一个mysql的配置文件- db.config.php(utf-8编码) :

<?php

  $dbconfig= array(

    'host'        => '127.0.0.1',

    'username' => 'root',

    'password' => '',

    'database'  => 'xxx',

    'charset'    => 'utf8'

  );

?>

再创建一个php操作mysql数据库的文件 db.php(utf-8编码):

<?php

  require dirname(__FILE__).'/db.config.php'; //引入配置文件

  class db {

    public $conn = null;

    public function __construct($config){ //构造方法 实例化类时自动调用

      $this->conn = mysql_connect($config['host'],$config['username'],$config['password']) or die (mysql_error()); //链接数据库

      mysql_select_db($config['database'],$this->conn) or die (mysql_error()); //选择数据库

      mysql_query('set names '.$config['charset']) or die (mysql_error()); //设定mysql编码

    }

    public function getResult($sql){

      $resource = mysql_query($sql,$this->conn) or die (mysql_error()); //查询sql语句

      $res = array();

      while($row=mysql_fetch_assoc($resource)){

        $res[] = $row;

      }

      return $res;

    }

    public function getDataByApply($n){

      $sql = 'select id,name,description from cp_schools where apply='.$n.'order by id desc';

      $res = self::getResult($sql);

      return $res;

    }

  }

?>

准备工作差不多了,那么开始编写导出mysql数据的代码。创建文件 export.php(utf-8编码):

<?php

$dir = dirname(__FILE__); //查找当前脚本所在路径

require $dir.'/db.php'; //引入mysql操作类文件

require $dir.'/PHPExcel/PHPExcel.php'; //引入PHPExcel

$db = new db($config); //实例化db类 链接数据库

$objPHPExcel = new PHPExcel(); //实例化PHPExcel类,等同于在桌面上新建一个excel

for($i=0;$i<=3;$i++){

  //由于PHPExcel默认会创建一个序号为0的内置Sheet

  if($i>0){

    $objPHPExcel->createSheet(); //创建新的内置表

  }

  $objPHPExcel->setActiveSheetIndex($i); //把新创建的sheet设定为当前活动sheet

  $objSheet = $objPHPExcel->getActiveSheet(); //获取当前活动sheet

  $objSheet->setTitle('难度'.$i); //给当前活动sheet取个名称

  $data = $db->getDataByApply($i); //查询不同难度的院校

  $objSheet->setCellValue('A1','编号')->setCellValue('B1','名称')->setCellValue('C1','描述'); //填充数据

  $j=2;

  foreach($data as $key=>$val){

    $objSheet->setCellValue('A'.$j,$val['id'])->setCellValue('B'.$j,$val['name'])->setCellValue('C'.$j,$val['description']);

    $j++;

  }

}

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel5'); //生成excel文件

$objWriter->save($dir.'/export_mysql.xls'); //保存文件

?>

最后,输出至浏览器:

<?php

  require dirname(__FILE__).'db.config.php'; //引入配置文件

  class db {

    public $conn = null;

    public function __construct($config){ //构造方法 实例化类时自动调用

      $this->conn = mysql_connect($config['host'],$config['username'],$config['password']) or die (mysql_error()); //链接数据库

      mysql_select_db($config['database'],$this->conn) or die (mysql_error()); //选择数据库

      mysql_query('set names'.$config['charset']) or die (mysql_error()); //设定mysql编码

    }

    public function getResult($sql){

      $resource = mysql_query($sql,$this->conn) or die (mysql_error()); //查询sql语句

      $res = array();

      while($row=mysql_fetch_assoc($resource)){

        $res[] = $row;

      }

      return $res;

    }

    public function getDataByApply($n){

      $sql = 'select id,name,description from cp_schools where apply='.$n.'order by id desc';

      $res = self::getResult($sql);

      return $res;

    }

  }

?>

准备工作差不多了,那么开始编写导出mysql数据的代码。创建文件 export.php(utf-8编码):

<?php

$dir = dirname(__FILE__); //查找当前脚本所在路径

require $dir.'/db.php'; //引入mysql操作类文件

require $dir.'/PHPExcel/PHPExcel.php'; //引入PHPExcel

$db = new db($config); //实例化db类 链接数据库

$objPHPExcel = new PHPExcel(); //实例化PHPExcel类,等同于在桌面上新建一个excel

for($i=0;$i<=3;$i++){

  //由于PHPExcel默认会创建一个序号为0的内置Sheet

  if($i>0){

    $objPHPExcel->createSheet(); //创建新的内置表

  }

  $objPHPExcel->setActiveSheetIndex($i); //把新创建的sheet设定为当前活动sheet

  $objSheet = $objPHPExcel->getActiveSheet(); //获取当前活动sheet

  $objSheet->setTitle('难度'.$i); //给当前活动sheet取个名称

  $data = $db->getDataByApply($i); //查询不同难度的院校

  $objSheet->setCellValue('A1','编号')->setCellValue('B1','名称')->setCellValue('C1','描述'); //填充数据

  $j=2;

  foreach($data as $key=>$val){

    $objSheet->setCellValue('A'.$j,$val['id'])->setCellValue('B'.$j,$val['name'])->setCellValue('C'.$j,$val['description']);

    $j++;

  }

}

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel5'); //生成excel文件

browser_export('Excel5','brower_excel03.xls'); //输出到浏览器

$objWriter->save('php://output');

//输出至浏览器 代码 首先找到下载的PHPExcel->Examples->01simple-download-xls.php 或者 01simple-download-xlsx.php

//这里的两个文件分别是教会我们如何将 Excel5 和 Excel2007 输出至浏览器的代码

function browser_export($type,$filename){

  if($type == 'Excel5'){

  // Redirect output to a client’s web browser (Excel5)

  header('Content-Type: application/vnd.ms-excel'); //告诉浏览器将要输出excel03文件

  header('Content-Disposition: attachment;filename="'.$filename.'"'); //告诉浏览器将要输出文件的名称

  header('Cache-Control: max-age=0'); //禁止浏览器缓存

  } else if($type == 'Excel2007') {

  // Redirect output to a client’s web browser (Excel2007)

  header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); //告诉浏览器将要输出excel07文件

  header('Content-Disposition: attachment;filename="'.$filename.'"'); //告诉浏览器将要输出文件的名称

  header('Cache-Control: max-age=0'); //禁止浏览器缓存

  }

}

?>

PHPExcel使用-使用PHPExcel导出文件-导出MySQL数据的更多相关文章

  1. PHP导出MySQL数据到Excel文件

    PHP导出MySQL数据到Excel文件 转载 常会碰到需要从数据库中导出数据到Excel文件,用一些开源的类库,比如PHPExcel,确实比较容易实现,但对大量数据的支持很不好,很容易到达PHP内存 ...

  2. linux下导入、导出mysql数据库命令 下载文件到本地

    一.下载到本地 yum install lrzsz sz filename  下载 rz filename  上传   linux下导入.导出mysql数据库命令 一.导出数据库用mysqldump命 ...

  3. navicat如何导出mysql数据表结构

    我们在创建数据库时会对字段进行设置,比如类型.长度等,如果字段多的话一个个设置非常麻烦,可以从其他地方已有的表导入数据表结构,怎么操作呢?我们拿navicat导出mysql数据表结构为例: 1.点击“ ...

  4. PHP导出MySQL数据到Excel

    经常会碰到需要从数据库中导出数据到Excel文件,用一些开源的类库,比如PHPExcel,确实比较容易实现,但对大量数据的支持很不好,很容易到达PHP内存使用上限.这里的方法是利用fputcsv写CS ...

  5. linux、windows下导入、导出mysql数据库命令

    一.导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径): 1.导出数据和表结构:[不是mysql里的命令]mysqldump -u用户名 -p密码 数据库名 > 数据 ...

  6. linux下导入、导出mysql数据库命令

    一.导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径): 1.导出数据和表结构: mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql #/usr ...

  7. (转)linux下导入、导出mysql数据库命令

    原文链接:http://www.xiaohuai.com/2902 一.导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径):1.导出数据和表结构:mysqldump -u用 ...

  8. linux下导入、导出mysql数据库命令的实现方法

    首先建空数据库 mysql>create database abc; 导入数据库 mysql>use abc; 设置数据库编码 mysql>set names utf8; 导入数据( ...

  9. linux下导入、导出mysql 数据库命令

    一.导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径):1.导出数据和表结构:mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql#/usr/lo ...

随机推荐

  1. 【Python学习】记一次开源博客系统Blog_mini源码学习历程-Flask

    今天准备看看Flask框架,找到一套博客系统源码,拿来学习学习 https://github.com/xpleaf/Blog_mini 演示地址 http://140.143.205.19 技术框架 ...

  2. 【.NetCore学习】ASP.NET Core EF Core2.0 DB First现有数据库自动生成实体Context

    主要参考微软官方文档 https://docs.microsoft.com/en-us/ef/core/get-started/aspnetcore/existing-db Microsoft .NE ...

  3. 【cs229-Lecture12】K-means算法

    上课内容: 无监督学习: K-means聚类算法 混合高斯模型 jensen不等式(用于推导出EM算法的一般形式) EM(Expectation Maximization)算法(最大期望算法) K-m ...

  4. H5 password自动记录取消

    最近完成一个项目时需要取消谷歌浏览器的密码自动填充功能,为了用户方便,大多浏览器都有保存某个网站的密码并在后面再打开这个网站且需要输入密码的时候自动填充.这个功能是方便,但是我们有时候不需要使用这个功 ...

  5. 安卓使用Root权限实现后台模拟全局按键、触屏事件方法(类似按键精灵)

    继续在网上搜索安卓按键模拟(其实那时都不知道用什么关键字好了,能想到的关键字都用遍了,但是搜索出来的结果,都是之前提到的那几个依赖源码环境和系统权限的方案).发现有很多介绍ADB调试,向手机发送按键事 ...

  6. 23种设计模式之中介者模式(Mediator)

    中介者模式是一种对象的行为型模式,通过一个中介对象来封装一系列的对象交互.中介者使得各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互.中介者对象的存在保证了对象结构上的稳 ...

  7. AES加密工具类(对称加密算法)

    import java.nio.charset.Charset; import java.security.Key; import javax.crypto.Cipher;import javax.c ...

  8. 让HTML标签、DIV、SPAN拥有focus事件和blur事件,聚焦和失焦

    DIV和其他普通标签是不具有onfocus和onblur事件的.INPUT和A标签为什么拥有?而DIV和SPAN等普通标签却没有?有时候我们习惯性用键盘的TAB来移动光标,仔细看你会发现,光标只在IN ...

  9. react封装组织架构递归树

    想用react实现一个递归树,但一些框架里面的有些不符合需求,于是自己写了个,功能比较简单,欢迎批评指正.. react实现这样一个组织架构递归树,下级部门的收起和展开,点击部门名称时请求接口获取下级 ...

  10. java8新特性之Optional类

    NullPointException可以说是所有java程序员都遇到过的一个异常,虽然java从设计之初就力图让程序员脱离指针的苦海,但是指针确实是实际存在的,而java设计者也只能是让指针在java ...