导出,封装的现成的方法,拿来就能用
附上phpExcel的下载链接:
链接:https://pan.baidu.com/s/1JkDYZwddaAGsmxbatQJ-RQ
提取码:ylq1
<?php
namespace app\helper;
class Excel
{
/**
* 导出为excel
* $head示例:、
* $head=[
"A"=>["ID","id"],
"B"=>["商品名称","goodsname"],
"C"=>["商品简介","subtitle"],
"D"=>["商品状态","grounding"],
"E"=>["商品价格","price"],
"F"=>["商品成本价","costprice"],
"G"=>["会员卡购买价格","card_price"],
"H"=>["是否参加会员卡","is_take_vipcard"],
"I"=>["商品原价","productprice"],
"J"=>["已出售数量","sales"],
"K"=>["实际销售","seller_count"],
"L"=>["库存","total"]
];
* $list :列表数据,数组格式
*
*/
public static function export( $head , $list ){
require_once "./PHPExcel/PHPExcel.php";
$obj = new \PHPExcel();
$obj_Sheet = $obj->getActiveSheet(); //获得当前活动sheet的活动对象
$obj_Sheet->setTitle('s1');//设置当前活动Sheet名称
$obj_Sheet->getDefaultStyle()->getAlignment() //设置居中显示
->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER)//垂直居中
->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);//水平居中
// 表头的填充
$obj->setActiveSheetIndex(0);
foreach($head as $key=>$v){
$obj->getActiveSheet()->setCellValue($key."1", $v[0]);
}
foreach ($list as $key => $v){
foreach($head as $k=>$val){
$obj->getActiveSheet()->setCellValue($k.($key + 2), $v[$val[1]]);
}
}
$obj_Writer = \PHPExcel_IOFactory::createWriter($obj, 'Excel2007');//创建工厂对象
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="'.time().'.xlsx"');
header('Cache-Control: max-age=0');
$obj_Writer->save('php://output');
}
/**
* excel 导入
* 文件名
* return 数组格式,从第二行开始
*/
public static function import($fileName){
require_once "./PHPExcel/PHPExcel.php";
$excel = \PHPExcel_IOFactory::load($fileName);
$data = array();
$SheetNamas = $excel->getSheetNames();
$SheetName = $SheetNamas[0];
$excel->setActiveSheetIndexByName($SheetName);
$curSheet = $excel->getActiveSheet();
$rows = $curSheet->getHighestRow();
$cols = $curSheet->getHighestColumn();
$head=[];
for($j = 1; $j <= $rows ; $j++ ){
$num=0;
for($k = "A"; $k <= $cols; $k++){
$key = $k.$j;
$value = $curSheet->getCell($key)->getValue();
if($j == 1){
$head[]=$value;
}else{
$data[][$head[$num]] = $value;
}
$num++;
}
}
return $data;
}
}