加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

PHPExcel 数据导出实例

发布时间:2020-05-25 07:40:18 所属栏目:PHP 来源:互联网
导读:PHPExcel 数据导出实例

下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。

脚本之家小编现在分享给大家,也给大家做个参考。

namespaceWebadminModel;

useExtendSpaceExcel;

……
略
……

//取出数据
$dataBillArr=$this->get_list_bysql($sql);

//替换数据中的0、1为是、否
//PHPExcel有内置的方法处理,但是得到的是TRUE/FALSE,这里自己处理吧
$this->_formatZero($dataBillArr,array('taxflag','payflag','removeflag'));

//替换支付状态
foreach($dataBillArras$key=>$value){
switch($value['statustype']){
case'-1':
$dataBillArr[$key]['statustype']='已取消';
break;
case'-2':
$dataBillArr[$key]['statustype']='已取消已退款';
break;
case'0':
$dataBillArr[$key]['statustype']='待付款';
break;
case'1':
$dataBillArr[$key]['statustype']='待发货';
break;
case'2':
$dataBillArr[$key]['statustype']='待收货';
break;
case'3':
$dataBillArr[$key]['statustype']='已完成';
break;
case'10':
$dataBillArr[$key]['statustype']='退货完成';
break;
case'11':
$dataBillArr[$key]['statustype']='退款完成';
break;
default:
$dataBillArr[$key]['statustype']='无';
break;
}
}

//设置要导出的字段及对应的表头名称
$header=array(
array('title'=>'平台订单号','field'=>'billcode','type'=>'string','autosize'=>true),array('title'=>'用户帐号','field'=>'username',array('title'=>'用户昵称','field'=>'nickname'),array('title'=>'所属商家','field'=>'shopuser',array('title'=>'管易ERP单号','field'=>'erpsn',array('title'=>'支付单号','field'=>'bspaycode',array('title'=>'保税批次号','field'=>'bsbatchcode',array('title'=>'是否跨境','field'=>'taxflag'),array('title'=>'订单状态','field'=>'statustype'),……
略
……
);

//调用接口,执行Excel生成及导出操作
$filename='订单流水表_'.date('Y年m月d日_His',time());
Excel::export($dataBillArr,$header,$filename);
<?php

namespaceExtendSpace;

/**
*ClassExcel通用Excel接口,处理导出、导出操作
*使用说明:
*一、导入
*待续。。。
*二、导出
*useExtendSpaceExcel;
*.....
*Excel::export($dataArr,$filename);
*
*@packageExtendSpace
*@authorxxxxx2015-08-2714:07:14
*@version
*/
classExcel{

//privatestatic$objPHPExcel=null;

/**
*入口文件:导出Excel
*@return
*/
publicstaticfunctionexport($data,$filename='hms_excel_export'){

//引入PHPExcel类库
import('phpexcel.PHPExcel',dirname(__FILE__).'/','.php');//这里是TP特有,可直接用include或require

//初始化设置
$objPHPExcel=newPHPExcel();
$objPHPExcel->getProperties()->setCreator('test')->setLastModifiedBy('test');//这里设置中文乱码,还没解决
//->setTitle('这是标题')
//->setSubject('这是什么')
//->setDescription('这是描述')
//->setKeywords('这是关键字')
//->setCategory('这是目录么');
//var_dump($objPHPExcel->getProperties());exit;

//获取当前要操作的活动工作表
$objActSheet=$objPHPExcel->getActiveSheet();

//写入表头
foreach($headeras$k=>$v){
$colIndex=self::_getHeaderIndex($k);
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($colIndex.'1',$v['title']);

//列是否需要自动适应宽度
if(!empty($v['autosize'])){
$objActSheet->getColumnDimension($colIndex)->setAutoSize(true);
}
}

//写入数据,从第二行开始,第一行是表头
$rowNum=2;
foreach($dataas$rows){//遍历数据,获取一行
foreach($headeras$kk=>$vv){//单元格写入
$colIndex=self::_getHeaderIndex($kk);

//是否指定单元格数据格式
if(!empty($vv['type'])){//是
switch($vv['type']){
case'number':
$type=PHPExcel_Cell_DataType::TYPE_NUMERIC;//数字
break;
case'boolean':
$type=PHPExcel_Cell_DataType::TYPE_BOOL;//布尔值,0->FALSE;1->TRUE
break;
default:
$type=PHPExcel_Cell_DataType::TYPE_STRING;//字符串
break;
}
$objActSheet->setCellValueExplicit($colIndex.$rowNum,$rows[$vv['field']],$type);
}else{//否,默认常规
$objActSheet->setCellValue($colIndex.$rowNum,$rows[$vv['field']]);
}
}
$rowNum++;
}

//设置行高度rownum
//$objPHPExcel->getActiveSheet()->getRowDimension('1')->setRowHeight(22);

//设置字体和样式
$objActSheet->getDefaultStyle()->getFont()->setSize(12);//整体字号
$objActSheet->getStyle('A1:'.self::_getHeaderIndex(count($header)).'1')->getFont()->setBold(true);//列标题加粗

//设置工作表名称
$objActSheet->setTitle('Sheet1');

//设置header头参数
//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="'.$savedFileName.'"');
//header("Content-Transfer-Encoding:binary");

//最终输出
$savedFileName=self::_iconv($filename).'.xls';//导出文件名+扩展名

header('Content-Type:application/vnd.ms-excel');
header('Content-Disposition:attachment;filename="'.$savedFileName.'"');
header('Cache-Control:max-age=0');

$objWriter=PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel5');
$objWriter->save('php://output');
//$objWriter->save($savedFileName);
}

/**
*入口文件:导入Excel
*@return
*/
publicstaticfunctionimport(){

//引入PHPExcel类库
//import('phpexcel.PHPExcel','.php');

}

privatestaticfunction_init(){

}

/**
*获取表头索引值,即:A,B,C...,大于
*@paramarray$header用于设置表头的数组
*@returnstring
*/
privatefunction_getHeaderIndex($num){
returnPHPExcel_Cell::stringFromColumnIndex($num);
}

/**
*字符转换,避免乱码
*@paramstring$str待处理的字符
*@returnstring
*/
privatefunction_iconv($str){
returniconv('utf-8','gb2312',$str);
}
}

以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读