PHPExcel常用方法汇总

  1     <?  
  2     //设置PHPExcel类库的include path  
  3     set_include_path('.'. PATH_SEPARATOR .  
  4                      'D:\Zeal\PHP_LIBS' . PATH_SEPARATOR .  
  5                      get_include_path());  
  6       
  7     /** 
  8      * 以下是使用示例,对于以 //// 开头的行是不同的可选方式,请根据实际需要 
  9      * 打开对应行的注释。 
 10      * 如果使用 Excel5 ,输出的内容应该是GBK编码。 
 11      */  
 12     require_once 'PHPExcel.php';  
 13       
 14     // uncomment  
 15     ////require_once 'PHPExcel/Writer/Excel5.php';    // 用于其他低版本xls  
 16     // or  
 17     ////require_once 'PHPExcel/Writer/Excel2007.php'; // 用于 excel-2007 格式  
 18       
 19     // 创建一个处理对象实例  
 20     $objExcel = new PHPExcel();  
 21       
 22     // 创建文件格式写入对象实例, uncomment  
 23     ////$objWriter = new PHPExcel_Writer_Excel5($objExcel);    // 用于其他版本格式  
 24     // or  
 25     ////$objWriter = new PHPExcel_Writer_Excel2007($objExcel); // 用于 2007 格式  
 26     //$objWriter->setOffice2003Compatibility(true);  
 27       
 28     //*************************************  
 29     //设置文档基本属性  
 30     $objProps = $objExcel->getProperties();  
 31     $objProps->setCreator("Zeal Li");  
 32     $objProps->setLastModifiedBy("Zeal Li");  
 33     $objProps->setTitle("Office XLS Test Document");  
 34     $objProps->setSubject("Office XLS Test Document, Demo");  
 35     $objProps->setDescription("Test document, generated by PHPExcel.");  
 36     $objProps->setKeywords("office excel PHPExcel");  
 37     $objProps->setCategory("Test");  
 38       
 39     //*************************************  
 40     //设置当前的sheet索引,用于后续的内容操作。  
 41     //一般只有在使用多个sheet的时候才需要显示调用。  
 42     //缺省情况下,PHPExcel会自动创建第一个sheet被设置SheetIndex=0  
 43     $objExcel->setActiveSheetIndex(0);  
 44       
 45       
 46     $objActSheet = $objExcel->getActiveSheet();  
 47       
 48     //设置当前活动sheet的名称  
 49     $objActSheet->setTitle('测试Sheet');  
 50       
 51     //*************************************  
 52     //设置单元格内容  
 53     //  
 54     //由PHPExcel根据传入内容自动判断单元格内容类型  
 55     $objActSheet->setCellValue('A1', '字符串内容');  // 字符串内容  
 56     $objActSheet->setCellValue('A2', 26);            // 数值  
 57     $objActSheet->setCellValue('A3', true);          // 布尔值  
 58     $objActSheet->setCellValue('A4', '=SUM(A2:A2)'); // 公式  
 59       
 60     //显式指定内容类型  
 61     $objActSheet->setCellValueExplicit('A5', '847475847857487584',   
 62                                        PHPExcel_Cell_DataType::TYPE_STRING);  
 63       
 64     //合并单元格  
 65     $objActSheet->mergeCells('B1:C22');  
 66       
 67     //分离单元格  
 68     $objActSheet->unmergeCells('B1:C22');  
 69       
 70     //*************************************  
 71     //设置单元格样式  
 72     //  
 73       
 74     //设置宽度  
 75     $objActSheet->getColumnDimension('B')->setAutoSize(true);  
 76     $objActSheet->getColumnDimension('A')->setWidth(30);  
 77       
 78     $objStyleA5 = $objActSheet->getStyle('A5');  
 79       
 80     //设置单元格内容的数字格式。  
 81     //  
 82     //如果使用了 PHPExcel_Writer_Excel5 来生成内容的话,  
 83     //这里需要注意,在 PHPExcel_Style_NumberFormat 类的 const 变量定义的  
 84     //各种自定义格式化方式中,其它类型都可以正常使用,但当setFormatCode  
 85     //为 FORMAT_NUMBER 的时候,实际出来的效果被没有把格式设置为"0"。需要  
 86     //修改 PHPExcel_Writer_Excel5_Format 类源代码中的 getXf($style) 方法,  
 87     //在 if ($this->_BIFF_version == 0x0500) { (第363行附近)前面增加一  
 88     //行代码:   
 89     //if($ifmt === '0') $ifmt = 1;  
 90     //  
 91     //设置格式为PHPExcel_Style_NumberFormat::FORMAT_NUMBER,避免某些大数字  
 92     //被使用科学记数方式显示,配合下面的 setAutoSize 方法可以让每一行的内容  
 93     //都按原始内容全部显示出来。  
 94     $objStyleA5  
 95         ->getNumberFormat()  
 96         ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER);  
 97       
 98     //设置字体  
 99     $objFontA5 = $objStyleA5->getFont();  
