不多BB 直接上代码 有什么问题欢迎骚扰:qq:1209095456
使用语言:php
使用框架:thinkphp
数据库:mysql
/**
* 函数用途描述:excel导出企业
* @date: 2017年11月8日 下午3:54:21
* @author: 魏博宇
*/
public function qyexcel(){
try {
$where="1=1";
if(I("searcont")){
$where.=" and unit_name like '%".I("searcont")."%'";
$this->assign("searcont",I("searcont"));
}
if(I("searid")){
$where.=" and unit_lable like '%".I("searid")."%'";
$this->assign("searid",I("searid"));
}
$szstr="unit_name,behalf_name,contact_name,contact_phone1,register_time,register_address,enterprise_scope,enterprise_spot,unit_introduction";
$datalist=M("enterprise")->field($szstr)->where($where)->select();
$headArr=array("单位名称:40","法人代表:15","联系人:15","联系电话:20","注册时间:20","注册地址:40","企业范围:30","企业亮点:30","单位简介:40");
$this->getExcel("企业信息", $headArr, $datalist);
} catch (\Exception $e) {
$this->wby_alert("出现异常!");
}
}
/**
* 函数用途描述:导出excel
* @param string $fileName 导出的文件名字 $filename="入库";
* @param string $headArr 头部数组第二个代表这行的宽度 array("企业名称:30","法人代表:15");
* @param $data 要到处的数据集合
* @date: 2017年6月7日 下午2:14:23
* @author: 魏博宇
*/
protected function getExcel($fileName,$headArr,$data){
//导入PHPExcel类库,因为PHPExcel没有用命名空间,只能inport导入
import("Org.Util.PHPExcel");
import("Org.Util.PHPExcel.Writer.Excel5");
import("Org.Util.PHPExcel.IOFactory.php");
//对数据进行检验
if(empty($data) || !is_array($data)){
$this->wby_alert("该用户基础资料未填写!");
exit;
}
//检查文件名
if(empty($fileName)){
$this->wby_alert("出现异常!");
exit;
}
$date = date("Y-m-d",time());
$fileName .= "{$date}.xls";
//创建PHPExcel对象,注意,不能少了\
//$objPHPExcel = new \PHPExcel_Autoloader();
$objPHPExcel = new \PHPExcel();
$objProps = $objPHPExcel->getProperties();
//设置表头
$key = ord("A");
foreach($headArr as $v){
$colum = chr($key);
$xx=explode(":",$v);
//设置每列的头部
$objPHPExcel->setActiveSheetIndex(0) ->setCellValue($colum.'1', $xx[0]);
//设置第一列的宽度
$objPHPExcel->getActiveSheet()->getColumnDimension($colum)->setWidth($xx[1]);
//第一行居中
$objPHPExcel->getActiveSheet()->getStyle($colum)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
//其他行居中
$objPHPExcel->getActiveSheet()->getStyle($colum."1")->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$key += 1;
}
$column = 2;
$objActSheet = $objPHPExcel->getActiveSheet();
foreach($data as $key => $rows){ //行写入
$span = ord("A");
foreach($rows as $keyName=>$value){// 列写入
$j = chr($span);
$objActSheet->setCellValue($j.$column, $value);
$span++;
}
$column++;
}
$fileName = iconv("utf-8", "gb2312", $fileName);
//重命名表
// $objPHPExcel->getActiveSheet()->setTitle('test');
//设置活动单指数到第一个表,所以Excel打开这是第一个表
$objPHPExcel->setActiveSheetIndex(0);
header('Content-Type: application/vnd.ms-excel');
header("Content-Disposition: attachment;filename=\"$fileName\"");
header('Cache-Control: max-age=0');
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output'); //文件通过浏览器下载
exit;
}