當前位置:
首頁 > 知識 > PHP將數據導出Excel表中

PHP將數據導出Excel表中

1、簡介

如何利用最簡單粗糙暴力的方法將數據寫入Excel文件中呢?

因為ms word和excel的文檔都支持html文本格式,因此我們可以基於這個原理採用html文本格式進行數據的輸出。

在html中,我們只需要將數據照著所想要的順序放進相應的html表格中即可。

我們採用PHP進行數據獲取整理以及構造相應的html文本,最後通過位元組流輸出下載到用戶本地。

2、代碼

直接上代碼,這是一個很簡單的程序,裡面都帶有注釋了。

ExportExcel.class.php文件

1 <?php
2 class ExportExcel{
3 /**
4 * @desc 將數據導出到Excel中
5 * @param $data array 設置表格數據
6 * @param $titlename string 設置head
7 * @param $title string 設置表頭
8 * @param $filename 設置默認文件名
9 * @return 將字元串輸出,即輸出位元組流,下載Excel文件
10 */
11 public function excelData($data,$titlename,$title,$filename){
12 #xmlns即是xml的命名空間
13 $str = "<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=Content-Type content="text/html; charset=utf-8">
</head>
<body>";
14 #以下構建一個html類型格式的表格
15 $str .= $title;
16 $str .="<table border=1><head>".$titlename."</head>";
17 foreach ($data as $key=> $rt )
18 {
19 $str .= "<tr>";
20 foreach ( $rt as $k => $v )
21 {
22 $str .= "<td>{$v}</td>";
23 }
24 $str .= "</tr>
";
25 }
26 $str .= "</table></body></html>";
27 header( "Content-Type: application/vnd.ms-excel; name="excel"" ); #類型
28 header( "Content-type: application/octet-stream" ); #告訴瀏覽器響應的對象的類型(位元組流、瀏覽器默認使用下載方式處理)
29 header( "Content-Disposition: attachment; filename=".$filename ); #不打開此文件,刺激瀏覽器彈出下載窗口、下載文件默認命名
30 header( "Cache-Control: must-revalidate, post-check=0, pre-check=0" );
31 header( "Pragma: no-cache" ); #保證不被緩存或者說保證獲取的是最新的數據
32 header( "Expires: 0" );
33 exit( $str );
34 }
35
36
37 }
38
39
40 ?>

1 <?php
2 $obj=new ExportExcel;
3
4 $data = array(
5 array("a11","a22","a33"),
6 array("b11","b22","b33"),
7 array("c11","c22","c33"),
8 array("d11","d22","d33"),
9 array("e11","e22","e33"),
10 array("f11","f22","f33"),
11 );
12 $excelHead = "這個是Excel表格標題";
13 $title = "我的Excel表"; #文件命名
14 $headtitle= "<tr><th colspan="3" >{$excelHead}</th></tr>";
15 $titlename = "<tr>
16 <th stylex="width:70px;">表格1</th>
17 <th stylex="width:70px;">表格2</th>
18 <th stylex="width:70px;">表格3</th>
19 </tr>";
20 $filename = $title.".xls";
21 $obj->excelData($data,$titlename,$headtitle,$filename);
22
23
24 ?>

3、測試

點擊訪問:

下載該Excel文件

PHP將數據導出Excel表中

成功後查看該文件:

進入後Excel提示說該文件格式與後綴名不一致,這也間接說明了我們所導出來的Excel文件僅僅只是個外表是Excel(實質是html文件),格式上並不是Excel文件。

點擊是進入查看裡面的內容,上看去挺像Excel的嘛,哈哈。就醬紫

PHP將數據導出Excel表中

PHP將數據導出Excel表中

更改後綴名為html進入查看:

你瞧,實質就是html文件嘛,只是Excel支持該格式而已。

PHP將數據導出Excel表中

4、參考文獻

(以上是自己的一些見解,若有不足或者錯誤的地方請各位指出)

聲明:本博客文章為原創,只代表本人在工作學習中某一時間內總結的觀點或結論。轉載時請在文章頁面明顯位置給出原文鏈接

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 達人科技 的精彩文章:

JPA Advanced Mappings(映射)
web組件工具之獲取表單數據:webUtils
第一章之s5pv210啟動順序
hadoop以及相關組件介紹以及個人理解
VMware workstation批量創建虛擬機和自動化安裝操作系統(一)

TAG:達人科技 |

您可能感興趣

Angelababy代表中國女星首登美版Vogue封面,配嗎
學會使用PowerBI報表中的篩選器
Angelababy代表中國登Vogue封面,卻引來一陣嘲諷
智能表中的「王者」Apple watch 4,如今卻跌至極點
通過VLOOKUP函數從一個表中取數到另一個表
Angelababy,你有什麼資格代表中國女演員!
諾基亞6.1被發現在谷歌的ARCore設備列表中
《PD 48》發表中間順位 PLEDIS李佳恩暫居一位
Angelababy又贏了,但你有什麼資格代表中國女演員?
Angelababy!你憑什麼能夠代表中國女演員?
表中名媛 簡評百達翡麗DIAMOND RIBBON高珠腕錶
Angelababy又被群嘲!沒演技,憑什麼代表中國面孔?
Tfboy王源兩度代表中國青年出席聯合國,網友怒批:他不配
OLED電視全球三強代表中韓日對決,AWE2018創維大手筆展示冠軍實力
崛起的中國CS究竟誰能代表中國csgo的最高水平?
絕地求生PCPI歷程:OMG代表中國進軍世界賽
NBA最美女主持有男友了,他曾代表中國出場,主動放棄CBA
減負上市,Uber現金流量表中的「隱患」
baby代表中國明星上美版vogue,連鞏俐章子怡都沒這待遇,厲害!
BMJ發表中國CDC文章,稱80歲後正常血壓需要重新界定