在 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 表的主要内容,如果未能解决你的问题,请参考以下文章

在 Excel 工作表单元格中导出数据

Yii框架中导出excel文件

如何从具有 DATE 列的 BigQuery 表中导出 AVRO 文件并将其再次加载到 BigQuery

SSIS 2008 - 在平面文件目标中导出为指数值的浮点值

Bigquery 在文件大小为 8GB 的​​ GCS 中导出表,即使使用单个通配符 URI 将表导出到小于 1 gb 的文件块中

php中导出excel时 数字显示问题