PHP 最简单的导出Excel文件
2年前
阅读 4985
评论 0
喜欢 0
```php
/*
+----------------------------------------------------------------------
+ Title : 导出EXcel文件
+ Author : 小黄牛
+ Version : 1.0.1.01
+ Initial-Time : 2016-10-9 15:28
+ Last-time : 2016-10-9 15:28 + 小黄牛
+ Desc : 使用这个函数就可以,简单的操作导出EXcel了噢
+----------------------------------------------------------------------
*/
/**
* @param array : $Title 横的标题,是一个一维数组
* @param array : $Type 列的参数,是一个二维数组
* @return : 直接Header下载
*/
function Port_Excel($Title= array(), $Type= array()){
# 参数类型检测
if (!is_array($Title) || !is_array($Type)) {return false;}
# 记录excel的内容
$excel = '';
foreach ($Title as $value) {
$excel .= $value."t";
}
# 中文转码
if(PATH_SEPARATOR == ':'){
//linux
$excel = $excel."n";
}else{
//windows
$excel = iconv('utf-8','gb2312',$excel)."n";
}
# 获得列的参数 - key为列的行数
foreach ($Type as $key => $value) {
$$key = '';
# K为字段名 val为字段值
foreach ($value as $K=>$val) {
# 中文转码
if(PATH_SEPARATOR == ':'){
//linux
$$K = $val."t";
}else{
//windows
$$K = iconv('utf-8','gb2312',$val)."t";
}
$$key .= $$K;
}
$excel .= $$key."n";
# 重置一行
$$key = '';
}
#清空缓存,以免发生乱码
ob_end_clean();
$filename = date('Ymd').'.xls';
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/vnd.ms-execl");
header("Content-Type: application/force-download");
header("Content-Type: application/download");
header("Content-Disposition: attachment; filename=".$filename);
header("Content-Transfer-Encoding: binary");
header("Pragma: no-cache");
header("Expires: 0");
echo $excel;
}
//使用示例
$title = ['狗带','狗蛋','小黄牛'];
$array = array(
array('title'=> 1,'num'=>11,'age'=>'21'),
array('title'=> 2,'num'=>12,'age'=>'22'),
array('title'=> 3,'num'=>13,'age'=>'23'),
array('title'=> 4,'num'=>14,'age'=>'24'),
array('title'=> 5,'num'=>15,'age'=>'25'),
array('title'=> 6,'num'=>16,'age'=>'26'),
array('title'=> 7,'num'=>17,'age'=>'27'),
array('title'=> 8,'num'=>18,'age'=>'28')
);
Port_Excel($title, $array);
```
© 著作权归作者所有