您好,欢迎访问一九零五行业门户网

PHPExcel如何导出excel的方法

本篇文章主要介绍phpexcel如何导出excel的方法,感兴趣的朋友参考下,希望对大家有所帮助。
//设置phpexcel类库的includepath
set_include_path('.'.path_separator.'d:\workspace\biznaligy_eh\dev_src\includes\phpexcel'.path_separator.get_include_path());
require_once'phpexcel.php'; require_once'phpexcel/writer/excel5.php';//用于其他低版本xls require_once'phpexcel/writer/excel2007.php';//用于excel-2007格式
//创建一个处理对象实例
$objexcel=newphpexcel();
//创建文件格式写入对象实例,uncomment
$objwriter=newphpexcel_writer_excel5($objexcel);//用于其他版本格式 //or //$objwriter=newphpexcel_writer_excel2007($objexcel);//用于2007格式 //$objwriter->setoffice2003compatibility(true);
//设置文档基本属性
$objprops=$objexcel->getproperties(); $objprops->setcreator("zealli"); $objprops->setlastmodifiedby("zealli"); $objprops->settitle("officexlstestdocument"); $objprops->setsubject("officexlstestdocument,demo"); $objprops->setdescription("testdocument,generatedbyphpexcel."); $objprops->setkeywords("officeexcelphpexcel"); $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','8757584',phpexcel_cell_datatype::type_string);
//合并单元格
$objactsheet->mergecells('b1:c22');
//分离单元格
$objactsheet->unmergecells('b1:c22');
//设置宽度
$objactsheet->getcolumndimension('b')->setautosize(true); $objactsheet->getcolumndimension('a')->setwidth(30);
//设置单元格内容的数字格式。
//如果使用了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方法可以让每一行的内容
//都按原始内容全部显示出来。

