在 HTML 文件中导出 PHP 表
Posted
技术标签:
【中文标题】在 HTML 文件中导出 PHP 表【英文标题】:Export PHP table in a HTML file 【发布时间】:2015-12-02 08:10:51 【问题描述】:我需要你的帮助。 我有一个通过一系列查询填充表格的 php 页面。
I 函数,通过单击按钮将表格导出到 Excel。 我需要在一个 html 文件中导出这个表格,总是点击一个按钮。
我该怎么办?
【问题讨论】:
如何导出到 Excel?如果您正在这样做,那么您已经在做 ¾ 或者您需要将其导出到 html 的工作 是的,Excel 中的导出效果很好。如何在 html 中导出? 那么您是如何导出到 Excel 的呢?了解这些信息可以让我们更好地回答您的问题 将data:application/vnd.ms-excel
更改为 data:text/html
.... 这就是告诉浏览器是作为 excel 文件处理还是作为要在浏览器本身中呈现的 html 的位
你真的应该标记这个来问js人,你的代码纯粹是js,与PHP这样的服务器端代码完全无关
【参考方案1】:
这是一个简单的 3 个步骤:
1 - 你要做的第一件事是在你的 PHP 文件中添加一个 application/vnd.ms-excel 内容类型:
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文件。
【讨论】:
请注意,您创建的是 CSV 文件,而不是 Excel 文件;您忽略了 PHP 的内置 fputcsv() 函数,该函数将正确处理包含制表符和引号的字段(而您的“自制软件”会中断);并且 OP 说他们已经可以创建一个 Excel 文件,并且想要创建 HTML【参考方案2】:我使用这个 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>
【讨论】:
以上是关于在 HTML 文件中导出 PHP 表的主要内容,如果未能解决你的问题,请参考以下文章
如何从具有 DATE 列的 BigQuery 表中导出 AVRO 文件并将其再次加载到 BigQuery
SSIS 2008 - 在平面文件目标中导出为指数值的浮点值
Bigquery 在文件大小为 8GB 的 GCS 中导出表,即使使用单个通配符 URI 将表导出到小于 1 gb 的文件块中