ThinkPHP中调用PHPExcel的实现代码


Posted in PHP onApril 08, 2017

核心代码:

//引入PHPExcel
vendor('PHPExcel.PHPExcel');

// Create new PHPExcel object
$objPHPExcel = new PHPExcel();

//设置文档属性
$objPHPExcel->getProperties()
    ->setCreator("web100.cc")
    ->setLastModifiedBy("web100.cc")
    ->setTitle("Office 2007 XLSX Test Document")
    ->setSubject("Office 2007 XLSX Test Document")
    ->setDescription("Test document generated using PHP classes.")
    ->setKeywords("office 2007 openxml php")
    ->setCategory("Test result file");
    
//设置当前活动的sheet
$objPHPExcel->setActiveSheetIndex(0);

//选定当前Sheet
$objActSheet = $objPHPExcel->11getActiveSheet();
 
//设置sheet名字
$objActSheet->setTitle('phpexcel demo');
 
//设置默认行高
$objActSheet->getDefaultRowDimension()->setRowHeight(15);
 
//由PHPExcel根据传入内容自动判断单元格内容类型
$objActSheet->setCellValue('A1', "Firstname");
$objActSheet->setCellValue('B1', "Lastname");
$objActSheet->setCellValue('C1', "Phone");
$objActSheet->setCellValue('D1', "Fax");
$objActSheet->setCellValue('E1', "Address");
$objActSheet->setCellValue('F1', "ZIP");
$objActSheet->setCellValue('G1', "DATE");
 
 
$objActSheet->setCellValueByColumnAndRow(0, 8, 'firstname');
$objActSheet->setCellValueByColumnAndRow(1, 8, 'lastname');
 
 
// 单元格填充值
$objActSheet->setCellValue('A2', "小风");
$objActSheet->setCellValue('B2', "wang");

//设置列宽
$objActSheet->getColumnDimension('C')->setWidth('20');
 
 
// 设置行高
$objActSheet->getRowDimension('9')->setRowHeight(20); //第9行

// 设置字体
$objActSheet->getStyle('A1')->getFont()->setName('宋体');
// 字号
$objActSheet->getStyle('A1')->getFont()->setSize(12);
// 加粗
$objActSheet->getStyle('A1')->getFont()->setBold(true);

//说明:$objActSheet->getStyle('A1:G10'),可以通过这种方式来选择一片单元格!

// 设置单元格格式
$objActSheet->getCell('C2')->setValueExplicit('861391327543258', PHPExcel_Cell_DataType::TYPE_NUMERIC);
 
// 日期
$objActSheet->setCellValue('G2', '2008-12-31');
$objActSheet->getStyle('G2')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDDSLASH);
 
// 时间戳
$time = gmmktime(0,0,0,12,31,2008); // int(1230681600)
$objActSheet->setCellValue('G3', PHPExcel_Shared_Date::PHPToExcel($time));
$objActSheet->getStyle('G3')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDDSLASH);
 
// url
$objActSheet->setCellValue('G11', 'www.spalybow.com');
$objActSheet->getCell('G11')->getHyperlink()->setUrl('http://www.spalybow.com');
 
// 另一个sheet
$objActSheet->setCellValue('G12', 'sheetb');
$objActSheet->getCell('G12')->getHyperlink()->setUrl("sheet://'sheetb'!A1");
 
// 水平居上
$objActSheet->getStyle('A9:B9')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_TOP);
 
// 单元格换行
$objActSheet->getStyle('G2:G3')->getAlignment()->setWrapText(true);
 
// 合并
$objActSheet->mergeCells('A18:E22');
 
 
// 隐藏D列
$objActSheet->getColumnDimension('D')->setVisible(false);
 
//
$objActSheet->getColumnDimension('E')->setOutlineLevel(1);
$objActSheet->getColumnDimension('E')->setVisible(false);
$objActSheet->getColumnDimension('F')->setOutlineLevel(1);
$objActSheet->getColumnDimension('F')->setVisible(false);
$objActSheet->getColumnDimension('F')->setCollapsed(true);
 
// 固定第一行
$objActSheet->freezePane('A2');
 
// 保护工作表
$objActSheet->getProtection()->setPassword('PHPExcel');
$objActSheet->getProtection()->setSheet(true);
$objActSheet->getProtection()->setSort(true);
$objActSheet->getProtection()->setInsertRows(true);
$objActSheet->getProtection()->setFormatCells(true);
 
//设置边框
$sharedStyle1 = new PHPExcel_Style();
$sharedStyle1->applyFromArray(
  array('borders' => array(
                'left'    => array('style' => PHPExcel_Style_Border::BORDER_MEDIUM)
              )
     ));
$objActSheet->setSharedStyle($sharedStyle1, "B1:B10");
 
// 创建一个新的工作表
$objWorksheet1 = $objPHPExcel->createSheet();
$objWorksheet1->setTitle('sheetb');
 
 
$objPHPExcel->setActiveSheetIndex(1);
 
 
// 创建一个图片
$gdImage = @imagecreatetruecolor(200, 20) or die('Cannot Initialize new GD image stream');
$textColor = imagecolorallocate($gdImage, 255, 255, 255);
imagestring($gdImage, 1, 5, 5, 'Created with PHPExcel (c1gstudio.com)', $textColor);
 
