/**
* 生成excel表格
* @param array $data 需要导出的数据
* @param array
t
i
t
l
e
带
出
数
据
的
标
题
∗
@
p
a
r
a
m
s
t
r
f
i
l
e
n
a
m
e
导
出
e
x
c
e
l
文
件
名
称
∗
/
f
u
n
c
t
i
o
n
e
x
p
o
r
t
E
x
c
e
l
(
title 带出数据的标题 * @param str filename 导出excel文件名称 */ function exportExcel(
title带出数据的标题∗@paramstrfilename导出excel文件名称∗/functionexportExcel(data=array(),
t
i
t
l
e
=
a
r
r
a
y
(
)
,
title=array(),
title=array(),filename=‘report’){
ob_end_clean();
header(“Content-type:application/octet-stream”);
header(“Accept-Ranges:bytes”);
header(‘Content-Encoding: UTF-8’);
header(“Content-Type: text/csv; charset=UTF-8”);
header(“Content-type:application/vnd.ms-excel”);
header(“Content-Disposition:attachment;filename=”.
f
i
l
e
n
a
m
e
.
"
.
x
l
s
"
)
;
h
e
a
d
e
r
(
"
P
r
a
g
m
a
:
n
o
−
c
a
c
h
e
"
)
;
h
e
a
d
e
r
(
"
E
x
p
i
r
e
s
:
0
"
)
;
/
/
导
出
x
l
s
开
始
i
f
(
!
e
m
p
t
y
(
filename.".xls"); header("Pragma: no-cache"); header("Expires: 0"); //导出xls 开始 if (!empty(
filename.".xls");header("Pragma:no−cache");header("Expires:0");//导出xls开始if(!empty(title)){
foreach ($title as $k => $v) {
t
i
t
l
e
[
title[
title[k]=iconv(“UTF-8”, “GB2312//IGNORE”,$v);
}
$title= implode("\t", $title);
echo "$title\n";
}
if (!empty($data)){
foreach($data as $key=>$val){
foreach ($val as $ck => $cv) {
$data[$key][$ck]=iconv("UTF-8", "GB2312//IGNORE", $cv);
//$data[$key][$ck] = mb_convert_encoding($cv, 'GB2312', 'UTF-8');
}
$data[$key]=implode("\t", $data[$key]);
}
echo implode("\n",$data);
}
}
在使用上述方法导出EXCEL的时候,有时候发现出现乱码(几率很小),对编码和特殊字符已处理 还是出现乱码,后换成导出表格的样式解决了乱码问题
/**
* 生成excel表格
* @param array $data 需要导出的数据
* @param array $title 带出数据的标题
* @param str filename 导出excel文件名称
*/
function exportTableExcel($data=array(),$title=array(),$filename='report'){
$strTable ='<table width="500" border="1">';
$strTable .= '<tr>';
//第一行的标题
foreach ($title as $key => $value){
$strTable .= '<td style="text-align:left;font-size:16px;" width="*">'.$value.'</td>'."\r\n";
}
$strTable .= '</tr>';
//导入数据
$strTable .= '<tr>';
foreach ($data as $key => $val) {
foreach ($val as $ck => $cv) {
$strTable .= '<td style="text-align:left;font-size:14px;" rowspan="*">'.$cv.'</td>'."\r\n";
}
$strTable .= '</tr>';
}
$strTable .='</table>';
header("Content-type: application/vnd.ms-excel");//将查询结果导出到Excel
header("Content-Type: application/force-download");//告诉浏览器强制下载
header("Content-Disposition: attachment; filename=".$filename.".xls");//attachment作为附件下载,inline在线下载,filename设置文件名
header('Expires:0');//浏览器不会响应缓存
header('Pragma:public');//Public指示响应可被任何缓存区缓存。
echo '<html><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />'.$strTable.'</html>';
exit();
}