首先下载PHPExcel文件夹。如果找不到合适点击这里下载
将网上下载的PHPExcel文件夹放在 Thinkphp/Library/Org/Util 下
<?php
public function down(){
$fileName = '学生信息表.xlsx';
$headArr = [
'姓名',
'学号',
'联系电话',
];
$data = [
[
'张三',
'001',
'13512345678',
],
[
'李四',
'002',
'13612345678',
],
[
'王五',
'003',
'13712345678',
],
];
$this -> getExcel($fileName,$headArr,$data);
}
private function getExcel($fileName,$headArr,$data){
// 将网上下载的PHPExcel文件夹放在Thinkphp/Library/Org/Util下
import("Org.Util.PHPExcel");
import("Org.Util.PHPExcel.Writer.Excel5");
import("Org.Util.PHPExcel.IOFactory.php");
import("Org.Util.PHPExcel.Cell");
//创建PHPExcel对象,注意,不能少了\
$objPHPExcel = new \PHPExcel();
$objProps = $objPHPExcel->getProperties();
// 设置居中和列宽
$objPHPExcel->getActiveSheet()->getStyle('A:Z')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(30);
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(30);
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(30);
//设置表头
$key = ord("A");
foreach($headArr as $v){
$colum = chr($key);
$objPHPExcel->setActiveSheetIndex(0) ->setCellValue($colum.'1', $v);
$key += 1;
}
$column = 2;
$objActSheet = $objPHPExcel->getActiveSheet();
foreach($data as $k => &$v){ //行写入
$span = ord("A");
$j = chr($span);
foreach($v as $kk => $vv){// 列写入
$j = chr($span);
$objActSheet -> setCellValue($j.$column, $vv);
$span++;
}
$column++;
}
$fileName = iconv("utf-8", "gb2312", $fileName);
//设置活动单指数到第一个表,所以Excel打开这是第一个表
$objPHPExcel->setActiveSheetIndex(0);
ob_end_clean();
ob_start();
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;
}