PHP导出excel

标签: PHP开发 PHP生成EXcel PHPExcel | 发表时间:2011-06-27 10:23 | 作者:scofield syeye
分享到:
出处:http://www.gosoa.com.cn

最近做一个项目,其中涉及到了数据导成excel的功能。

后来使用了 开源的 PHPExcel  http://phpexcel.codeplex.com/ 目前最新版是1.7.6

PHPExcel 可以生成 .xls 和 .xlsx (office2007)。其封装的方法很全了。

比如设置 excel的title,keywords,description

获得某个sheet,某个列的数据 等等。

具体的文档,查看这里,http://phpexcel.codeplex.com/releases/view/45412 非常详细。

下面是一段简单的示例。

//这里要 include进来 phpexcel类
include ROOT_PATH . 'library/PHPExcel-1.7.6/PHPExcel.PHP';
include ROOT_PATH . 'library/PHPExcel-1.7.6/PHPExcel/Writer/Excel2007.PHP';

class MyExcel {

    public static function makeExcel($title, $data, $excle_name) {
        $exclefile = 'excel/' . date('Y-m-d') . '/' . md5($excle_name) . '.xlsx';

        $Excel = new PHPExcel();
        $Excel->setActiveSheetIndex(0);
        $Excel->getSheet()->setTitle($title);

        $cell_one = $data[0];
        $j = 0;
        foreach ($cell_one as $k => $v) {
            $Excel->getSheet()->setCellValue(self::getCharByNunber($j) . '1', $k);
            $j++;
        }

        $x = 2;
        foreach ($data as $value) {
            $y = 0;
            foreach ($value as $k => $v) {
                $Excel->getSheet()->setCellValue(self::getCharByNunber($y) . $x, $v);
                $y++;
            }
            $x++;
        }

        $objwriter = new PHPExcel_Writer_Excel2007($Excel);
        $objwriter->save($exclefile);
        TMDebugUtils::debugLog('make ' . $exclefile);
        return $exclefile;
    }

    protected static function getCharByNunber($num) {
        $num = intval($num);
        $arr = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',);
        return $arr[$num];
    }

}

//导出用户基本信息
function exportUserBaseInfo() {
    $excelTitle = '用户基本信息';
    $excelFileName = 'userbase';
    $data = array();
    // $rs = ....  这里rs是从db读取的数据
    for ($i = 0; $i < count($rs); $i++) {         $data[$i]['姓名'] = $rs[$i]->name;
        $data[$i]['年龄'] = intval($rs[$i]->age);
        $data[$i]['日期'] = $rs[$i]->date;
    }
    MyExcel::makeExcel($excelTitle, $data, $excelFileName);
}

//导出新闻资讯信息
function exportUserBaseInfo() {
    $excelTitle = '新闻资讯信息';
    $excelFileName = 'news';
    $data = array();
    // $rs = ....  这里rs是从db读取的数据
    for ($i = 0; $i < count($rs); $i++) {         $data[$i]['标题'] = $rs[$i]->title;
        $data[$i]['作者'] = $rs[$i]->author;
        $data[$i]['日期'] = $rs[$i]->date;
        $data[$i]['浏览数'] = floatval($rs[$i]->view_count);
        $data[$i]['被评论数'] = floatval($rs[$i]->comment_count);
    }
    MyExcel::makeExcel($excelTitle, $data, $excelFileName);
}

//end

这里只是简单的生成的xlsx,其他需要读取更复杂的,可以阅读官方的手册,有很详细的说明。

如果不需要保存,直接输出到浏览,如下:

//不用保存,直接输出到浏览器
$objwriter = new PHPExcel_Writer_Excel2007($Excel);
        header("Content-Type: application/force-download");
        header("Content-Type: application/octet-stream");
        header("Content-Type: application/download");
        header('Content-Disposition:inline;filename=temp.xlsx');
        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');

The End

Related posts

  • No related posts.

相关 [php excel] 推荐:

PHP导出excel

