博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP导出数据到表格的实例
阅读量:6761 次
发布时间:2019-06-26

本文共 4004 字,大约阅读时间需要 13 分钟。


我发现最近的项目需要导出Excel表的页面非常的多,想来这个也是我们常用的功能了,现在我可以很熟练的导出了,但是记得当时自己第一次导出时还是绕了一些弯路的,那么现在我就来记录下我这次用exshop框架项目下的导出(其实在不同的框架下Excel的导出原理都是差不多的)


前端
导出
控制器
//    导出数据    public function export() {        $result = $this->_oaOrderModel->getAllOrderListForManager($this->store_id, $orderSn=null, $buyer_id=null, $buyer_name=null, $consignee=null, $phone=null, $company_name=null, $status=null, $s_time=null, $e_time=null, $page=null, $listRows=null, $execl=true); //这个是获得数据的代码-model里        $orderList = $result['orderList'];        if (!empty($orderList)) {            $j = 1;            $stmt = array();            foreach ($orderList as $val) {                $stmt[$j]['网站ID'] = $val['store_id'];                $stmt[$j]['订单信息'] = $val['order_sn'];                $stmt[$j]['商品信息'] = $val['inventory_sn_count_chinese'];                $stmt[$j]['工艺选择'] = $val['craft_count_chinese'];                $stmt[$j]['商品总数量'] = $val['real_goods_total_count'];                $stmt[$j]['提交日期'] = date("Y-m-d H:i:s",$val['add_time']);                $stmt[$j]['客户名称'] = $val['company_name'];                $stmt[$j]['联系人'] = $val['consignee'];                $stmt[$j]['联系方式'] = $val['phone_mob'];                $stmt[$j]['订单完成率'] = $val['percentage_complete'];                $stmt[$j]['订单状态'] = $val['statusChinese'];                $j++;            }            $current_path = dirname(__FILE__);            $home_path = dirname($current_path);            require_once ROOT_PATH . '/includes/libraries/PHPExcel.php';            require_once ROOT_PATH . '/includes/libraries/PHPExcel/IOFactory.php';            $objPHPExcel = new PHPExcel(); //这个方法自己下载放到公共方法里            $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")                ->setLastModifiedBy("Maarten Balliauw")                ->setTitle("Office 2007 XLSX Test Document")                ->setSubject("Office 2007 XLSX Test Document")                ->setDescription("Document for Office 2007 XLSX, generated using PHP classes.")                ->setKeywords("office 2007 openxml php")                ->setCategory("Test result file");            // 行高            for ($i = 2; $i <= count($stmt); $i++) {                $objPHPExcel->getActiveSheet()->getRowDimension($i)->setRowHeight(22);            }            foreach ($stmt as $fid => $fval) {                if ($fid == 1) {                    $key = 0;                    foreach ($fval as $title => $first) {                        //如果一级标题                        $objPHPExcel->getActiveSheet()->setCellValue(chr($key + 65) . '1', $title);                        $objPHPExcel->getActiveSheet()->getStyle(chr($key + 65) . '1')->getFont()->setBold(true);       // 加粗                        $key ++;                    }                }                $cid = 0;                $row_id = $fid + 1;                foreach ($fval as $cval) {                    $objPHPExcel->getActiveSheet()->setCellValue(chr($cid + 65) . (string) ($row_id), $cval);                    $cid++;                }            }            $objPHPExcel->setActiveSheetIndex(0);            $objPHPExcel->getActiveSheet()->setTitle('Excel表');            $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');            //$objWriter->save('订单列表详细.xls');            //输出到浏览器            header("Content-Type: application/force-download");            header("Content-Type: application/octet-stream");            header("Content-Type: application/download");            header('Content-Disposition:inline;filename="订单列表.xls"');            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');        }    }
成果图

clipboard.png

clipboard.png

clipboard.png


心得

有时候遇到这些问题可以多思考,多看看它的原理,原理理解了下次做其它的也是会的,但最重要的是要懂得做记录,我们的记忆并没有想象的那么好

注:文章来源雨中笑记录实习期遇到的问题与心得,转载请申明原文

你可能感兴趣的文章
Chapter 6、字符串(二)(1st,Mar.)
查看>>
4-3 求链式表的表长 (10分)
查看>>
[BZOJ 1491][NOI2007]社交网络(Floyd)
查看>>
# 学号 2017-2018-20172309 《程序设计与数据结构》实验1报告
查看>>
OrderOnline——数据库设计(已更新)
查看>>
(四)虚拟存储管理器的页面调度
查看>>
玩转Windows CPU占用时间 ——编程之美 读书笔记1.1
查看>>
苹果官方的图标大小的调整
查看>>
Maven整理
查看>>
观《构建之法》有感
查看>>
maven环境快速搭建(转)
查看>>
Cacti监控mysql数据库服务器实现过程
查看>>
Python高级编程–正则表达式(习题)
查看>>
HDU 5742 It's All In The Mind
查看>>
ubuntu和Windows 下的GIF动图工具
查看>>
percona-toolkit 工具介绍
查看>>
Visual Studio2012使用技巧
查看>>
编程思想
查看>>
在Hadoop伪分布式模式下安装Hive(derby,mysql)
查看>>
经典布局样式
查看>>