kevin
我写这些主要是为了以后有个记忆,也为了新手可以作为参考。如有哪里不对,请大家指出我好改正。
第一:你要去phpexcel官网下载,然后放到网站的vendor文件夹下面。当然这是为了好管理和导入。你放在其他位置也没有关系。
第二:当然是在你需要的地方写代码。我只写样例,你看懂了就可以灵活的使用。 vendor(phpexcel.phpexcel);//如果这里提示类不存在,肯定是你文件夹名字不对。
$objphpexcel = new \phpexcel();//这里要注意‘\’ 要有这个。因为版本是3.1.2了。
$objwriter = new \phpexcel_writer_excel5($objphpexcel);//设置保存版本格式
//接下来就是写数据到表格里面去
$list =你从数据库查出来的的数据
foreach ($list as $key => $value) {
$i=$key+1;//表格是从1开始的
$objphpexcel->getactivesheet()->setcellvalue('a'.$i, $value['name']);//这里是设置a1单元格的内容
$objphpexcel->getactivesheet()->setcellvalue('b'.$i, $value['id']);////这里是设置b1单元格的内容
//以此类推,可以设置c d e f g看你需要了。
}
//接下来当然是下载这个表格了,在浏览器输出就好了
header(pragma: public);
header(expires: 0);
header(cache-control:must-revalidate, post-check=0, pre-check=0);
header(content-type:application/force-download);
header(content-type:application/vnd.ms-execl);
header(content-type:application/octet-stream);
header(content-type:application/download);;
header('content-disposition:attachment;filename=文件名称.xls');
header(content-transfer-encoding:binary);
$objwriter->save('文件名称.xls');
$objwriter->save('php://output');
到这里你就已经完成了。如果有哪里不懂可以加我qq164418960。或者留言
第三 : 上面只是完成了流程而已。但是不可能这样简单而已。我们可以设置很多东西。看自己需要来设置了。设置excel的属性:
创建人
$objphpexcel->getproperties()->setcreator(maarten balliauw);
最后修改人
$objphpexcel->getproperties()->setlastmodifiedby(maarten balliauw);
标题
$objphpexcel->getproperties()->settitle(office 2007 xlsx test document);
题目
$objphpexcel->getproperties()->setsubject(office 2007 xlsx test document);
描述
$objphpexcel->getproperties()->setdescription(test document for office 2007 xlsx, generated using php classes.);
关键字
$objphpexcel->getproperties()->setkeywords(office 2007 openxml php);
种类
$objphpexcel->getproperties()->setcategory(test result file);设置当前的sheet
$objphpexcel->setactivesheetindex(0);
设置sheet的name
$objphpexcel->getactivesheet()->settitle('simple');
设置单元格的值
$objphpexcel->getactivesheet()->setcellvalue('a1', 'string');
$objphpexcel->getactivesheet()->setcellvalue('a2', 12);
$objphpexcel->getactivesheet()->setcellvalue('a3', true);
$objphpexcel->getactivesheet()->setcellvalue('c5', '=sum(c2:c4)');
$objphpexcel->getactivesheet()->setcellvalue('b8', '=min(b2:c5)');
合并单元格
$objphpexcel->getactivesheet()->mergecells('a18:e22');
分离单元格
$objphpexcel->getactivesheet()->unmergecells('a28:b28');
保护cell
$objphpexcel->getactivesheet()->getprotection()->setsheet(true); // needs to be set to true in order to enable any worksheet protection!
$objphpexcel->getactivesheet()->protectcells('a3:e13', 'phpexcel');
设置格式
// set cell number formats
echo date('h:i:s') . set cell number formats\n;
$objphpexcel->getactivesheet()->getstyle('e4')->getnumberformat()->setformatcode(phpexcel_style_numberformat::format_currency_eur_simple);
$objphpexcel->getactivesheet()->duplicatestyle( $objphpexcel->getactivesheet()->getstyle('e4'), 'e5:e13' );
设置宽width
// set column widths
$objphpexcel->getactivesheet()->getcolumndimension('b')->setautosize(true);
$objphpexcel->getactivesheet()->getcolumndimension('d')->setwidth(12);
设置font
$objphpexcel->getactivesheet()->getstyle('b1')->getfont()->setname('candara');
$objphpexcel->getactivesheet()->getstyle('b1')->getfont()->setsize(20);
$objphpexcel->getactivesheet()->getstyle('b1')->getfont()->setbold(true);
$objphpexcel->getactivesheet()->getstyle('b1')->getfont()->setunderline(phpexcel_style_font::underline_single);
$objphpexcel->getactivesheet()->getstyle('b1')->getfont()->getcolor()->setargb(phpexcel_style_color::color_white);
$objphpexcel->getactivesheet()->getstyle('e1')->getfont()->getcolor()->setargb(phpexcel_style_color::color_white);
$objphpexcel->getactivesheet()->getstyle('d13')->getfont()->setbold(true);
$objphpexcel->getactivesheet()->getstyle('e13')->getfont()->setbold(true);
设置align
$objphpexcel->getactivesheet()->getstyle('d11')->getalignment()->sethorizontal(phpexcel_style_alignment::horizontal_right);
$objphpexcel->getactivesheet()->getstyle('d12')->getalignment()->sethorizontal(phpexcel_style_alignment::horizontal_right);
$objphpexcel->getactivesheet()->getstyle('d13')->getalignment()->sethorizontal(phpexcel_style_alignment::horizontal_right);
$objphpexcel->getactivesheet()->getstyle('a18')->getalignment()->sethorizontal(phpexcel_style_alignment::horizontal_justify);
//垂直居中
$objphpexcel->getactivesheet()->getstyle('a18')->getalignment()->setvertical(phpexcel_style_alignment::vertical_center);
设置column的border
$objphpexcel->getactivesheet()->getstyle('a4')->getborders()->gettop()->setborderstyle(phpexcel_style_border::border_thin);
$objphpexcel->getactivesheet()->getstyle('b4')->getborders()->gettop()->setborderstyle(phpexcel_style_border::border_thin);
$objphpexcel->getactivesheet()->getstyle('c4')->getborders()->gettop()->setborderstyle(phpexcel_style_border::border_thin);
$objphpexcel->getactivesheet()->getstyle('d4')->getborders()->gettop()->setborderstyle(phpexcel_style_border::border_thin);
$objphpexcel->getactivesheet()->getstyle('e4')->getborders()->gettop()->setborderstyle(phpexcel_style_border::border_thin);
设置border的color
$objphpexcel->getactivesheet()->getstyle('d13')->getborders()->getleft()->getcolor()->setargb('ff993300');
$objphpexcel->getactivesheet()->getstyle('d13')->getborders()->gettop()->getcolor()->setargb('ff993300');
$objphpexcel->getactivesheet()->getstyle('d13')->getborders()->getbottom()->getcolor()->setargb('ff993300');
$objphpexcel->getactivesheet()->getstyle('e13')->getborders()->gettop()->getcolor()->setargb('ff993300');
$objphpexcel->getactivesheet()->getstyle('e13')->getborders()->getbottom()->getcolor()->setargb('ff993300');
$objphpexcel->getactivesheet()->getstyle('e13')->getborders()->getright()->getcolor()->setargb('ff993300');
设置填充颜色
$objphpexcel->getactivesheet()->getstyle('a1')->getfill()->setfilltype(phpexcel_style_fill::fill_solid);
$objphpexcel->getactivesheet()->getstyle('a1')->getfill()->getstartcolor()->setargb('ff808080');
$objphpexcel->getactivesheet()->getstyle('b1')->getfill()->setfilltype(phpexcel_style_fill::fill_solid);
$objphpexcel->getactivesheet()->getstyle('b1')->getfill()->getstartcolor()->setargb('ff808080');
加图片
$objdrawing = new phpexcel_worksheet_drawing();
$objdrawing->setname('logo');
$objdrawing->setdescription('logo');
$objdrawing->setpath('./images/officelogo.jpg');
$objdrawing->setheight(36);
$objdrawing->setworksheet($objphpexcel->getactivesheet());
$objdrawing = new phpexcel_worksheet_drawing();
$objdrawing->setname('paid');
$objdrawing->setdescription('paid');
$objdrawing->setpath('./images/paid.png');
$objdrawing->setcoordinates('b15');
$objdrawing->setoffsetx(110);
$objdrawing->setrotation(25);
$objdrawing->getshadow()->setvisible(true);
$objdrawing->getshadow()->setdirection(45);
$objdrawing->setworksheet($objphpexcel->getactivesheet());
//处理中文输出问题
需要将字符串转化为utf-8编码,才能正常输出,否则中文字符将输出为空白,如下处理:
$str = iconv('gb2312', 'utf-8', $str);
或者你可以写一个函数专门处理中文字符串:
function convertutf8($str)
{
if(empty($str)) return '';
return iconv('gb2312', 'utf-8', $str);
}
ad:真正免费,域名+虚机+企业邮箱=0元