本篇文章主要介绍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的方法的详细内容。