/*** phpexcel用法举例* by bbs.it-home.org* ################*///设置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');?>
复制代码