您的位置:首页 > 数据库 > MySQL

从Mysql数据库读取数据批量导入到Excel文件

2013-08-22 10:28 225 查看
本篇和上篇类型,只是顺序发生了变化——从Mysql度数据并保存到Excel中。

导出XLS流程:读取数据库的表->循环记录构建制表符分隔的字段信息->设置header信息->导出文件(下载)到本地。

下面直接分享代码,导出文件outdb.php如下:

require_once './PHPExcel.php';          //路径根据自己实际项目的路径进行设置
//下面是对mysql数据库的连接
require_once './conn.php';

$objPHPExcel = new PHPExcel();  //创建PHPExcel实例

$sql = mysql_query("select * from php_excel order by Id asc");    //查询sql语句
if (!$sql) echo "SQL错误:".mysql_error();

/*--------------设置表头信息------------------*/

$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A1', '编号')
->setCellValue('B1', '学号')
->setCellValue('C1', '姓名')
->setCellValue('D1', '年龄');

/*--------------开始从数据库提取信息插入Excel表中------------------*/

$i=2;                //定义一个i变量,目的是在循环输出数据是控制行数
while($rs = mysql_fetch_array($sql)){
//$rm = iconv("GB2312","UTF-8",$rs[1]);                 //对字符进行编码将数据库里GB2312的中文字符转换成UTF-8格式
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue("A".$i, $rs[0])
->setCellValue("B".$i, $rs[1])
->setCellValue("C".$i, $rs[2])
->setCellValue("D".$i, $rs[3]);

$i++;
}

/*--------------下面是设置其他信息------------------*/
$date = date('Y-m-d-His');

$objPHPExcel->getActiveSheet()->setTitle($date.'sheet');      //设置sheet的名称

$objPHPExcel->setActiveSheetIndex(0);                            //设置sheet的起始位置

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');   //通过PHPExcel_IOFactory的写函数将上面数据写出来
//$objWriter->save(str_replace('.php', '.xls', __FILE__));     //设置以什么格式保存,及保存位置
//$objWriter->save('php://output');

//实现在下载时浏览器和用户的交互
$outputFileName = "jcb-$date.xls";
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header('Content-Disposition:inline;filename="'.$outputFileName.'"');
header("Content-Transfer-Encoding: binary");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Pragma: no-cache");
$objWriter->save('php://output');


至此,从Mysql数据库读取数据批量导入到Excel文件 完成。

学无止境,愿每天都进步一点点~~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: