2015-12-02 38 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>