PHPExcel-实际操作

<?php

array(1) {
["stream"]=>
array(35) {
[0]=>
array(8) {
["price"]=>
string(4) "7.00"
["time"]=>
string(19) "2018-06-14 18:18:54"
["type"]=>
string(6) "采购"
["no"]=>
string(22) "sffsdfsdfsdfsfdsfds"
["status"]=>
string(9) "已支出"
["lists"]=>
array(1) {
[1]=>
array(10) {
["create_time"]=>
string(19) "2018-06-14 18:18:44"
["ie"]=>
string(5) "-----"
["name"]=>
string(6) "测试"
["ount"]=>
string(1) "1"
["price"]=>
string(4) "3.00"
["sum"]=>
string(4) "7.00"
["box"]=>
string(4) "4.00"
["price"]=>
string(4) "7.00"
["back"]=>
string(4) "0.00"
["type"]=>
string(4) "0.00"
}
}
["pid"]=>
string(19) "v53434534"
}
[2]=>
array(8) {
["price"]=>
string(5) "14.81"
["time"]=>
string(19) "2018-07-09 15:38:18"
["type"]=>
string(6) "采购"
["no"]=>
string(22) "hkgfhfghfhfghfh"
["status"]=>
string(9) "已支出"
["lists"]=>
array(4) {
[2]=>
array(10) {
["create_time"]=>
string(19) "2018-07-09 15:37:56"
["ie"]=>
string(10) "xcvxvxcvxcv"
["name"]=>
string(18) "vxcvxcvxvc"
["mount"]=>
string(1) "1"
["price"]=>
string(4) "5.00"
["sum"]=>
string(4) "5.00"
["_price"]=>
string(4) "0.00"
["price"]=>
string(5) "14.81"
["back"]=>
string(4) "9.26"
["type"]=>
string(4) "1.93"
}
[3]=>
array(10) {
["create_time"]=>
string(19) "2018-07-09 15:37:56"
["ie"]=>
string(10) "xcvxvxcvxcv"
["name"]=>
string(18) "vxcvxcvxvc"
["mount"]=>
string(1) "1"
["price"]=>
string(4) "5.00"
["sum"]=>
string(4) "5.00"
["_price"]=>
string(4) "0.00"
["price"]=>
string(5) "14.81"
["back"]=>
string(4) "9.26"
["type"]=>
string(4) "1.93"
}
[4]=>
array(10) {
["create_time"]=>
string(19) "2018-07-09 15:37:56"
["ie"]=>
string(10) "xcvxvxcvxcv"
["name"]=>
string(18) "vxcvxcvxvc"
["mount"]=>
string(1) "1"
["price"]=>
string(4) "5.00"
["sum"]=>
string(4) "5.00"
["_price"]=>
string(4) "0.00"
["price"]=>
string(5) "14.81"
["back"]=>
string(4) "9.26"
["type"]=>
string(4) "1.93"
}
[5]=>
array(10) {
["create_time"]=>
string(19) "2018-07-09 15:37:56"
["ie"]=>
string(10) "xcvxvxcvxcv"
["name"]=>
string(18) "vxcvxcvxvc"
["mount"]=>
string(1) "1"
["price"]=>
string(4) "5.00"
["sum"]=>
string(4) "5.00"
["_price"]=>
string(4) "0.00"
["price"]=>
string(5) "14.81"
["back"]=>
string(4) "9.26"
["type"]=>
string(4) "1.93"
}
}
["pid"]=>
string(19) "dfsfdsfsdsfsdf"
}
}
};


//tp3.2
vendor('PHPExcel.PHPExcel');
$objPHPExcel = new \PHPExcel();
//实例化一个PHPExcel()对象
$objSheet = $objPHPExcel->getActiveSheet(); //选取当前的sheet对象
$objSheet->setTitle('user_lous_stream'); //对当前sheet对象命名
//常规方式:利用setCellValue()填充数据
//横向单元格标识
$cellName = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H','I','J','K','L');
//表格文字居中
foreach($cellName as $val){
$objPHPExcel->getActiveSheet()->getStyle($val)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objPHPExcel->getActiveSheet()->getStyle($val)->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
}

