thinkphp3.2.3集成phpexcel1.8导出设置单元格合并_weixin_30642305的博客-程序员秘密

技术标签: php  

1 到这里下载classes里面的文件

https://github.com/PHPOffice/PHPExcel

2 然后放到 thinkphp的vendor 新建一个文件夹 Phpexcel  然后把文件放进去

3 在封装一个函数

function exportExcel($data, $savefile = null, $title = null, $sheetname = 'sheet1') { 
    vendor('Phpexcel.PHPExcel'); //从PHPMailer目录导class.phpmailer.php类文件
    //import("Vendor.excel.phpexcel"); 
    //若没有指定文件名则为当前时间戳 
    if (is_null($savefile)) { 
        $savefile = time(); 
    } 
    //若指字了excel表头,则把表单追加到正文内容前面去 
    if (is_array($title)) { 
        array_unshift($data, $title); 
    } 
 
    $objPHPExcel = new \PHPExcel(); 
    //Excel内容 
    $head_num = count($data); 
 
    $obj = $objPHPExcel->setActiveSheetIndex(0); 
    $obj->mergeCells('A1:K1'); //第一行
    $obj->setCellValue('A1','');  
    $obj->mergeCells('A2:K2'); //第二行
    $obj->setCellValue('A2','好助教支付清单');  
    $obj->mergeCells('A3:K3'); //第三行
    $obj->setCellValue('A3','用户:北交大出版社    时间:2019-01-12至2019-12-12练习册:200种   支付金额:20000元');  
   
    $objPHPExcel->getActiveSheet()->getStyle('A2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //水平居中 
    $objPHPExcel->getActiveSheet()->getStyle('A3')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //水平居中 
    $objPHPExcel->getActiveSheet()->getStyle('A2')->getFont()->setSize(20);  //设置字体大小
    $objPHPExcel->getActiveSheet()->getStyle('A3')->getFont()->setSize(12);  //设置字体大小
 
    $objPHPExcel->getActiveSheet()->getRowDimension('A2')->setRowHeight(40);//行高
    $objPHPExcel->getActiveSheet()->getRowDimension('A3')->setRowHeight(30);//行高
    
    foreach ($data as $k => $v) { 
        
        $row = $k + 5; //
        $nn = 0; 
 
        foreach ($v as $vv) { 
            $col = chr(65 + $nn); //
            $obj->setCellValue($col . $row, $vv); //列,行,值 
            $nn++; 
        } 
    } 
    //设置列头标题 
    for ($i = 0; $i < 9; $i++) { 
        $alpha = chr(65 + $i); 
        //$objPHPExcel->getActiveSheet()->getColumnDimension($alpha)->setAutoSize(true); //单元宽度自适应  
        $objPHPExcel->getActiveSheet()->getColumnDimension($alpha)->setWidth(20);
        $objPHPExcel->getActiveSheet()->getStyle($alpha . '5')->getFont()->setSize(12);  //设置大小 
        $objPHPExcel->getActiveSheet()->getStyle($alpha . '5')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //水平居中 
        $objPHPExcel->getActiveSheet()->getStyle($alpha . '5')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); //垂直居中 
    } 
 
   $objPHPExcel->getActiveSheet()->setTitle($sheetname); //题目 
   $objPHPExcel->setActiveSheetIndex(0); //设置当前的sheet   
   header('Content-Type: application/vnd.ms-excel'); 
   header('Content-Disposition: attachment;filename="' . $savefile . '.xls"'); //文件名称 
   header('Cache-Control: max-age=0'); 
   $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); //Excel5 Excel2007 
   $objWriter->save('php://output'); 
}

4 然后调用这个函数

        $list=array(0=>array('1','5.3数学练习册','*','23121','23122','34000','140000','100','149900','*'),
                    1=>array('','','founder','*','23123','23124','4','*','*','2019/1/12 21:12:32'),
                    2=>array('','','nick','*','23124','23125','7','100','149900','*')
        );
        $title = array('序号', '练习册名称', '终端用户', '累计数量(二维码)', '个数区间开始', '个数区间结束', '分成', '剩余处理费用', '最终支付', '购买时间'); //设置要导出excel的表头 
        exportExcel($list, 1, $title);

5 然后结果的样子

posted on 2019-07-13 23:18  baker95935 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/baker95935/p/11182595.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30642305/article/details/99228685

智能推荐

SQL中的CONSTRAINT(约束)用法总结_冰凌其的博客-程序员秘密

主要就是增加数据约束的。Oracle中的约束简单介绍约束   Including Constraints    在数据库中使用约束(constraints)是为了在该数据库中实施所谓的&quot;业务规则&quot;其实就是防止非法信息进入数据库,满足管理员和应用开发人员所定义的规则集.    ORACLE使用完整性约束(integrity constraints)防止不合法的数据写入数据库,管理员和...

hihocoder 1164 随机斐波那契 (期望dp)_acraz的博客-程序员秘密

其实最简单的暴力O(n^3)是能过的,,这里主要是提一下对于大数据时怎么处理。对于某个n来说我们要求a_n的期望,考虑一下我们求a_n的时候是随机从a_n前面的n项中抽出两项然后相加得到a_n,那么我们把所有情况分为两类:第一类是所选的两个数中有a_(n-1),第二类是所选的数中没有a_(n-1)。然后分别把两类的期望求出来相加就好了。对于第一类的期望:它就是从a_0加到a_(n-1)的和

