当前位置: 首页 > 工具软件 > fast-excel > 使用案例 >

php excel 扩展,PHPExcel强大的Excel扩展处理类

姚善
2023-12-01

当对各种报表需要进行Excel导出或其他处理的时候,PHPExcel是一个不错的选择,它对office2007以及office2003能完美支持,解决了各种不兼容问题,那么今天就来介绍一下PHPExcel的使用方法吧,对于一个扩展最简单的理解就是如下步骤:引入->实例->使用。

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

一、使用实例

//保存目录

$file = str_replace('\\','/' , dirname(dirname(__file__)));

$fileCount = strlen($file);

//这里的目录是我的项目路径,其他自行更改

$fileName = substr_replace($file,'web/www/excel/'.$this->xmlFileName,$fileCount-7);

//设置时区为中国

date_default_timezone_set('PRC');

//核心部分

//载入核心库类

require_once('pto/outExcel/PHPExcel.php');

//实例

$objPHPExcel = new PHPExcel();

//设置文档属性 - 连贯操作

$objPHPExcel->getProperties()->setCreator("tieyou Kefu") //设置作者

->setLastModifiedBy("kefu User") //设置最后修改的人

->setTitle("$this->xmlFileName") //设置标题

->setSubject("Office 2007 XLSX Data") //设置主题

->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")//描述

->setKeywords("office 2007 openxml php")//设置关键字

->setCategory("data for Excel");//设置分类

//添加一些数据,并在这里使用一些公式

$objPHPExcel->getActiveSheet()->setCellValue('A5', 'Sum:'); //在Excel A列第5行写入“Sum:”字符串。

$objPHPExcel->getActiveSheet()->setCellValue('B1', 'Range #1') //在B列1行 写入“Range #1”

->setCellValue('B2', 3) //在B列2行 写入 3

->setCellValue('B3', 7) //在B列3行 写入 7

->setCellValue('B4', 13) //在B列4行 写入 13

->setCellValue('B5', '=SUM(B2:B4)'); // 在B列5行 写入Excel原生计算公式“=SUM(B2:B4)”

$objPHPExcel->getActiveSheet()->setCellValue('A7', 'Total of both ranges:'); //在A列7行 写入“Total of both ranges:”

$objPHPExcel->getActiveSheet()->setCellValue('B7', '=SUM(B5:C5)'); //在B列7行 写入Excel原生计算公式“=SUM(B5:C5)”

$objPHPExcel->getActiveSheet()->setCellValue('A8', 'Minimum of both ranges:');//在A列8行 写入 “Minimum of both ranges:”

$objPHPExcel->getActiveSheet()->setCellValue('B8', '=MIN(B2:C4)'); //在A列8行 写入Excel原生计算公式“=MIN(B2:C4)”

$objPHPExcel->getActiveSheet()->setCellValue('A9', 'Maximum of both ranges:'); //在A列9行 写入“Maximum of both ranges:”

$objPHPExcel->getActiveSheet()->setCellValue('B9', '=MAX(B2:C4)'); //在B列9行 写入Excel原生计算公式“=MAX(B2:C4)”

$objPHPExcel->getActiveSheet()->setCellValue('A10', 'Average of both ranges:'); //在A列10行 写入“Average of both ranges:”

$objPHPExcel->getActiveSheet()->setCellValue('B10', '=AVERAGE(B2:C4)');//在B列10行 写入Excel原生计算公式“=AVERAGE(B2:C4)”

//Excel表格的起始页码 0

$objPHPExcel->setActiveSheetIndex(0);

//这个部位是为了实现点击下载至客户端 和 直接保存至服务端文件夹

if($strMakeType == 1){

//保存目录

$file = str_replace('\\','/' , dirname(dirname(__file__)));

$fileCount = strlen($file);

$fileName = substr_replace($file,'web/www/excel/'.$this->xmlFileName,$fileCount-7);

}else{

//下载

header('Content-Type: application/vnd.ms-excel');

header('Content-Disposition: attachment;filename='.$this->xmlFileName);

header('Cache-Control: max-age=0');

}

//以下部分为了让office2007和office2003互相兼容

//兼容office 2007

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');

$objWriter->save(str_replace('.php', '.xlsx', $fileName));

//兼容office 2003

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');

$objWriter->save(str_replace('.php', '.xls', $fileName));

//如果是 点击下载 至客户端

//$objWriter->save('php://output');

至此,最基本的实例已完成,可以从上例看出,对Excel原生支持还是不错的,对于php处理Excel总体来说,PHPExcel是不错的选择。

 类似资料: