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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
<?php
/**
* 导出到excel文件(一般导出中文的都会乱码,需要进行编码转换)
* 使用方法如下
* $excel = new Excel();
* $excel->addHeader(array('列1','列2','列3','列4'));
* $excel->addBody(
array(
array('数据1','数据2','数据3','数据4'),
array('数据1','数据2','数据3','数据4'),
array('数据1','数据2','数据3','数据4'),
array('数据1','数据2','数据3','数据4')
)
);
* $excel->downLoad();
*/
class
Excel{
private
$head
;
private
$body
;
/**
*
* @param type $arr 一维数组
*/
public
function
addHeader(
$arr
){
foreach
(
$arr
as
$headVal
){
$headVal
=
$this
->charset(
$headVal
);
$this
->head .=
"{$headVal}\t "
;
}
$this
->head .=
"\n"
;
}
/**
*
* @param type $arr 二维数组
*/
public
function
addBody(
$arr
){
foreach
(
$arr
as
$arrBody
){
foreach
(
$arrBody
as
$bodyVal
){
$bodyVal
=
$this
->charset(
$bodyVal
);
$this
->body .=
"{$bodyVal}\t "
;
}
$this
->body .=
"\n"
;
}
}
/**
* 下载excel文件
*/
public
function
downLoad(
$filename
=
''
){
if
(!
$filename
)
$filename
=
date
(
'YmdHis'
,time()).
'.xls'
;
header(
"Content-type:application/vnd.ms-excel"
);
header(
"Content-Disposition:attachment;filename=$filename"
);
header(
"Content-Type:charset=gb2312"
);
if
(
$this
->head)
echo
$this
->head;
echo
$this
->body;
}
/**
* 编码转换
* @param type $string
* @return string
*/
public
function
charset(
$string
){
return
iconv(
"utf-8"
,
"gb2312"
,
$string
);
}
}
?>
|
php 导出数据到excel类
最新推荐文章于 2020-04-13 14:31:58 发布