【发布时间】:2012-07-21 22:55:43
【问题描述】:
关于我们正在努力实现的目标的更多信息。
我们有用 PHP 编写的报告,它会在屏幕上创建一个表格,然后如果他们选择 Excel 单选按钮并重新运行报告,它将通过在输出表格之前输出以下标题将表格输出到 Excel header("内容类型:应用程序/x-msexcel"); header("过期时间:0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Content-Disposition: attachment; filename=discussion.xls");
当我们尝试在 Joomla 文章中重现相同的报告时,报告工作正常,但是当我们尝试将报告输出到 Excel 时,它确实创建了一个 excel 文件,但似乎输出了整个页面内容而不仅仅是表格来自报告(希望有意义)
您可以在http://commculturecommunity.cloudaccess.net 看到链接,如果您选择 test1,它将创建 Excel 输出,但当您打开它时,您可以看到测试数据,但也可以看到页面的其余内容。
任何帮助将不胜感激。
谢谢 理查德
================================================ ===================================
我们在 Joomla 中创建了一篇文章,并将此代码嵌入(使用 sourcerer)作为文章的一部分。
{source}
<?php
$filename ="excelreport.xls";
$contents ="testdata1 \t testdata2 \t testdata3 \t \n";
header('Content-type: application/ms-excel');
header('Content-Disposition: attachment; filename='.$filename);
echo $contents;
?>
{/source}
当我们转到该页面时,会下载一个 Excel 文件,但是当我们在 Excel 中打开它时,它包含了整个表单,而不仅仅是上面创建的测试数据。
任何帮助将不胜感激
谢谢 理查德
【问题讨论】:
-
不清楚发生了什么...您有示例链接可以尝试
-
Excel 的格式是二进制的,不是开放的文本格式,所以你不能就这么简单地创建它;就像 VampiRUS 说的,你需要使用一个对格式进行反向工程的库。或者,您可以输出 CSV 文件;这是一种开放的文本格式,如果你使用 php 的 csv 函数,它很容易使用,而且绝对是微不足道的。