// 把创建的图片添加到工作表
$objDrawing = new PHPExcel_Worksheet_MemoryDrawing();
$objDrawing->setName('Sample image');
$objDrawing->setDescription('Sample image');
$objDrawing->setImageResource($gdImage);
$objDrawing->setRenderingFunction(PHPExcel_Worksheet_MemoryDrawing::RENDERING_JPEG);
$objDrawing->setMimeType(PHPExcel_Worksheet_MemoryDrawing::MIMETYPE_DEFAULT);
$objDrawing->setHeight(36);
$objDrawing->setWorksheet($objActSheet);
 
$objPHPExcel->setActiveSheetIndex(0);
 
// 保存
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('testexcel'.time().'.xls');
PHP 相关文章推荐
PHP合并数组+与array_merge的区别分析
Aug 01 PHP
探讨各种PHP字符串函数的总结分析
Jun 05 PHP
PHP验证码函数代码(简单实用)
Sep 29 PHP
PHP入门之常量简介和系统常量
May 12 PHP
PHP实现绘制3D扇形统计图及图片缩放实例
Oct 01 PHP
初识laravel5
Mar 02 PHP
php实现修改新闻时删除图片的方法
May 12 PHP
PHP微信开发之微信消息自动回复下所遇到的坑
May 09 PHP
php字符串操作针对负值的判断分析
Jul 28 PHP
PHP实时统计中文字数和区别
Feb 28 PHP
php实现的顺序线性表示例
May 04 PHP
基于Laravel-admin 后台的自定义页面用法详解
Sep 30 PHP
yii框架无限极分类的实现方法
Apr 08 #PHP
PHP下载远程图片的几种方法总结
Apr 07 #PHP
POST一个JSON格式的数据给Restful服务实例详解
Apr 07 #PHP
详谈配置phpstorm完美支持Codeigniter(CI)代码自动完成(代码提示)
Apr 07 #PHP
php 根据自增id创建唯一编号类
Apr 06 #PHP
php及codeigniter使用session-cookie的方法(详解)
Apr 06 #PHP
浅谈php(codeigniter)安全性注意事项
Apr 06 #PHP
You might like
PHP extract 将数组拆分成多个变量的函数
2010/06/30 PHP
ThinkPHP模版引擎之变量输出详解
2014/12/05 PHP
Nigma vs Liquid BO3 第一场2.13
2021/03/10 DOTA
麦鸡的TAB切换功能结合了javascript和css
2007/12/17 Javascript
JavaScript为对象原型prototype添加属性的两种方式
2010/08/01 Javascript
js运动框架_包括图片的淡入淡出效果
2013/05/11 Javascript
一个简单的jquery进度条示例
2014/04/28 Javascript
完美兼容IE,chrome,ff的设为首页、加入收藏及保存到桌面js代码
2014/12/17 Javascript
面向切面编程(AOP)的理解
2015/05/01 Javascript
jQuery给元素添加样式的方法详解
2015/12/30 Javascript
全面了解javascript中的错误处理机制
2016/07/18 Javascript
JavaScript String(字符串)对象的简单实例(推荐)
2016/08/31 Javascript
基于JavaScript实现右键菜单和拖拽功能
2016/11/28 Javascript
巧用Javascript的逻辑运算符
2016/12/02 Javascript
js实现右键自定义菜单
2016/12/03 Javascript
利用transition实现文字上下抖动的效果
2017/01/21 Javascript
JS实现基于拖拽改变物体大小的方法
2018/01/23 Javascript
jQuery实现常见的隐藏与展示列表效果示例
2018/06/04 jQuery
JavaScript 判断对象中是否有某属性的常用方法
2018/06/14 Javascript
BootStrap table实现表格行拖拽效果
2018/12/01 Javascript
webpack常用构建优化策略小结
2019/11/21 Javascript
[00:12]2018DOTA2亚洲邀请赛 Somnus丶M出阵单挑
2018/04/06 DOTA
[47:26]完美世界DOTA2联赛 LBZS vs Forest 第二场 11.07
2020/11/09 DOTA
使用Python的package机制如何简化utils包设计详解
2017/12/11 Python
python数据处理 根据颜色对图片进行分类的方法
2018/12/08 Python
python爬取微信公众号文章的方法
2019/02/26 Python
后端开发使用pycharm的技巧(推荐)
2020/03/27 Python
Pytorch使用PIL和Numpy将单张图片转为Pytorch张量方式
2020/05/25 Python
基于Python制作一副扑克牌过程详解
2020/10/19 Python
Baracuta官方网站:Harrington夹克,G9,G4,G10等
2018/03/06 全球购物
幼儿园元旦亲子活动方案
2014/02/17 职场文书
大宝sod蜜广告词
2014/03/21 职场文书
社区服务活动总结
2014/05/07 职场文书
大三学年自我鉴定范文(3篇)
2014/09/28 职场文书
村党的群众路线教育实践活动工作总结
2014/10/25 职场文书
Python字符串的转义字符
2022/04/07 Python