近來公司oa項目須要用到phpExcel擴展,整理以下:php
/** * 下載excel模版的方法 */ public function downloadExcelTemplate() { require_once 'extensions/PHPExcel/PHPExcel.php'; require_once 'extensions/PHPExcel/PHPExcel/Writer/Excel2007.php'; require_once 'extensions/PHPExcel/PHPExcel/IOFactory.php'; // 建立一個處理對象實例 $objExcel = new PHPExcel(); //設置文檔基本屬性 $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("kol 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('kol用戶表'); //合併單元格 $objActSheet->mergeCells('A1:P1'); //設置單元格內容 $objActSheet->setCellValue('A1', '填寫要求: 1:請填完整每一個格子的內容,相同內容請複製填寫完整。 2:沒有的數據能夠空着不填寫。 3:價格的單位默認爲「元/條」,廣告頻次單位爲「次/天」,註冊日期,格式爲日期格式; 4:聯繫方式必須嚴格要求是QQ:XXXXXXXX 或 Email:XXXXXXXXXX 或 Phone:XXXXXXXXXXX 之間用「/」分割,之間空格不限制 5:字段的格式詳細要求以下:字段 "一級分類" "二級類型" "認證類型" "平臺分類"'); //字符串內容 $objActSheet->setCellValue('A2', '一級分類'); $objActSheet->setCellValue('B2', '二級分類'); $objActSheet->setCellValue('C2', '帳號名稱'); $objActSheet->setCellValue('D2', '帳號的地址'); $objActSheet->setCellValue('E2', '粉絲數'); $objActSheet->setCellValue('F2', '粉絲級別'); $objActSheet->setCellValue('G2', '認證類型'); $objActSheet->setCellValue('H2', '認證信息'); $objActSheet->setCellValue('I2', '是否精品'); $objActSheet->setCellValue('J2', '平臺分類'); $objActSheet->setCellValue('K2', '註冊日期 '); $objActSheet->setCellValue('L2', '最低價格'); $objActSheet->setCellValue('M2', '最高價格'); $objActSheet->setCellValue('N2', '硬廣報價'); $objActSheet->setCellValue('O2', '軟廣報價'); $objActSheet->setCellValue('P2', '微任務直髮原價'); $objActSheet->setCellValue('Q2', '微任務轉發原價'); $objActSheet->setCellValue('R2', '大客戶微任務價格'); $objActSheet->setCellValue('S2', '稅點(%)'); $objActSheet->setCellValue('T2', '廣告頻次'); $objActSheet->setCellValue('U2', '真實姓名'); $objActSheet->setCellValue('V2', '聯繫方式'); $objActSheet->setCellValue('W2', '個性信息 '); $objActSheet->setCellValue('X2', '備註'); //A1自動換行 $objActSheet ->getStyle('A1')->getAlignment()->setWrapText(true); // 設置行高 $objActSheet->getRowDimension('1')->setRowHeight(100); //設置默認寬度以及對齊方式 $aligment = $objActSheet->getDefaultStyle()->getAlignment(); $objActSheet->getDefaultColumnDimension()->setWidth(12); $aligment->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $aligment->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); $objActSheet->getDefaultRowDimension()->setRowHeight(25);//默認高度 //設置特定單元格寬度 $objActSheet->getColumnDimension('D')->setWidth(17);//url $objActSheet->getColumnDimension('P')->setWidth(20);//微任務直髮原價 $objActSheet->getColumnDimension('Q')->setWidth(20);//微任務轉發原價 $objActSheet->getColumnDimension('R')->setWidth(20);//大客戶微任務價格 $objActSheet->getColumnDimension('V')->setWidth(20);//聯繫方式 //設置寬度 $objStyleA1 = $objActSheet->getStyle('A1'); $objStyleA1->getFont()->setColor( new PHPExcel_Style_Color(PHPExcel_Style_Color::COLOR_RED )); $objStyleA1->getFont()->setBold(true); //設置單元格邊框樣式 $styleThinBlackBorderOutline = array( 'borders'=>array( 'outline'=>array( 'style'=>PHPExcel_Style_Border::BORDER_THICK, //設置border樣式 'color'=>array('argb'=>'#273039'), //設置border顏色 ), ), ); //設置單元格字體和邊框 for ($i=65; $i<89; $i++) { $temp = chr($i); $style = $objActSheet->getStyle("{$temp}2"); $style->getFont()->setBold(true); $style->getFont()->setName('微軟雅黑'); $style->applyFromArray($styleThinBlackBorderOutline); } //保護單元格 $objExcel->getSheet(0)->getProtection()->setSheet(true); $objExcel->getSheet(0)->protectCells('A1', 'PHPExcel'); $outputFileName = "template.xlsx";//生成的文件名 header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header("Content-Disposition: attachment; filename=\"$outputFileName\""); header('Cache-Control: max-age=0'); //建立文件格式寫入對象實例 $objWriter = PHPExcel_IOFactory::createWriter($objExcel, 'Excel2007'); $objWriter->save('php://output'); //文件經過瀏覽器下載 }
上面文件導入,路徑按照要求本身修改。瀏覽器