PHPExcel常用方法汇总
生活随笔
收集整理的這篇文章主要介紹了
PHPExcel常用方法汇总
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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');?? ?? ?> ?
?
view plainprint??
轉載于:https://www.cnblogs.com/xingmeng/archive/2012/09/07/2674663.html
總結
以上是生活随笔為你收集整理的PHPExcel常用方法汇总的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 天籁数学——数列篇(1)
- 下一篇: 虚拟社会建设需要“网络社工”助力