Loadrunner测试数据库性能,测试SQL语句性能的脚本例子_sql性能测试脚本_老紫竹的博客-程序员秘密

此代码为Loadrunner 8 通过C API类型的Vuser 测试MySQL性能,或者测试sql语句性能的脚本。这东西很少有人用,网上资料很少,一般测试B/S的很多。/*需要的表结构如下CREATE TABLE `test_data` ( `order_id` BIGINT UNSIGNED NOT NULL COMMENT Order numbers. Must be u

免费馅饼(动态规划)_动态规划免费馅饼解题思路_yinghui970828的博客-程序员秘密

免费馅饼Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 48132    Accepted Submission(s): 16674Problem Description都说天上不会掉馅饼,但有一天gameb

redis slowlog_ball球的博客-程序员秘密

slowlog (阅读原文) 此命令用于读取和重置redis慢请求日志redis slow log概述redis的slow log记录了那些执行时间超过规定时长的请求。执行时间不包括I/O操作(比如与客户端进行网络通信等),只是命令的实际执行时间(期间线程会被阻塞,无法服务于其它请求)。 有两个参数用于配置slow log: slowlog-log-slower-than:设定执行时间,单位是

归档日志满导致数据库挂起故障处理_仗剑天涯'赢在江湖的博客-程序员秘密

归档日志满导致的数据库挂起故障处理当数据库运行在归档模式时,如果没有做好备份策略或归档文件和备份文件放到同一个逻辑区,则偶尔会遇到归档日志满导致系统挂起事故。在这样情况下,重启数据库不仅没有用而且将问题更复杂化(记得重启后在HA模式下的共享存储也不见了,进行了手工mount后进行手工删除部分归档日志)。根据实际环境有不同处理方法,如下是比较通用的处理过程:

随便推点

总结下织梦调各个部分的相关标签_ime33的博客-程序员秘密

未经允许,不得转载!!水平有限,欢迎交流、指正!!在做织梦系统的时候,总是一边看着官方的模板,然后一边写,速度还是比较慢的,虽然是狂复制、粘贴操作!偶尔还得谷歌、度娘下才能调取出我们所需要的织梦内容!今天抽空做个小小的笔记,希望对路过的您有点小小的帮助!一、下的站点关键字{dede:global.cfg_keywords/}二、下站点描述{ded

SQL Server 2012中的user和login_sql server log和用户的区别_wqs1106的博客-程序员秘密

SQL Server中既有user的概念,又有login的概念,这是两个很容易混淆的概念。特别是对熟悉Oracle的用户迷惑性更大。在Oracle中我们只需要一个语句create user test identified by test;就完成了用户创建,然后做一些必要的授权如grant dba,resource,connect to test;我们就可以用test这个用户来访问和控制数据库了。但是

异步调用和回调函数_异步请求与回调函数_kobejayandy的博客-程序员秘密

异步调用在应用程序框架中具有广泛的应用,并且特指多线程情况下。它同Windows的消息循环机制,消息响应,消息队列,事件驱动机制以及设计模式中的观察者模式等都是紧密相关的。       回调函数用于层间协作,上层将本层函数安装在下层,这个函数就是回调,而下层在一定条件下触发回调,例如作为一个驱动,是一个底层,他在收到一个数据时,除了完成本层的处理工作外,还将进行回调,将这个数据交给上层应用层来

R语言阈值模型代码示例_weixin_34026276的博客-程序员秘密

阈值模型用于统计的几个不同区域,而不仅仅是时间序列。一般的想法是,当变量的值超过某个阈值时,过程可能表现不同。也就是说,当值大于阈值时,可以应用不同的模型,而不是当它们低于阈值时。例如,在药物毒理学应用中,可能低于阈值量的所有剂量都是安全的,而当剂量增加到阈值量以上时毒性增加。或者,在动物种群丰度研究中,种群可以缓慢增加至阈值大小,但是一旦种群超过一定大小,则可能迅速减少(由于有限的食物)。阈...

密码验证,密码强度正则表达式_等保密码强度后端正则_Rico_Wuxr的博客-程序员秘密

原文地址:http://blog.sina.com.cn/s/blog_46ee420b0100yi3g.html注:还未验证- -,先记录下来当用户登录网站时,一般要求用户提供登录该网站的用户名称和密码。从某种意义上说,密码的复杂程度越高,用户的信息安全性越高。因此,很多网站在注册用户信息或修改用户密码时,往往会提供一个密码强度的说明,从而提醒用户使用高强度的密码

springboot分页 pageable作参数以及List转换为Page_pageable参数_zydbk123456的博客-程序员秘密

Page与PageablePage是spring data jpa提供的一个接口。包含了部分数据集合以及相关的下一部分数据集合以及数据总数等信息。可以获得当前的页面的记录以及总页数和总数据数,以及数据是否能够再分页。PageImpl是Page接口的实现类。重写了 hashcode(),equals(),toString()方法。Pageable也是spring data jpa提供的接口,包含了分页的信息,页数getPageNumber()和每页的数据数getPageSzie()。以便JPA通过P

推荐文章

热门文章

相关标签