使用PHP导出数据库内容到Excel表格
2017-04-11 15:36
363 查看
使用PHP导出数据库内容到Excel表格
首先根据需求要分为用户信息,商家信息,团单信息,优惠券信息,订单信息导出,我是用的下拉列表通过onchange事件执行ajax请求到控制器处理,之后输出到视图层,如下:
控制器部分
表单提交后的控制器
最后执行导出的函数
首先根据需求要分为用户信息,商家信息,团单信息,优惠券信息,订单信息导出,我是用的下拉列表通过onchange事件执行ajax请求到控制器处理,之后输出到视图层,如下:
<select id="downtype" name="downtype" onchange="ajaxchangetype()"> <option value="0">--请选择--</option> <?php if(isset($type)){foreach($type as $k => $v){?> <!--下载的分类是从配置文件加载进来的--> <option value="<?php echo $k?>"><?php echo $v?></option> <?php }}?> </select> <script type="text/javascript"> function ajaxchangetype() { var type = $("#downtype").val(); $.ajax({ url:'', type:'post', async:true, data:{ type:type, }, dataType:'text', success:function(data){ if(isNaN(data)) { $("#citylist").html(data); $("#down").html("<input type='submit' class='formbutton' value='下载'>"); }else { window.location.reload(); } }, }) } </script>
控制器部分
//获取所有城市和地区 $allcities = Category::getCategoryList('city'); foreach($allcities as $k=> $v) { $allcities[$k]['child'] = Category::getCategoryList('area', $v['id']); } $list = []; //把用来显示城市联动的html都存进$list中 foreach($allcities as $k => $v) { $list[] = "<option value='".$v['id']."'>".$v['name']."</option>"; foreach($v['child'] as $v2){ $list[] = "<option value='".$v2['id']."'>|---".$v2['name']."</option>"; } } //前台通过onchange事件传不同的参数进这个方法,对每个参数进行处理后通过ajax显示到视图 $datalist = "用户ID:<input type='number' name='#'/><br><br>城市列表:<select id='#' name='#'><option value='0'>全部地区</option>".implode($list)."</select>"; exit($datalist); //通过switch case 对不同的参数处理,就不一一列举了
表单提交后的控制器
case "partner": //商家信息下载 if(!empty($_POST['partnername'])){$where['你的数据库字段名'] = $_POST['partnername'];} if(!empty($_POST['cityid'])){$where['你的数据库字段名'] = $_POST['cityid'];} //根据表单提交的值到相应的model查询,返回数据 if(empty($where)) { $partnerlist = Partner::getPartnersDownload();//进入你的模型取出需要的数据 }else { $partnerlist = Partner::getPartnersDownload($where); } if(empty($partnerlist)) { exit("未找到商家信息"); } //配置excel的列表头如 $kn = array('id' => '商家ID','name' => '商家名称')等; //导出文件的文件名,我习惯是一个字符串_时间的格式 $name = "你喜欢就好_".date('Ymd'); down_excel($partnerlist, $kn, $name);//执行导出函数 break;
最后执行导出的函数
/** * 数据导出到Excel * @param [arr] $data 导出数据 * @param [arr] $keynames 列表头 * @param [string] $name 文件名 * @param [string] $index 控制excel起始ID */ function down_excel($data, $keynames, $name,$index=0){ $xls[] = "<html><meta http-equiv=content-type content=\"text/html; charset=UTF-8\"><body><table border='1'>"; $xls[] = "<tr><th>ID</th><th>" . implode("</th><th>", array_values($keynames)) . '</th></tr>'; //输出excel列表头 foreach($data As $o){ $line = array(++$index); foreach($keynames AS $k=>$v){ $line[] = $o[$k]; } $xls[] = '<tr><td>'. implode("</td><td>", $line) . '</td></tr>'; //通过循环输出内容 } $xls[] = '</table></body></html>'; $xls = join("\r\n", $xls); header('Content-Disposition: attachment; filename="'.$name.'.xls"'); //生成文件 die(mb_convert_encoding($xls,'UTF-8','UTF-8')); //字符编码转换 }
相关文章推荐
- 利用npoi导出数据库内容到excel表格
- Yii框架使用PHPExcel扩展从数据库导出excel
- 用 PHP 导出 MySQL 数据库内容为 .sql 文件
- 使用PHP向Mysql数据库插入信息,页面中文内容显示正常,但在数据库里却是乱码,这个怎么解决?
- [php] thinkphp使用csv导出excel表格
- 使用原生PHP导出Excel表格方法实例分享
- Aspose.Words使用模板导出数据库中图片内容
- 关于 jsp servlet 将Excel表格内容写进数据库,将数据库导出到Excel中。(二)
- PHP使用外部命令导出数据库,备份到服务器并下载到本地
- php使用mysqldump命令导出数据文件内容为空的问题
- 使用的php获取数据库数据导出到页面
- php使用mysqldump命令导出数据 文件内容为空 的解决(密码不能为空)
- 关于 jsp servlet 将Excel表格内容写进数据库,将数据库导出到Excel中。(一)
- PHP使用外部命令导出数据库,备份到服务器并下载到本地
- 项目实训涉及的获取数据库数据,导出生成Excel表格(使用Nutz框架)
- 使用NPOI将数据库里信息导出Excel表格并提示用户下载
- php使用exec函数导入导出数据库
- 用php将数据库中数据导出成excel表格
- 在Yii框架中使用PHPExcel扩展从数据库导出excel文件功能的实现
- 关于 jsp servlet 将Excel表格内容写进数据库,将数据库导出到Excel中。(一)