第一种方法:
php" id="highlighter_421675">
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
|
$filename = '文件名称' ;
$filetitle = '你的标题' ;
if ( $_POST ){
set_time_limit(10000);
$title = '' ;
ini_set ( 'memory_limit' , '300M' );
$name = $title . ".xls" ;
header( 'Content-Disposition: attachment;filename=' . $name . '' );
header( 'Cache-Control: max-age=0' );
$where = "1=1" ;
$sql = "" ;
$query = DB::Query( $sql );
// PHP文件句柄,php://output 表示直接输出到浏览器
$fp = fopen ( 'php://output' , 'a' );
// 输出Excel列头信息
$head = array ( 'ID' );
//字符替换
$p_new_lines = array ( "\r\n" , "\n" , "\t" , "\r" , "\r\n" , "<pre>" , "</pre>" , "<br>" , "</br>" , "<br/>" );
$p_change_line_in_excel_cell = '' ;
foreach ( $head as $v ){
echo iconv( 'utf-8' , 'gb2312' , $v ) . "\t" ;
}
echo "\n" ;
// 计数器
$cnt = 0;
// 每隔$limit行,刷新一下输出buffer,节约资源
$limit = 100000;
// 逐行取出数据,节约内存
while ( $res = mysql_fetch_assoc( $query )) {
$cnt ++;
if ( $limit == $cnt ) { //刷新一下输出buffer,防止由于数据过多造成问题
ob_flush();
flush ();
$cnt = 0;
}
echo trim( $res [ 'id' ]). "\t" ;
echo "\n" ;
}
}
|
第二种方法:
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
|
$filename = '文件名称' ;
$filetitle = '你的标题' ;
if ( $_POST ){
$title = '' ;
ini_set ( 'memory_limit' , '300M' );
header( 'Content-Type: application/vnd.ms-excel;charset=utf-8' );
$name = $title . ".xls" ;
header( 'Content-Disposition: attachment;filename=' . $name . '' );
header( 'Cache-Control: max-age=0' );
echo '<html xmlns:o= "urn:schemas-microsoft-com:office:office"
xmlns:x= "urn:schemas-microsoft-com:office:excel"
xmlns= "http://www.w3.org/TR/REC-html40" >
<head>
<meta http-equiv= "expires" content= "Mon, 06 Jan 1999 00:00:01 GMT" >
<meta http-equiv=Content-Type content= "text/html; charset=gb2312" >
<!--[ if gte mso 9]><xml>
<x:ExcelWorkbook>
<x:ExcelWorksheets>
<x:ExcelWorksheet>
<x:Name></x:Name>
<x:WorksheetOptions>
<x:DisplayGridlines/>
</x:WorksheetOptions>
</x:ExcelWorksheet>
</x:ExcelWorksheets>
</x:ExcelWorkbook>
</xml><![ endif ]-->
</head>';
$where = "1=1" ;
$sql = " " ;
mysql_query( 'set names "utf8"' );
mysql_set_charset( 'utf8' );
$query = DB::Query( $sql );
// PHP文件句柄,php://output 表示直接输出到浏览器
$fp = fopen ( 'php://output' , 'a' );
// 输出Excel列头信息
$head = array ( 'ID' , 'xxx' );
//字符替换
$p_new_lines = array ( "\r\n" , "\n" , "\t" , "\r" , "\r\n" , "<pre>" , "</pre>" , "<br>" , "</br>" , "<br/>" );
$p_change_line_in_excel_cell = '' ;
echo "<table>" ;
echo "<tr>" ;
foreach ( $head as $v ){
echo "<td>" .iconv( 'utf-8' , 'gb2312' , $v ). "</td>" ;
}
echo "</tr>" ;
// 逐行取出数据,节约内存
while ( $res = mysql_fetch_assoc( $query )) {
echo "<tr>" ;
echo "<td style='vnd.ms-excel.numberformat:@'>" . $res [ 'id' ]. "</td>" ;
echo "<td>" .iconv( 'utf-8' , 'gb2312' , $res [ 'xxx' ]. "</td>" ;
echo "</tr>" ;
}
echo "</table>" ;
}
|
以上这篇php原生导出excel文件的两种方法(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。