好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

php excel操作类phpExcel用法介绍 - php类库

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

查看更多关于php excel操作类phpExcel用法介绍 - php类库的详细内容...

  阅读:41次