一、compser 安裝phpexcel。在windows命令行下輸入:進入網站根目錄,compser phpoffice/phpexcel 二、頁面引入兩個類: use PHPExcel_IOFactory; use PHPExcel; 三、 下面是這個類的一些操做說明。 include ‘PHPExcel.php’; include ‘PHPExcel/Writer/Excel2007.php’; //或者include ‘PHPExcel/Writer/Excel5.php’; 用於輸出.xls的 建立一個excel $objPHPExcel = new PHPExcel(); // 輸出Excel表格到瀏覽器下載 header(‘Content-Type: application/vnd.ms-excel’); header(‘Content-Disposition: attachment;filename=」abc.xls」‘); header(‘Cache-Control: max-age=0’); // If you’re serving to IE 9, then the following may be needed header(‘Cache-Control: max-age=1’); // If you’re serving to IE over SSL, then the following may be needed header(‘Expires: Mon, 26 Jul 1997 05:00:00 GMT’); // Date in the past header(‘Last-Modified: ‘ . gmdate(‘D, d M Y H:i:s’) . ‘ GMT’); // always modified header(‘Cache-Control: cache, must-revalidate’); // HTTP/1.1 header(‘Pragma: public’); // HTTP/1.0 $objWriter = new PHPExcel_Writer_Excel5($objPHPExcel); $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’); 凍結窗口 $objPHPExcel->getActiveSheet()->freezePane(‘A2’); 保護cell $objPHPExcel->getActiveSheet()->getProtection()->setSheet(true); // Needs to be set to true in order to enable any worksheet protection! $objPHPExcel->getActiveSheet()->protectCells(‘A3:E13’, ‘PHPExcel’); 設置格式 // Set cell number formats echo date(‘H:i:s’) . 」 Set cell number formats\n」; $objPHPExcel->getActiveSheet()->getStyle(‘E4’)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE); $objPHPExcel->getActiveSheet()->duplicateStyle( $objPHPExcel->getActiveSheet()->getStyle(‘E4’), ‘E5:E13’ ); 設置寬width // Set column widths $objPHPExcel->getActiveSheet()->getColumnDimension(‘B’)->setAutoSize(true); $objPHPExcel->getActiveSheet()->getColumnDimension(‘D’)->setWidth(12); // 設置單元格高度 // 全部單元格默認高度 $objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(15); // 第一行的默認高度 $objPHPExcel->getActiveSheet()->getRowDimension(‘1’)->setRowHeight(30); 設置font $objPHPExcel->getActiveSheet()->getStyle(‘B1’)->getFont()->setName(‘Candara’); $objPHPExcel->getActiveSheet()->getStyle(‘B1’)->getFont()->setSize(20); $objPHPExcel->getActiveSheet()->getStyle(‘B1’)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle(‘B1’)->getFont()->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE); $objPHPExcel->getActiveSheet()->getStyle(‘B1’)->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_WHITE); $objPHPExcel->getActiveSheet()->getStyle(‘E1’)->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_WHITE); $objPHPExcel->getActiveSheet()->getStyle(‘D13’)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle(‘E13’)->getFont()->setBold(true); 設置align $objPHPExcel->getActiveSheet()->getStyle(‘D11’)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT); $objPHPExcel->getActiveSheet()->getStyle(‘D12’)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT); $objPHPExcel->getActiveSheet()->getStyle(‘D13’)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT); $objPHPExcel->getActiveSheet()->getStyle(‘A18’)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_JUSTIFY); //垂直居中 $objPHPExcel->getActiveSheet()->getStyle(‘A18’)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); 設置column的border $objPHPExcel->getActiveSheet()->getStyle(‘A4’)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN); $objPHPExcel->getActiveSheet()->getStyle(‘B4’)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN); $objPHPExcel->getActiveSheet()->getStyle(‘C4’)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN); $objPHPExcel->getActiveSheet()->getStyle(‘D4’)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN); $objPHPExcel->getActiveSheet()->getStyle(‘E4’)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN); 設置border的color $objPHPExcel->getActiveSheet()->getStyle(‘D13’)->getBorders()->getLeft()->getColor()->setARGB(‘FF993300’); $objPHPExcel->getActiveSheet()->getStyle(‘D13’)->getBorders()->getTop()->getColor()->setARGB(‘FF993300’); $objPHPExcel->getActiveSheet()->getStyle(‘D13’)->getBorders()->getBottom()->getColor()->setARGB(‘FF993300’); $objPHPExcel->getActiveSheet()->getStyle(‘E13’)->getBorders()->getTop()->getColor()->setARGB(‘FF993300’); $objPHPExcel->getActiveSheet()->getStyle(‘E13’)->getBorders()->getBottom()->getColor()->setARGB(‘FF993300’); $objPHPExcel->getActiveSheet()->getStyle(‘E13’)->getBorders()->getRight()->getColor()->setARGB(‘FF993300’); 設置填充顏色 $objPHPExcel->getActiveSheet()->getStyle(‘A1’)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID); $objPHPExcel->getActiveSheet()->getStyle(‘A1’)->getFill()->getStartColor()->setARGB(‘FF808080’); $objPHPExcel->getActiveSheet()->getStyle(‘B1’)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID); $objPHPExcel->getActiveSheet()->getStyle(‘B1’)->getFill()->getStartColor()->setARGB(‘FF808080’); 加圖片 /*實例化插入圖片類*/ $objDrawing = new PHPExcel_Worksheet_Drawing(); /*設置圖片路徑 切記:只能是本地圖片*/ $objDrawing->setPath($img_val); /*設置圖片高度*/ $objDrawing->setWidth(200); $img_height[] = $objDrawing->getHeight(); /*設置圖片要插入的單元格*/ $objDrawing->setCoordinates($img_k[$j].$i); /*設置圖片所在單元格的格式*/ $objDrawing->setOffsetX(10); $objDrawing->setOffsetY(10); $objDrawing->setRotation(0); $objDrawing->getShadow()->setVisible(true); $objDrawing->getShadow()->setDirection(50); $objDrawing->setWorksheet($objPHPExcel->getActiveSheet()); 導出Excel表格例子 <?php $datas = array( array(‘王城’, ‘男’, ’18’, ‘1997-03-13’, ‘18948348924’), array(‘李飛虹’, ‘男’, ’21’, ‘1994-06-13’, ‘159481838924’), array(‘王芸’, ‘女’, ’18’, ‘1997-03-13’, ‘18648313924’), array(‘郭瑞’, ‘男’, ’17’, ‘1998-04-13’, ‘15543248924’), array(‘李曉霞’, ‘女’, ’19’, ‘1996-06-13’, ‘18748348924’), ); include ‘PHPExcel.php’; include ‘PHPExcel/Writer/Excel2007.php’; //或者include ‘PHPExcel/Writer/Excel5.php’; 用於輸出.xls的 // 建立一個excel $objPHPExcel = new PHPExcel(); // Set document properties $objPHPExcel->getProperties()->setCreator(「Phpmarker」)->setLastModifiedBy(「Phpmarker」)->setTitle(「Phpmarker」)->setSubject(「Phpmarker」)->setDescription(「Phpmarker」)->setKeywords(「Phpmarker」)->setCategory(「Phpmarker」); $objPHPExcel->setActiveSheetIndex(0)->setCellValue(‘A1’, ‘名字’)->setCellValue(‘B1’, ‘性別’)->setCellValue(‘C1’, ‘年齡’)->setCellValue(‘D1’, ‘出生日期’)->setCellValue(‘E1’, ‘電話號碼’); // Rename worksheet $objPHPExcel->getActiveSheet()->setTitle(‘Phpmarker-‘ . date(‘Y-m-d’)); // Set active sheet index to the first sheet, so Excel opens this as the first sheet $objPHPExcel->setActiveSheetIndex(0); $objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(15); $objPHPExcel->getActiveSheet()->freezePane(‘A2’); $i = 2; foreach($datas as $data){ $objPHPExcel->getActiveSheet()->setCellValue(‘A’ . $i, $data[0])->getStyle(‘A’.$i)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->setCellValue(‘B’ . $i, $data[1]); $objPHPExcel->getActiveSheet()->setCellValue(‘C’ . $i, $data[2]); $objPHPExcel->getActiveSheet()->setCellValueExplicit(‘D’. $i, $data[3],PHPExcel_Cell_DataType::TYPE_STRING); $objPHPExcel->getActiveSheet()->getStyle(‘D’ . $i)->getNumberFormat()->setFormatCode(「@」); // 設置文本格式 $objPHPExcel->getActiveSheet()->setCellValueExplicit(‘E’. $i, $data[4],PHPExcel_Cell_DataType::TYPE_STRING); $objPHPExcel->getActiveSheet()->getStyle(‘E’ . $i)->getAlignment()->setWrapText(true); $i ; } $objActSheet = $objPHPExcel->getActiveSheet(); // 設置CELL填充顏色 $cell_fill = array( ‘A1’, ‘B1’, ‘C1’, ‘D1’, ‘E1’, ); foreach($cell_fill as $cell_fill_val){ $cellstyle = $objActSheet->getStyle($cell_fill_val); // background // $cellstyle->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setARGB(‘fafa00’); // set align $cellstyle->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT)->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); // font $cellstyle->getFont()->setSize(12)->setBold(true); // border $cellstyle->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN)->getColor()->setARGB(‘FFFF0000’); $cellstyle->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN)->getColor()->setARGB(‘FFFF0000’); $cellstyle->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN)->getColor()->setARGB(‘FFFF0000’); $cellstyle->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN)->getColor()->setARGB(‘FFFF0000’); } $objPHPExcel->getActiveSheet()->getRowDimension(‘1’)->setRowHeight(30); $objActSheet->getColumnDimension(‘A’)->setWidth(18.5); $objActSheet->getColumnDimension(‘B’)->setWidth(23.5); $objActSheet->getColumnDimension(‘C’)->setWidth(12); $objActSheet->getColumnDimension(‘D’)->setWidth(12); $objActSheet->getColumnDimension(‘E’)->setWidth(12); $filename = ‘2015030423’; ob_end_clean();//清除緩衝區,避免亂碼 header(‘Content-Type: application/vnd.ms-excel’); header(‘Content-Disposition: attachment;filename=」‘.$filename.’.xls」‘); header(‘Cache-Control: max-age=0’); // If you’re serving to IE 9, then the following may be needed header(‘Cache-Control: max-age=1’); // If you’re serving to IE over SSL, then the following may be needed header(‘Expires: Mon, 26 Jul 1997 05:00:00 GMT’); // Date in the past header(‘Last-Modified: ‘ . gmdate(‘D, d M Y H:i:s’) . ‘ GMT’); // always modified header(‘Cache-Control: cache, must-revalidate’); // HTTP/1.1 header(‘Pragma: public’); // HTTP/1.0 $objWriter = new PHPExcel_Writer_Excel5($objPHPExcel); $objWriter->save(‘php://output’); ?> 導出中文時,會出現亂碼,記得在Header 以前加 ob_end_clean() 清除緩衝區,避免亂碼