//设置字体样式
$objPHPExcel->getDefaultStyle()->getFont()->setName( 'Arial');
$objPHPExcel->getActiveSheet()->getStyle('A1:L1')->getFont()->setBold(true);
$objPHPExcel->getDefaultStyle()->getFont()->setSize(22);
//设置表头列表
$objSheet->setCellValue("A1","销售日期")
->setCellValue("B1","销售单号")
->setCellValue("C1","商品编号")
->setCellValue("D1","商品名称")
->setCellValue("E1","数量")
->setCellValue("F1","单价")
->setCellValue("G1","费")
->setCellValue("H1","返现")
->setCellValue("I1","优惠")
->setCellValue("J1","税费)")
->setCellValue("K1","金额小计(元)")
->setCellValue("L1","备注"); //利用setCellValues()填充数据

//设置单元格的宽度
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(12);
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(12);
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(10);
$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(16);
$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(6);
$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(6);
$objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(6);
$objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(6);
$objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(6);
$objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth(6);
$objPHPExcel->getActiveSheet()->getColumnDimension('K')->setWidth(8);
$objPHPExcel->getActiveSheet()->getColumnDimension('L')->setWidth(10);

//把构造好的额数组遍历显示
foreach($data["stream"] as $key => $val){
foreach($val['lists'] as $k => $v){
$objPHPExcel->getActiveSheet()->setCellValue($cellName[0].($k+1), $val['销售日期']);
$objPHPExcel->getActiveSheet()->setCellValue($cellName[1].($k+1), $val['name']);
$objPHPExcel->getActiveSheet()->setCellValue($cellName[2].($k+1), $v['name']);
$objPHPExcel->getActiveSheet()->setCellValue($cellName[3].($k+1), $v['name']);
$objPHPExcel->getActiveSheet()->setCellValue($cellName[4].($k+1), $v['name']);
$objPHPExcel->getActiveSheet()->setCellValue($cellName[5].($k+1), $v['name']);
$objPHPExcel->getActiveSheet()->setCellValue($cellName[6].($k+1), $v['name']);
$objPHPExcel->getActiveSheet()->setCellValue($cellName[7].($k+1), $v['name']);
//设置单个字体的颜色
if($v['type'] != 0 ){
$objPHPExcel->getActiveSheet()->setCellValue($cellName[8].($k+1), $v['invoice_tax']);
//设置单个字体的颜色
$objPHPExcel->getActiveSheet()->getStyle($cellName[8].($k+1))->getFont()->getColor()->setARGB(\PHPExcel_Style_Color::COLOR_RED);
}else{
$objPHPExcel->getActiveSheet()->setCellValue($cellName[8].($k+1), 0);
}
$objPHPExcel->getActiveSheet()->setCellValue($cellName[9].($k+1), $v['优惠']);
$objPHPExcel->getActiveSheet()->setCellValue($cellName[10].($k+1), $v['金额小计(元)']);
$objPHPExcel->getActiveSheet()->setCellValue($cellName[11].($k+1), $val['备注']);
}

//合并想要的单元格
$key = array_keys($val['lists']);
$first = reset($key);
$end = end($key);
$objPHPExcel->getActiveSheet()->mergeCells('A'.($first+1) .':A'.($end+1));
$objPHPExcel->getActiveSheet()->mergeCells('B'.($first+1) .':B'.($end+1));
$objPHPExcel->getActiveSheet()->mergeCells('G'.($first+1) .':G'.($end+1));
$objPHPExcel->getActiveSheet()->mergeCells('H'.($first+1) .':H'.($end+1));
$objPHPExcel->getActiveSheet()->mergeCells('I'.($first+1) .':I'.($end+1));
$objPHPExcel->getActiveSheet()->mergeCells('J'.($first+1) .':J'.($end+1));
$objPHPExcel->getActiveSheet()->mergeCells('k'.($first+1) .':k'.($end+1));
$objPHPExcel->getActiveSheet()->mergeCells('L'.($first+1) .':L'.($end+1));
}

// $objSheet->fromArray($data); //利用fromArray()直接一次性填充数据
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel2007'); //设定写入excel的类型
$objWriter->save($url. $title .'.xlsx'); //保存文件


猜你喜欢

转载自blog.csdn.net/chenrui310/article/details/81020851