利用php導出excel我們大多會直接生成 csv文件,這種方便快捷如果不是要求很高,完全可以利用csv 來實例了,這是最簡單的了,代碼如下:
- <?php
- header("Content-type:application/vnd.ms-excel");
- header("Content-Disposition:attachment;filename=test_data.xls");
- $tx=’表頭’;
- echo $tx."nn";
- //輸出內容如下:
- echo "姓名"."t";
- echo "年齡"."t";
- echo "學歷"."t";
- echo "n";
- echo "張三"."t";
- echo "25"."t";
- echo "本科"."t";
- ?>
如果你一定要輸入xls標準的excel文件可參考下面方法,代碼如下:
- /**
- * 輸出XLS的頭信息
- * 注:使用此函數前后都不應有任何數據輸出
- * @param $data Array 下載的數據
- * @param $file_name String 下載的文件名
- */
- function outputXlsHeader($data,$file_name = 'export')
- {
- header('Content-Type: text/xls');
- header ( "Content-type:application/vnd.ms-excel;charset=utf-8" );
- $str = mb_convert_encoding($file_name, 'gbk', 'utf-8');
- header('Content-Disposition: attachment;filename="' .$str . '.xls"');
- header('Cache-Control:must-revalidate,post-check=0,pre-check=0');
- header('Expires:0');
- header('Pragma:public');
- $table_data = '<table border="1">';
- foreach ($data as $line)
- {
- $table_data .= '<tr>';
- foreach ($line as $key => &$item)
- {
- $item = mb_convert_encoding($item, 'gbk', 'utf-8');
- $table_data .= '<td>' . $item . '</td>';
- }
- $table_data .= '</tr>';
- }
- $table_data .='</table>';
- echo $table_data;
- die();
- }
下面還推薦一下第三方的做法.
引用google code中推薦的小類庫(大體同方法一,比較復雜點):http://code.google.com/p/php-excel/downloads/list
PHPEXCEL 類庫,功能強大,支持win Excel2003 ,Win Excel2007.
新聞熱點
疑難解答