php导出excel类,PHP导出EXCEL的类方法,一般通用方法

PHP导出EXCEL的通用类方法

fieldnames = $val;

}

public function setTitle($val){

$this->title = $val;

}

public function import($rows){

$data = $rows;

if (!is_array($data))return $data;

if (empty($data))return '没有数据可导!';

error_reporting(E_ALL); //开启错误

set_time_limit(0); //脚本不超时

date_default_timezone_set('Etc/GMT-8'); //设置时区

if (IMPORT_XLS::$objPHPExcel == null){

IMPORT_XLS::$objPHPExcel = new PHPExcel();

}

$this->toExcel($data);

}

private function toExcel($data){

if (is_array($this->fieldnames) && isset($this->fieldnames)){

$this->General_Excel($data,$this->title,$this->fieldnames);

}

}

private function General_Excel($data,$title,$fieldnames){

if (IMPORT_XLS::$objPHPExcel == null)return 'PHPExcel对象没有创建成功!';

$arr = null;

$strs = '';

foreach ($fieldnames as $k=>$v){

$strs .= $k.',';

}

$strs = substr($strs,0,count($strs)-2);

$arr = explode(',',$strs);

$startchar = $arr[0];

$lastchar = end($arr);

$objPHPExcel = IMPORT_XLS::$objPHPExcel;

$objPHPExcel->getProperties()->setCreator("autumn-deer")

->setLastModifiedBy("autumn-deer")

->setTitle("Office 2007 XLSX Test Document")

->setSubject("Office 2007 XLSX Test Document")

->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")

->setKeywords("office 2007 openxml php")

->setCategory("Test result file");

//设置行高度

$objPHPExcel->getActiveSheet()->getRowDimension('1')->setRowHeight(22);

$objPHPExcel->getActiveSheet()->getRowDimension('2')->setRowHeight(20);

//set font size bold

$objPHPExcel->getActiveSheet()->getDefaultStyle()->getFont()->setSize(10);

$objPHPExcel->getActiveSheet()->getStyle($startchar.'2:'.$lastchar.'2')->getFont()->setBold(true);

$objPHPExcel->getActiveSheet()->getStyle($startchar.'2:'.$lastchar.'2')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);

$objPHPExcel->getActiveSheet()->getStyle($startchar.'2:'.$lastchar.'2')->getBorders()->getAllBorders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);

$objPHPExcel->getActiveSheet()->getStyle($startchar.'1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);

foreach ($arr as $el){

//set width

$objPHPExcel->getActiveSheet()->getColumnDimension($el)->setWidth(20);

//设置水平居中

$objPHPExcel->getActiveSheet()->getStyle($el)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

}

//合并单元格

$objPHPExcel->getActiveSheet()->mergeCells($startchar.'1:'. $lastchar.'1');

// set table header content

$objPHPExcel->setActiveSheetIndex(0)

->setCellValue($startchar."1", $title.' 时间:' . date('Y-m-d H:i:s'));

foreach ($fieldnames as $k=>$v){

$objPHPExcel->setActiveSheetIndex(0)

->setCellValue($k."2", $v);

}

//填充数据

if(isset($data)){

$j = 3;

foreach ($data as $row) {

$count = count($row);

$i = 0;

foreach ($row as $k=>$v){

$objPHPExcel->getActiveSheet(0)->setCellValue($arr[$i].$j, $v);

$i++;

}

$j++;

}

}

$objPHPExcel->getActiveSheet()->setTitle($title);

$objPHPExcel->setActiveSheetIndex(0);

ob_end_clean();//清除缓冲区,避免乱码

header('Content-Type: application/vnd.ms-excel;charset=utf-8');

header('Content-Disposition: attachment;filename="'.$title.'(' . date('Y-m-d H:i:s') . ').xls"');

header('Cache-Control: max-age=0');

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');

$objWriter->save('php://output');

exit();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值