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无限分类(树形类)
Sep 28 PHP
PHP PDOStatement:bindParam插入数据错误问题分析
Nov 13 PHP
php中url函数介绍及使用示例
Feb 13 PHP
PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等)
Apr 21 PHP
destoon实现调用自增数字从1开始的方法
Aug 21 PHP
PHP嵌套输出缓冲代码实例
May 12 PHP
php实现随机生成易于记忆的密码
Jun 19 PHP
PHP中SERIALIZE和JSON的序列化与反序列化操作区别分析
Oct 11 PHP
Yii 2.0在Grid中格式化时间方法示例
Jun 06 PHP
PHP基于DOMDocument解析和生成xml的方法分析
Jul 17 PHP
Laravel 将数据表的数据导出,并生成seeds种子文件的方法
Oct 09 PHP
PhpStorm2020 + phpstudyV8 +XDebug的教程详解
Sep 17 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
iis下php mail函数的sendmail配置方法(官方推荐)
2012/04/25 PHP
解析PHP对现有搜索引擎的调用
2013/06/25 PHP
php判断当前操作系统类型
2015/10/28 PHP
php实现xml与json之间的相互转换功能实例
2016/07/07 PHP
PHP实现的简单适配器模式示例
2017/06/22 PHP
php封装db类连接sqlite3数据库的方法实例
2017/12/19 PHP
Apache+PHP+MySQL搭建PHP开发环境图文教程
2020/08/06 PHP
jquery中dom操作和事件的实例学习 下拉框应用
2011/12/01 Javascript
中文字符串截取的js函数代码
2013/04/17 Javascript
jquery中文乱码的多种解决方法
2013/06/21 Javascript
JQuery给网页更换皮肤的方法
2015/05/30 Javascript
javascript对象的创建和访问
2016/03/08 Javascript
JQuery的常用选择器、过滤器、方法全面介绍
2016/05/25 Javascript
javascript计算对象长度的方法
2017/10/25 Javascript
Angular实现的简单定时器功能示例
2017/12/28 Javascript
AngularJS使用Filter自定义过滤器控制ng-repeat去除重复功能示例
2018/04/21 Javascript
vue异步加载高德地图的实现
2018/06/19 Javascript
解决layui checkbox 提交多个值的问题
2019/09/02 Javascript
如何正确理解vue中的key详解
2019/11/02 Javascript
微信小程序实现录制、试听、上传音频功能(带波形图)
2020/02/27 Javascript
vue-cli设置publicPath小记
2020/04/14 Javascript
Node.js 深度调试方法解析
2020/07/28 Javascript
Vue解决echart在element的tab切换时显示不正确问题
2020/08/03 Javascript
JavaScript实现移动端拖动元素
2020/11/24 Javascript
Python ljust rjust center输出
2008/09/06 Python
Tensorflow中的placeholder和feed_dict的使用
2018/07/09 Python
python 3.7.0 下pillow安装方法
2018/08/27 Python
如何理解python面向对象编程
2020/06/01 Python
python实现粒子群算法
2020/10/15 Python
Python爬虫之App爬虫视频下载的实现
2020/12/08 Python
html5构建触屏网站之touch事件介绍
2013/01/07 HTML / CSS
党员年终民主评议的自我评价
2013/11/05 职场文书
导游的职业规划书范文
2013/12/27 职场文书
建筑班组长岗位职责
2014/01/02 职场文书
好媳妇事迹材料
2014/12/24 职场文书
工作表扬信
2015/01/17 职场文书