使用composer安装phpexcel包
1
|
composer
require
phpoffice/phpexcel
|
然后在common.php文件写个导出excel的函数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
/**
* excel表格导出
* @param string $fileName 文件名称
* @param array $headArr 表头名称
* @param array $data 要导出的数据
* @author static7 */
function
excelExport(
$fileName
=
''
,
$headArr
= [],
$data
= []) {
$fileName
.=
"_"
.
date
(
"Y_m_d"
, Request::instance()->time()) .
".xls"
;
$objPHPExcel
=
new
\PHPExcel();
$objPHPExcel
->getProperties();
$key
= ord(
"A"
);
// 设置表头
foreach
(
$headArr
as
$v
) {
$colum
=
chr
(
$key
);
$objPHPExcel
->setActiveSheetIndex(0)->setCellValue(
$colum
.
'1'
,
$v
);
$objPHPExcel
->setActiveSheetIndex(0)->setCellValue(
$colum
.
'1'
,
$v
);
$key
+= 1;
}
$column
= 2;
$objActSheet
=
$objPHPExcel
->getActiveSheet();
foreach
(
$data
as
$key
=>
$rows
) {
// 行写入
$span
= ord(
"A"
);
foreach
(
$rows
as
$keyName
=>
$value
) {
// 列写入
$objActSheet
->setCellValue(
chr
(
$span
) .
$column
,
$value
);
$span
++;
}
$column
++;
}
$fileName
= iconv(
"utf-8"
,
"gb2312"
,
$fileName
);
// 重命名表
$objPHPExcel
->setActiveSheetIndex(0);
// 设置活动单指数到第一个表,所以Excel打开这是第一个表
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'
);
exit
();
}
|
接着在控制器里写一个测试导出excel的方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
/**
* tp5 使用excel导出
* @param
* @author staitc7 * @return mixed
*/
public
function
excel() {
$name
=
'测试导出'
;
$header
=[
'表头A'
,
'表头B'
];
$data
=[
[
'嘿嘿'
,
'heihei'
],
[
'哈哈'
,
'haha'
]
];
excelExport(
$name
,
$header
,
$data
);
}
|
最后在本地测试一下导出
测试结果如下