//设置字体
$objfonta5=$objstylea5->getfont(); $objfonta5->setname('couriernew'); $objfonta5->setsize(10); $objfonta5->setbold(true); $objfonta5->setunderline(phpexcel_style_font::underline_single); $objfonta5->getcolor()->setargb('ffff0000'); $objfonta5->getcolor()->setargb(phpexcel_style_color::color_white); //$objfonta5->getfont()->setcolor(phpexcel_style_color::color_red);
//设置对齐方式
$objaligna5=$objstylea5->getalignment(); $objaligna5->sethorizontal(phpexcel_style_alignment::horizontal_right); $objaligna5->setvertical(phpexcel_style_alignment::vertical_center); $objaligna5->setwraptext(true);//自动换行,前提是单元格内的值超列宽,或者在值内写入个\n
//设置边框
$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);
//设置cell填充颜色
$objfilla5=$objstylea5->getfill(); $objfilla5->setfilltype(phpexcel_style_fill::fill_solid); $objfilla5->getstartcolor()->setargb('ffeeeeee');
//从指定的单元格复制样式信息.
$objactsheet->duplicatestyle($objstylea5,'b1:c22');
//添加图片
$objdrawing = newphpexcel_worksheet_drawing(); $objdrawing->setname('zealimg'); $objdrawing->setdescription('imageinsertedbyzeal'); $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');
//保存,设置密码
$objphpexcel->getactivesheet()->getprotection()->setpassword('phpexcel');
//保护单元格
$objexcel->getsheet(1)->getprotection()->setsheet(true); $objexcel->getsheet(1)->protectcells('a1:c22','phpexcel');
//显示网格线:
$objphpexcel->getactivesheet()->setshowgridlines(true);
//显示隐藏列
$objphpexcel->getactivesheet()->getcolumndimension('c')->setvisible(true); $objphpexcel->getactivesheet()->getcolumndimension('d')->setvisible(false);
//显示隐藏行
$objphpexcel->getactivesheet()->getrowdimension('10')->setvisible(false);
//默认列宽
$objphpexcel->getactivesheet()->getdefaultcolumndimension()->setwidth(12);
//默认行宽
$objphpexcel->getactivesheet()->getdefaultrowdimension()->setrowheight(15);
//worksheet默认style设置(和默认不同的需单独设置)
$objphpexcel->getactivesheet()->getdefaultstyle()->getfont()->setname('arial'); $objphpexcel->getactivesheet()->getdefaultstyle()->getfont()->setsize(8); $alignment = $objphpexcel->getactivesheet()->getdefaultstyle()->getalignment(); $alignment->sethorizontal(phpexcel_style_alignment::horizontal_center); $alignment->setvertical(phpexcel_style_alignment::vertical_center);
//输出内容
$outputfilename="output.xls";
//到文件通过文件路径再用ajax无刷新页面
////$objwriter->save($outputfilename);
//到浏览器
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("last-modified:".gmdate("d,dmyh:i:s")."gmt"); header("cache-control:must-revalidate,post-check=0,pre-check=0"); header("pragma:no-cache"); $objwriter->save('php://output'); $objwriter = phpexcel_iofactory::createwriter($objphpexcel, 'pdf'); $objwriter->save('a.pdf') public function getcellbycolumnandrow($pcolumn = 0, $prow = 0) { return $this->getcell(phpexcel_cell::stringfromcolumnindex($pcolumn) . $prow); } print_r(phpexcel_cell::columnindexfromstring('d'));exit; //echo 4 echo phpexcel_cell::stringfromcolumnindex(4) // echo e for($c=phpexcel_cell::columnindexfromstring('a');$c<phpexcel_cell::columnindexfromstring('j');$c++){ echo phpexcel_cell::stringfromcolumnindex($c); }
//phpexcel默认是没有冻结的,下面是冻结列。定二则定全部
$sheet->freezepane('a1'); $sheet->freezepane('b1');
冻结行
$sheet->freezepane('d1'); $sheet->freezepane('d2');
不能再次定义a,b,c否则列冻结被替代
public function freezepanebycolumnandrow($pcolumn = 0, $prow = 0){ $this->freezepane(phpexcel_cell::stringfromcolumnindex($pcolumn) . $prow); } public function unfreezepane() { $this->freezepane(''); } $worksheet->setinputencoding("utf-8"); //$freeze = $sheet->getfreezepane();
用phpexcel批量设置单元格格式
java代码
$style_obj = new phpexcel_style(); $style_array = array( 'borders' => array( 'top' => array('style' => phpexcel_style_border::border_thin), 'left' => array('style' => phpexcel_style_border::border_thin), 'bottom' => array('style' => phpexcel_style_border::border_thin), 'right' => array('style' => phpexcel_style_border::border_thin) ), 'alignment' => array( 'horizontal' => phpexcel_style_alignment::horizontal_center, 'vertical' => phpexcel_style_alignment::vertical_center, 'wrap' => true ) ); $style_obj->applyfromarray($style_array); $sheet->setsharedstyle($style_obj, "a1:o35");
phpexcel大数据导出,数据追加(19万行,分20个sheet, 1万行是一个sheet,第一次到1个sheet数据,其他数据追加到excel分19次覆盖对应的sheet)
先用 phpexcel 建立reader,再load文件,这样打开已经存在的文档,然后再建立writer,将reader中的数据都复制过来,再用 phpexcel 进行数据修改,再以load的文件名覆盖保存。
java代码
<?php require_once 'phpexcel/iofactory.php'; $reader = phpexcel_iofactory::createreader('excel5'); //读取旧版 excel 档案 $phpexcel = $reader->load("y.xls"); // 档案名称 $sheet = $phpexcel->getsheet(0); // 读取第一个工作表(编号从 0 开始) $highestrow = $sheet->gethighestrow(); // 取得总列数 for ($row = 1; $row <= $highestrow; $row++) { for ($column = 1; $column <= 6; $column++) { $val = $sheet->getcellbycolumnandrow($column, $row)->getvalue(); } } ?>
相关推荐:
yii2框架中phpexcel导出excel文件方法
yii2框架中实现phpexcel导出excel文件的方法分享
phpexcel导出excel 
以上就是phpexcel如何导出excel的方法的详细内容。
其它类似信息

推荐信息