使用PHPExcel实现数据批量导出为excel表格
阅读原文时间:2020年10月16日阅读:1

首先需要下载PHPExecel类文件,帮助文档可以参考PHPExcel中文帮助手册|PHPExcel使用方法

下面直接上例子,是我自己写的一个简单的批量导出数据为excel的例子

前台页面 比较简单,就是一个超链接,跳转到处理页面,超链接也可以跟一些参数(看需求)!

导出excel表格

后台Process.php页面

/**
* 批量导出数据
* @param $arr 从数据库查询出来,即要导出的数据
* $name excel表歌名
*/
function expExcel($arr,$name){

require\_once 'PHPExcel.php';  
//实例化  
$objPHPExcel = new PHPExcel();  
/\*右键属性所显示的信息\*/  
 $objPHPExcel->getProperties()->setCreator("zxf")       //作者  
                       ->setLastModifiedBy("zxf")       //最后一次保存者  
                       ->setTitle('数据EXCEL导出')      //标题  
                       ->setSubject('数据EXCEL导出')    //主题  
                       ->setDescription('导出数据')     //描述  
                       ->setKeywords("excel")           //标记  
                      ->setCategory("result file");     //类别

//设置当前的表格  
$objPHPExcel->setActiveSheetIndex(0);  
// 设置表格第一行显示内容  
$objPHPExcel->getActiveSheet()  
    ->setCellValue('A1', '业主姓名')  
    ->setCellValue('B1', '密码')  
    ->setCellValue('C1', '手机号码')  
    ->setCellValue('D1', '地址')  
    //设置第一行为红色字体  
    ->getStyle('A1:D1')->getFont()->getColor()->setARGB(PHPExcel\_Style\_Color::COLOR\_RED);

$key = 1;  
/\*以下就是对处理Excel里的数据,横着取数据\*/  
foreach($arr as $v){

//设置循环从第二行开始  
$key++;  
 $objPHPExcel->getActiveSheet()

             //Excel的第A列,name是你查出数组的键值字段,下面以此类推  
              ->setCellValue('A'.$key, $v\['name'\])  
              ->setCellValue('B'.$key, $v\['pwd'\])  
              ->setCellValue('C'.$key, $v\['phone'\])  
              ->setCellValue('D'.$key, $v\['address'\]);

}  
//设置当前的表格  
$objPHPExcel->setActiveSheetIndex(0);  

   ob_end_clean();     //清除缓冲区,避免乱码
header('Content-Type: application/vnd.ms-excel'); //文件类型
header('Content-Disposition: attachment;filename="'.$name.'.xls"'); //文件名
header('Cache-Control: max-age=0');
header('Content-Type: text/html; charset=utf-8'); //编码
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); //excel 2003
$objWriter->save('php://output');
exit;

}

/***********调用**********************/
header("Content-type:text/html;charset=utf-8");

//链接数据库
$link = @mysql_connect('localhost','root','') or die('连接数据库失败');
mysql_select_db('test',$link);
mysql_query('set names utf8');

//先获取数据
$sql = "select * from house";
$res = mysql_query($sql);
$arr = array();
//把$res=>$arr,把结果集内容转移到一个数组中
while ($row = mysql_fetch_assoc($res)){
$arr[] = $row;
}

//excel表格名
$name = "用户表";

//调用
expExcel($arr,$name)

使用PHPExcel导出数据至此完毕,对于使用PHPExcel导入到数据库可以参看使用PHPExcel实现数据批量上传到数据库

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器