分享java帶來的快樂

          我喜歡java新東西

          php生成excel

          <?php

          include 'Lib/PhpExcel/PHPExcel.php';
          include 'Lib/PhpExcel/PHPExcel/Writer/Excel5.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');


          //添加一個新的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:aplication/vnd.ms-excel');
          header("Content-Disposition: attachment; filename=out.xls");
          $objWriter->save('php://output');
          ?>  

          posted on 2011-03-08 17:57 強強 閱讀(403) 評論(0)  編輯  收藏 所屬分類: php

          主站蜘蛛池模板: 清镇市| 清水河县| 永兴县| 广宗县| 云林县| 山东省| 安西县| 巴彦淖尔市| 辽阳市| 比如县| 松溪县| 揭西县| 通海县| 澄江县| 徐闻县| 桑植县| 遂平县| 拜泉县| 丹江口市| 辉县市| 辉南县| 安康市| 孝昌县| 阿拉善左旗| 濮阳市| 阿坝| 郁南县| 循化| 水富县| 蒙城县| 恩平市| 邢台县| 无锡市| 封开县| 彭水| 鄂托克前旗| 聂拉木县| 灵丘县| 兴隆县| 田阳县| 从化市|