php 将数据以excel文件导出
来源:互联网 发布:电子烟入门 知乎 编辑:程序博客网 时间:2024/05/17 01:10
背景:项目中需要支持数据导出功能,查看项目里的导出代码(同事自己写的,没用代码),觉得满足项目里的需求,特收藏。
源码:
/** * 导出搜索日志信息 */ public function exportLogInfo() { // 获取数据信息 $conditions = $this->getConditions(); // 拼装导出数据用sql的条件 $goodsmod = & m('goods'); $body = $goodsmod->db->getAllWithIndex("select search_condition, case search_type WHEN 1 THEN '类目点击' WHEN 2 THEN '关键词搜索' ELSE '' END AS search_type,search_condition_md5, SUM(visit_count) as visit_count,MAX(visit_time) as visit_time from ecm_absearch_log where log_id>0 ".$conditions." GROUP BY search_condition_md5 order by visit_count desc limit 0,5000",'search_condition_md5'); //设置excel标题和文件名 $title = '操作日志导出' . date('YmdHis', time()); $filename = $title . ".xls"; //表头内容 $head = array('关键词', '类型', '请求次数', '最新请求时间'); //生成xml格式数据 echo '<?xml version="1.0" ?> <?mso-application progid="Excel.Sheet"?> <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40"> <Styles> <Style ss:ID="Default" ss:Name="Normal"> <Alignment ss:Vertical="Center"/> <Borders/> <Font x:CharSet="134" ss:Size="10"/> <Interior/> <NumberFormat/> <Protection/> </Style> <Style ss:ID="s1"> <Font ss:Bold="1"/> <Alignment ss:Horizontal="Center"/> <Borders> <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/> <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/> <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/> <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/> </Borders> <Interior ss:Color="#C0C0C0" ss:Pattern="Solid" /> </Style> <Style ss:ID="s2"> <Alignment ss:Horizontal="Center"/> <Borders> <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/> <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/> <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/> <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/> </Borders> </Style> </Styles> <Worksheet ss:Name="'.$title.'"> <Table x:FullColumns="1" x:FullRows="1" ss:DefaultColumnWidth="200" ss:DefaultRowHeight="17.25">'; echo '<Row>'; foreach($head as $value) { echo '<Cell ss:StyleID="s1"><Data ss:Type="String">'.$value.'</Data></Cell>'; } echo '</Row>'; foreach ($body as $row) { echo '<Row>'; unset($row['search_condition_md5']); foreach($row as $value) { echo '<Cell ss:StyleID="s2"><Data ss:Type="String">'.$value.'</Data></Cell>'; } echo '</Row>'; } echo '</Table> </Worksheet> </Workbook>'; //输出到浏览器下载 header("Content-type: application/vnd.ms-excel"); header("Content-Disposition: inline; filename=".$filename); }
1.$body是二位数组,格式:array(array("关键词"=>"","类型"=>"","请求次数"=>"","最新请求时间"=>""),array(array("关键词"=>"","类型"=>"","请求次数"=>"","最新请求时间"=>""))
key值随意定,对应的值和标题顺序保持一致就好(避免导出时内容和标题列不一样)
2.xml中的styles标签里的内容是设置excel表格的外观用
- php 将数据以excel文件导出
- php 将数据 以excel 表格的形式导出
- php将数据导出为Excel
- php将数据库数据导出成Excel
- PHP 将数据导出到Excel
- 将页面数据导出到excel文件
- 将页面数据导出到excel文件
- 如何将数据导出成EXCEL文件
- 将datagridview数据导出为excel文件
- 将DataGirdView数据,导出EXCEL文件
- 将Table数据导出至Excel文件
- 将Excel文件中的数据导出
- poi将数据库数据导出excel文件
- 将数据导出为EXCEL文件
- JAVA程序将数据导出excel文件
- 将列表数据导出为Excel文件
- 将数据导出Excel文件工具类
- C# 将内存中的datatable数据导出为Excel(方法一,以文件流方式导出)
- RabbitVCS : TortoiseSVN 的替代者
- 十句话,助你积极思考
- Jquer hover +animate IE下出现抖动
- js删除数组中的值
- eclise常用快捷键
- php 将数据以excel文件导出
- HDU 4768 二分
- Hbase优化之一
- ios 一行中的文字显示多种颜色
- Magento事务处理
- Android之Handler消息机制
- Android界面视图的类图
- POJ2828:Buy Tickets(线段树单点)
- 避免创建不必要的大对象(把大对象转换为小对象)