加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php excel操作类phpExcel用法简介

发布时间:2023-05-25 13:09:41 所属栏目:PHP教程 来源:
导读:phpExcel是php中一个excel插件操作类,可以很好的解决在excel各种操作,包括如,读,写,删除,插入等excel操作,下面笔者来给各位同学介绍介绍phpExcel用法吧.下面是总结的几个使用方法,需要先将类进行包含进来,如下代码:

phpExcel是php中一个excel插件操作类,可以很好的解决在excel各种操作,包括如,读,写,删除,插入等excel操作,下面笔者来给各位同学介绍介绍phpExcel用法吧.

下面是总结的几个使用方法,需要先将类进行包含进来,如下代码:

include ‘PHPExcel.php’; 

include ‘PHPExcel/Writer/Excel2007.php’; 

//或者include ‘PHPExcel/Writer/Excel5.php’; 用于输出.xls的 

创建一个excel:$objPHPExcel = new PHPExcel();

保存excel—2007格式:

$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); 

//或者$objWriter = new PHPExcel_Writer_Excel5($objPHPExcel); 非2007格式 

$objWriter->save(”xxx.xlsx”); 

直接输出到浏览器:

$objWriter = new PHPExcel_Writer_Excel5($objPHPExcel); 

header(”Pragma: public”); 

header(”Expires: 0″); 

header(”Cache-Control:must-revalidate, post-check=0, pre-check=0″); 

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

header(”Content-Type:application/vnd.ms-execl”); 

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

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

header(’Content-Disposition:attachment;filename=”resume.xls”‘); 

header(”Content-Transfer-Encoding:binary”); 

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

设置excel的属性

创建人:$objPHPExcel->getProperties()->setCreator(”Maarten Balliauw”);

最后修改人:$objPHPExcel->getProperties()->setLastModifiedBy(”Maarten Balliauw”);

标题:$objPHPExcel->getProperties()->setTitle(”Office 2007 XLSX Test Document”);

题目:$objPHPExcel->getProperties()->setSubject(”Office 2007 XLSX Test Document”);

描述:$objPHPExcel->getProperties()->setDescription(”Test document for Office 2007 XLSX, generated using PHP classes.”);

关键字:$objPHPExcel->getProperties()->setKeywords(”office 2007 openxml php”);

种类:$objPHPExcel->getProperties()->setCategory(”Test result file”);

设置当前的sheet:$objPHPExcel->setActiveSheetIndex(0);

设置sheet的name:$objPHPExcel->getActiveSheet()->setTitle(’Simple’);

设置单元格的值:

$objPHPExcel->getActiveSheet()->setCellValue(’A1′, ‘String’); 

$objPHPExcel->getActiveSheet()->setCellValue(’A2′, 12); 

$objPHPExcel->getActiveSheet()->setCellValue(’A3′, true); 

$objPHPExcel->getActiveSheet()->setCellValue(’C5′, ‘=SUM(C2:C4)’); 

$objPHPExcel->getActiveSheet()->setCellValue(’B8′, ‘=MIN(B2:C5)’); 

合并单元格:$objPHPExcel->getActiveSheet()->mergeCells(’A18:E22′);

分离单元格:$objPHPExcel->getActiveSheet()->unmergeCells(’A28:B28′);

生成Excel常用方法:

<? 

//设置PHPExcel类库的include path  

set_include_path('.'. PATH_SEPARATOR .  

'D:ZealPHP_LIBS' . PATH_SEPARATOR .  

get_include_path()); 

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'); 

?> 

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!