PHPExcel中的一些常用方法汇总


Posted in Javascript onJanuary 23, 2015

PHPExcel 是相当强大的 MS Office Excel 文档生成类库,当需要输出比较复杂格式数据的时候,PHPExcel 是个不错的选择。不过其使用方法相对来说也就有些繁琐。列举以记之。

<?

//设置PHPExcel类库的include path

set_include_path('.'. PATH_SEPARATOR .

                 'D:\Zeal\PHP_LIBS' . PATH_SEPARATOR .

                 get_include_path());
/**

 * 以下是使用示例,对于以 //// 开头的行是不同的可选方式,请根据实际需要

 * 打开对应行的注释。

 * 如果使用 Excel5 ,输出的内容应该是GBK编码。

 */

require_once 'PHPExcel.php';
// uncomment

////require_once 'PHPExcel/Writer/Excel5.php';    // 用于其他低版本xls

// or

////require_once 'PHPExcel/Writer/Excel2007.php'; // 用于 excel-2007 格式
// 创建一个处理对象实例

$objExcel = new PHPExcel();
// 创建文件格式写入对象实例, uncomment

////$objWriter = new PHPExcel_Writer_Excel5($objExcel);    // 用于其他版本格式

// or

////$objWriter = new PHPExcel_Writer_Excel2007($objExcel); // 用于 2007 格式

//$objWriter->setOffice2003Compatibility(true);
//*************************************

//设置文档基本属性

$objProps = $objExcel->getProperties();

$objProps->setCreator("Zeal Li");

$objProps->setLastModifiedBy("Zeal Li");

$objProps->setTitle("Office XLS Test Document");

$objProps->setSubject("Office XLS Test Document, Demo");

$objProps->setDescription("Test document, generated by PHPExcel.");

$objProps->setKeywords("office excel PHPExcel");

$objProps->setCategory("Test");
//*************************************

//设置当前的sheet索引,用于后续的内容操作。

//一般只有在使用多个sheet的时候才需要显示调用。

//缺省情况下,PHPExcel会自动创建第一个sheet被设置SheetIndex=0

$objExcel->setActiveSheetIndex(0);


$objActSheet = $objExcel->getActiveSheet();
//设置当前活动sheet的名称

$objActSheet->setTitle('测试Sheet');
//*************************************

//设置单元格内容

//

//由PHPExcel根据传入内容自动判断单元格内容类型

$objActSheet->setCellValue('A1', '字符串内容');  // 字符串内容

$objActSheet->setCellValue('A2', 26);            // 数值

$objActSheet->setCellValue('A3', true);          // 布尔值

$objActSheet->setCellValue('A4', '=SUM(A2:A2)'); // 公式
//显式指定内容类型

$objActSheet->setCellValueExplicit('A5', '847475847857487584', 

                                   PHPExcel_Cell_DataType::TYPE_STRING);
//合并单元格

$objActSheet->mergeCells('B1:C22');
//分离单元格

$objActSheet->unmergeCells('B1:C22');
//*************************************

//设置单元格样式

//
//设置宽度

$objActSheet->getColumnDimension('B')->setAutoSize(true);

$objActSheet->getColumnDimension('A')->setWidth(30);
$objStyleA5 = $objActSheet->getStyle('A5');
//设置单元格内容的数字格式。

//

//如果使用了 PHPExcel_Writer_Excel5 来生成内容的话,

//这里需要注意,在 PHPExcel_Style_NumberFormat 类的 const 变量定义的

//各种自定义格式化方式中,其它类型都可以正常使用,但当setFormatCode

//为 FORMAT_NUMBER 的时候,实际出来的效果被没有把格式设置为"0"。需要

//修改 PHPExcel_Writer_Excel5_Format 类源代码中的 getXf($style) 方法,

//在 if ($this->_BIFF_version == 0x0500) { (第363行附近)前面增加一

//行代码: 

//if($ifmt === '0') $ifmt = 1;

//

//设置格式为PHPExcel_Style_NumberFormat::FORMAT_NUMBER,避免某些大数字

//被使用科学记数方式显示,配合下面的 setAutoSize 方法可以让每一行的内容

//都按原始内容全部显示出来。

$objStyleA5

    ->getNumberFormat()

    ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER);
//设置字体

$objFontA5 = $objStyleA5->getFont();

$objFontA5->setName('Courier New');

$objFontA5->setSize(10);

$objFontA5->setBold(true);

$objFontA5->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE);

$objFontA5->getColor()->setARGB('FF999999');
//设置对齐方式

$objAlignA5 = $objStyleA5->getAlignment();

$objAlignA5->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);

$objAlignA5->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
//设置边框

$objBorderA5 = $objStyleA5->getBorders();

$objBorderA5->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);

$objBorderA5->getTop()->getColor()->setARGB('FFFF0000'); // color

$objBorderA5->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);

$objBorderA5->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);

$objBorderA5->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
//设置填充颜色

$objFillA5 = $objStyleA5->getFill();

$objFillA5->setFillType(PHPExcel_Style_Fill::FILL_SOLID);

$objFillA5->getStartColor()->setARGB('FFEEEEEE');
//从指定的单元格复制样式信息.

$objActSheet->duplicateStyle($objStyleA5, 'B1:C22');


//*************************************

//添加图片

$objDrawing = new PHPExcel_Worksheet_Drawing();

$objDrawing->setName('ZealImg');

$objDrawing->setDescription('Image inserted by Zeal');

$objDrawing->setPath('./zeali.net.logo.gif');

$objDrawing->setHeight(36);

$objDrawing->setCoordinates('C23');

$objDrawing->setOffsetX(10);

$objDrawing->setRotation(15);

$objDrawing->getShadow()->setVisible(true);

$objDrawing->getShadow()->setDirection(36);

$objDrawing->setWorksheet($objActSheet);


//添加一个新的worksheet

$objExcel->createSheet();

$objExcel->getSheet(1)->setTitle('测试2');
//保护单元格

$objExcel->getSheet(1)->getProtection()->setSheet(true);

$objExcel->getSheet(1)->protectCells('A1:C22', 'PHPExcel');


//*************************************

//输出内容

//

$outputFileName = "output.xls";

//到文件

////$objWriter->save($outputFileName);

//or

//到浏览器

////header("Content-Type: application/force-download");

////header("Content-Type: application/octet-stream");

////header("Content-Type: application/download");

////header('Content-Disposition:inline;filename="'.$outputFileName.'"');

////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');
?>
Javascript 相关文章推荐
JS代码格式化和语法着色V2
Oct 14 Javascript
使用jQuery全局事件ajaxStart为特定请求实现提示效果的代码
Dec 30 Javascript
3款实用的在线JS代码工具(国外)
Mar 15 Javascript
js获取php变量的实现代码
Aug 10 Javascript
js实现点小图看大图效果的思路及示例代码
Oct 28 Javascript
js获取时间并实现字符串和时间戳之间的转换
Jan 05 Javascript
jQuery中insertBefore()方法用法实例
Jan 08 Javascript
利用JQuery写一个简单的异步分页插件
Mar 07 Javascript
在 Typescript 中使用可被复用的 Vue Mixin功能
Apr 17 Javascript
微信提示 在浏览器打开 效果实现过程解析
Sep 10 Javascript
微信小程序实现签字功能
Dec 23 Javascript
浅析JavaScript 函数柯里化
Sep 08 Javascript
jQuery操作DOM之获取表单控件的值
Jan 23 #Javascript
使用angular写一个hello world
Jan 23 #Javascript
Javascript中的几种URL编码方法比较
Jan 23 #Javascript
jQuery源码分析之jQuery.fn.each与jQuery.each用法
Jan 23 #Javascript
AngularJS语法详解(续)
Jan 23 #Javascript
Jquery动态替换div内容及动态展示的方法
Jan 23 #Javascript
AngularJS语法详解
Jan 23 #Javascript
You might like
PHP网站提速三大“软”招
2006/10/09 PHP
PHP 年龄计算函数(精确到天)
2012/06/07 PHP
非常精妙的PHP递归调用与静态变量使用
2012/12/16 PHP
php 模拟 asp.net webFrom 按钮提交事件的思路及代码
2013/12/02 PHP
Symfony学习十分钟入门经典教程
2016/02/03 PHP
Yii实现复选框批量操作实例代码
2017/03/15 PHP
PHP实现的一致性Hash算法详解【分布式算法】
2018/03/31 PHP
解密效果
2006/06/23 Javascript
javascript Discuz代码中的msn聊天小功能
2008/05/25 Javascript
Jquery练习之表单验证实现代码
2010/12/14 Javascript
JQuery中的$.getJSON 使用说明
2011/03/10 Javascript
JS中artdialog弹出框控件之提交表单思路详解
2016/04/18 Javascript
AngularJS 单元测试(一)详解
2016/09/21 Javascript
Jil,高效的json序列化和反序列化库
2017/02/15 Javascript
Bootstrap表格制作代码
2017/03/17 Javascript
开源一个微信小程序仪表盘组件过程解析
2019/07/30 Javascript
重置Redux的状态数据的方法实现
2019/11/18 Javascript
使用Python处理Excel表格的简单方法
2018/06/07 Python
Python魔法方法详解
2019/02/13 Python
Django数据库类库MySQLdb使用详解
2019/04/28 Python
Django高级编程之自定义Field实现多语言
2019/07/02 Python
对python 树状嵌套结构的实现思路详解
2019/08/09 Python
利用python在大量数据文件下删除某一行的例子
2019/08/21 Python
python3用urllib抓取贴吧邮箱和QQ实例
2020/03/10 Python
中学教师培训制度
2014/01/31 职场文书
老干部工作先进集体事迹材料
2014/05/21 职场文书
个人向公司借款协议书
2014/10/09 职场文书
运动会搞笑广播稿
2014/10/14 职场文书
社会治安综合治理责任书
2015/01/29 职场文书
Python requests库参数提交的注意事项总结
2021/03/29 Python
PHP 对接美团大众点评团购券(门票)的开发步骤
2021/04/03 PHP
超级详细实用的pycharm常用快捷键
2021/05/12 Python
Vue Element-ui表单校验规则实现
2021/07/09 Vue.js
Java反应式框架Reactor中的Mono和Flux
2021/07/25 Java/Android
JavaScript 对象创建的3种方法
2021/11/17 Javascript
mysql查询结果实现多列拼接查询
2022/04/03 MySQL