100     $objFontA5->setName('Courier New');  
101     $objFontA5->setSize(10);  
102     $objFontA5->setBold(true);  
103     $objFontA5->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE);  
104     $objFontA5->getColor()->setARGB('FF999999');  
105       
106     //设置对齐方式  
107     $objAlignA5 = $objStyleA5->getAlignment();  
108     $objAlignA5->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);  
109     $objAlignA5->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);  
110       
111     //设置边框  
112     $objBorderA5 = $objStyleA5->getBorders();  
113     $objBorderA5->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);  
114     $objBorderA5->getTop()->getColor()->setARGB('FFFF0000'); // color  
115     $objBorderA5->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);  
116     $objBorderA5->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);  
117     $objBorderA5->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);  
118       
119     //设置填充颜色  
120     $objFillA5 = $objStyleA5->getFill();  
121     $objFillA5->setFillType(PHPExcel_Style_Fill::FILL_SOLID);  
122     $objFillA5->getStartColor()->setARGB('FFEEEEEE');  
123       
124     //从指定的单元格复制样式信息.  
125     $objActSheet->duplicateStyle($objStyleA5, 'B1:C22');  
126       
127       
128     //*************************************  
129     //添加图片  
130     $objDrawing = new PHPExcel_Worksheet_Drawing();  
131     $objDrawing->setName('ZealImg');  
132     $objDrawing->setDescription('Image inserted by Zeal');  
133     $objDrawing->setPath('./zeali.net.logo.gif');  
134     $objDrawing->setHeight(36);  
135     $objDrawing->setCoordinates('C23');  
136     $objDrawing->setOffsetX(10);  
137     $objDrawing->setRotation(15);  
138     $objDrawing->getShadow()->setVisible(true);  
139     $objDrawing->getShadow()->setDirection(36);  
140     $objDrawing->setWorksheet($objActSheet);  
141       
142       
143     //添加一个新的worksheet  
144     $objExcel->createSheet();  
145     $objExcel->getSheet(1)->setTitle('测试2');  
146       
147     //保护单元格  
148     $objExcel->getSheet(1)->getProtection()->setSheet(true);  
149     $objExcel->getSheet(1)->protectCells('A1:C22', 'PHPExcel');  
150       
151       
152     //*************************************  
153     //输出内容  
154     //  
155     $outputFileName = "output.xls";  
156     //到文件  
157     ////$objWriter->save($outputFileName);  
158     //or  
159     //到浏览器  
160     ////header("Content-Type: application/force-download");  
161     ////header("Content-Type: application/octet-stream");  
162     ////header("Content-Type: application/download");  
163     ////header('Content-Disposition:inline;filename="'.$outputFileName.'"');  
164     ////header("Content-Transfer-Encoding: binary");  
165     ////header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");  
166     ////header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");  
167     ////header("Cache-Control: must-revalidate, post-check=0, pre-check=0");  
168     ////header("Pragma: no-cache");  
169     ////$objWriter->save('php://output');  
170       
171     ?>  

 

posted @ 2013-06-17 15:25  Wiliz  阅读(787)  评论(1编辑  收藏  举报