2015-12-02 64 views
2

我需要你的幫助。 我有一個通過一系列查詢填充表的php頁面。在HTML文件中導出PHP表格

我的功能,通過點擊一個按鈕我將表格導出到Excel。 我需要在HTML文件中始終單擊按鈕導出此表。

我該怎麼辦?

+3

你怎麼已經導出到Excel?如果你這樣做,那麼你已經做了¾或你需要將它導出到html的工作 –

+0

是的,Excel中的導出效果很好。我如何做一個導出在HTML? – AleZucchelli

+0

那麼你怎麼做出口到Excel?知道這些信息可以讓我們更好地回答你的問題 –

回答

0

這是3簡單的步驟處理:

1 - 你必須做的第一件事是添加應用程序/ vnd.ms - Excel的內容類型到PHP文件:

header("Content-Type: application/vnd.ms-excel"); 

2 - 數據同樣簡單。用標籤(PHP中的「\ t」)分隔單元格/列,並用換行符(PHP中的「\ n」)移動到下一行。

echo 'First Name' . "\t" . 'Last Name' . "\t" . 'Phone' . "\n"; 
echo 'John' . "\t" . 'Doe' . "\t" . '555-5555' . "\n"; 

將選項卡(\ t)和新行(\ n)分開,以便您可以輕鬆看到結構。上面會創建一個電子表格,看起來像這樣:

First Name  Last Name  Phone 
John   Doe   555-5555 

第3步:下載電子表格

header("Content-disposition: attachment; filename=spreadsheet.xls"); 

here下載示例文件。

您還可以使用PHPExcel生成excel文件。

+0

請注意,你正在創建一個CSV文件,而不是一個Excel文件;你忽略了PHP內置的fputcsv()函數,它可以正確處理包含製表符和引號的字段(而你的「自制」將會中斷);而OP說他們已經可以創建一個Excel文件,並且想要創建HTML –

0

我用這個Java腳本的功能

[link]<script type="text/javascript"> 
     var tableToExcel = (function() 
     { 
     var uri = 'data:application/vnd.ms-excel;base64,' 
     , template = '<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><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--><meta http-equiv="content-type" content="text/plain; charset=UTF-8"/></head><body><table>{table}</table></body></html>' 
     , base64 = function(s) { return window.btoa(unescape(encodeURIComponent(s))) } 
     , format = function(s, c) { return s.replace(/{(\w+)}/g, function(m, p) { return c[p]; }) } 
     return function(table, name) 
     { 
     if (!table.nodeType) table = document.getElementById(table) 
     var ctx = {worksheet: name || 'Worksheet', table: table.innerHTML} 
     window.location.href = uri + base64(format(template, ctx)) 
     } 
     })() 
</script>