- syeye - scofield PHP开发-SEO SEM
最近做一个项目,其中涉及到了数据导成excel的功能. 后来使用了 开源的 PHPExcel  http://phpexcel.codeplex.com/ 目前最新版是1.7.6. PHPExcel 可以生成 .xls 和 .xlsx (office2007). 比如设置 excel的title,keywords,description.

Excel 数据分析

- - ITeye博客
用Excel做数据分析——直方图. 已有 0 人发表留言,猛击->> 这里<<-参与讨论. —软件人才免语言低担保 赴美带薪读研.

Excel高级使用技巧

- demonhunterl - 互联网的那点事
如果直接输入“1/5”,系统会将其变为“1月5日”,解决办法是:先输入“0”,然后输入空格,再输入分数“1/5”. (2) 序列“001”的输入. 如果直接输入“001”,系统会自动判断001为数据1,解决办法是:首先输入“’”(西文单引号),然后输入“001”. 如果要输入“4月5日”,直接输入“4/5”,再敲回车就行了.

学做专业EXCEL图表

- X - 小蚊子乐园
《电脑爱好者》2011年10月版以特别策划的方式大篇幅刊登《谁说菜鸟不会数据分析》节选内容. 《谁说菜鸟不会数据分析》--基于通用的Excel工具,像小说一样通俗易懂的数据分析教程,现在  卓越   京东   当当   China-pub 上可订购. 谁说菜鸟不会数据分析--业内人士联合推荐.

Asp.net操作Excel更轻松

- Bloger - 博客园-首页原创精华区
今天先介绍一个关于导出数据的例子,以Excel为模板.  1.操作Excel的动态链接库(暂时没有下载地址,稍后提供). 2.建立操作动态链接库的共通类,方便调用. 18 ///ExcelHelper 的摘要说明. /// 获取或设置报表模板路径. //TODO: 在此处添加构造函数逻辑. /// 带参ExcelHelper构造函数.

Excel项目管理工具

- - CSDN博客研发管理推荐文章
版权所有,转载请注明出处: http://guangboo.org/2013/10/27/excel-project-management. Excel强大的表格功能在项目管理中同样具有大用处,作者通过在实践中实际运用Excel进行项目管理的经验,简单介绍Excel在项目管理中的应用. 本文主要介绍Excel如何做项目计划和项目进度跟踪,项目计划和项目跟踪是项目周期中最重要的环节,无论是几个月的小项目,还是几年的大项目,计划和进度始终是保证项目正常推进、按时交付的重要手段.

POI Excel导入导出 - milan's

- - 博客园_首页
   基本思路:点击导出后生成临时.xls文件,返回文件名,供用户下载,下载完后删除文件.    带查询的导出(前端EasyUI),如下为导出界面图.   下面为导出按钮绑定的函数:. var exportCondition={};//导出条件.      //按条件进行查询数据,首先我们得到数据的值.

从Excel到微服务

- - 乱象,印迹
Excel很老,Excel很土,Excel一点也不sexy;微服务新,微服务很潮门,微服务很高大上. 那么,Excel和微服务有什么关系. 上个月看了篇文章,The Unbunlding of Excel. 作者认为,对于初创公司(尤其是非“纯IT”初创公司)来说,Excel几乎包办各种工作. 想做轻量级的CRM,可用Excel.

PHP框架 Yaf

- Le - 开源中国社区最新软件
Yaf是一个C语言编写的PHP框架,Yaf 的特点: 用C语言开发的PHP框架, 相比原生的PHP, 几乎不会带来额外的性能开销. 所有的框架类, 不需要编译, 在PHP启动的时候加载, 并常驻内存. 更短的内存周转周期, 提高内存利用率, 降低内存占用率. 支持全局和局部两种加载规则, 方便类库共享.

PHP RFC: 让PHP的foreach支持list

- 三马 - 风雪之隅
本文地址: http://www.laruence.com/2011/07/13/2110.html. 上个月, 终于算加入了PHP developer team, 一直以来最大的障碍就是语言, 现在想起来, 当年真应该更加认真努力的去学习英语.. 得到的第一个任务是: 解决一个feature request, 请求在allow foreach($array as list($a,$b).