thinkphp整合系列之phpexcel生成生成excel文件

摘要:
在后台管理中会经常需要将数据生成excel表格的;php生成excel有两种方案;一种是通过phpexcel生成xls格式的表格文件;另一种则直接通过逗号换行生成csv格式的表格文件;这里先讲解thinkphp整合phpexcel的过程;示例项目:http://git.oschina.net/shuaibai123/thinkphp-bjyadmin一:导入phpexcel/ThinkPHP/Li

在后台管理中会经常需要将数据生成excel表格的;

php生成excel有两种方案;

一种是通过phpexcel生成xls格式的表格文件;

另一种则直接通过逗号换行生成csv格式的表格文件;

这里先讲解thinkphp整合phpexcel的过程;

示例项目:http://git.oschina.net/shuaibai123/thinkphp-bjyadmin

一:导入phpexcel

/ThinkPHP/Library/Vendor/PHPExcel

二:生成excel的函数

/**
 * 数组转xls格式的excel文件
 * @param  array  $data      需要生成excel文件的数组
 * @param  string $filename  生成的excel文件名
 *      示例数据:
        $data = array(
            array(NULL, 2010, 2011, 2012),
            array('Q1',   12,   15,   21),
            array('Q2',   56,   73,   86),
            array('Q3',   52,   61,   69),
            array('Q4',   30,   32,    0),
           );
 */
function create_xls($data,$filename='simple.xls'){
    ini_set('max_execution_time', '0');
    Vendor('PHPExcel.PHPExcel');
    $filename=str_replace('.xls', '', $filename).'.xls';
    $phpexcel = newPHPExcel();
    $phpexcel->getProperties()
        ->setCreator("Maarten Balliauw")
        ->setLastModifiedBy("Maarten Balliauw")
        ->setTitle("Office 2007 XLSX Test Document")
        ->setSubject("Office 2007 XLSX Test Document")
        ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
        ->setKeywords("office 2007 openxml php")
        ->setCategory("Test result file");
    $phpexcel->getActiveSheet()->fromArray($data);
    $phpexcel->getActiveSheet()->setTitle('Sheet1');
    $phpexcel->setActiveSheetIndex(0);
    header('Content-Type: application/vnd.ms-excel');
    header("Content-Disposition: attachment;filename=$filename");
    header('Cache-Control: max-age=0');
    header('Cache-Control: max-age=1');
    header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); //Date in the past
    header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); //always modified
    header ('Cache-Control: cache, must-revalidate'); //HTTP/1.1
    header ('Pragma: public'); //HTTP/1.0
    $objwriter = PHPExcel_IOFactory::createWriter($phpexcel, 'Excel5');
    $objwriter->save('php://output');
    exit;
}

三:调用示例

$data = array(
    array(NULL, 2010, 2011, 2012),
    array('Q1',   12,   15,   21),
    array('Q2',   56,   73,   86),
    array('Q3',   52,   61,   69),
    array('Q4',   30,   32,    0),
   );
create_xls($data);

为了不打乱整合系列的队形;

生成csv格式的表格就等最后再写了;

白俊遥博客

本文为白俊遥原创文章,转载无需和我联系,但请注明来自白俊遥博客http://baijunyao.com

免责声明:文章转载自《thinkphp整合系列之phpexcel生成生成excel文件》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇第十章 数组和指针redis 常用操作下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

vbscript 中对excel常见操作

 vbs 对excel的操作 删除、修改单元格,设置字体、背景色dim oExcel,oWb,oSheet Set oExcel= CreateObject("Excel.Application") Set oWb = oExcel.Workbooks.Open("E:其他新装电话表.xls") Set oSheet = oWb.Sheets("Sheet...

用python读取带密码的excel文件中的数据

用python读取带密码的excel文件中的数据,程序代码如下: #filename:readingxls.py ''' 此程序的作用为:用python读取带密码的excel文件中的数据。 首先通过pip安装xlrd第三方库 pip3 install xlrd 请输入excel文件路径:D:x1.xls ''' import xlrd path=input...

从excel导入数据时显现进度条用java导入Excel数据到数据库(实时进度条)

导入数据的步骤如下:   一:先上传所导入库EXCEL    二:分析EXCEL并导入 新增时间和速度功能 由于之前的版本是通过session传递实现进度,在集群模式下就出现了问题。详见 http://www.cnblogs.com/interdrp/p/5670854.html 2016-07-14更新支持Spring 4.3.1.REL...

接口自动化---简单的数据驱动框架ATP(基于excel)

数据驱动测试:根据数据进行测试。将用例写入excel文件,用代码读取文件中的数据,从而实现自动化测试。 自动化框架实现步骤: 1、获取用例2、调用接口3、校验结果4、发送测试报告5、异常处理6、日志一、首先准备好用例 在excel文件中用例写好,格式如下:数据一定要填写正确。 二、编写框架结构 ATP框架结构搭建:lib目录下放一些处理操作,logs目录...

Asp.net程序中用NPOI生成标准Excel报表,导入导出一应俱全

  上班第一份工作就是做程序数据的导入导出,听起来似乎挺Easy的,开始我也这样认为,但是在实际操作中却不同了...   以往的导出数据是用HTML标签拼接成Table,然后在一行一列的显示成Excel,其实不然,这种Excel是HTML版本的Excel,并不是标准的Excel,所以如果我们把刚导出的数据进行修改保存然后接着导入来更新数据库中的数据就no、...

jsp页面上传excel表格,后台java代码获取并解析

前台body部分: js部分: java代码:action层代码  这个是解决显示的数字带有.0的问题的方案 要有这三个的getting和setting方法  自己上传的excel表格的内容的属性 我的excel表格是这样的:(注意excel表格后缀名是.XLSX) 我这只是获取前台上传的excel表格内容 并没有传入数据库 ,也没有做前台ex...