我无法使用SSRS SDK for PHP正确下载excel文件。我可以使用CSV,我可以为PDF内联渲染一个。在EXCEL中查看时,生成的文件的内容是垃圾。这是我的代码:
$ renderAs = new RenderAsEXCEL();
$ result = $ ssrs_report-> Render2($ renderAs, PageCountModeEnum :: $估算, $扩展, $ Mime类型, $编码, $警告, $ StreamIds);
标题(“Content-Type:application / vnd.ms-excel”);
header(“Content-Disposition:attachment; filename = \”“。$ reportName。”。xls \“;”);
不过,我尝试了很多不同的MIME Content-Type值。答案 0 :(得分:2)
有点晚了,但我遇到了同样的问题,我花了一段时间来弄明白:
有更多文件在php-tags之前或之后包含空格,而不仅仅是RenderAsEXCEL.php文件。
由于SSRS库的主要php文件包含几乎所有文件,因此需要删除所有文件中php-tags之前和之后的所有空格。
完成后,使用此代码下载Excel文件。
$renderAsExcel = new RenderAsEXCEL();
$result = $ssrsServer->Render2($renderAsExcel,
PageCountModeEnum::$Estimate,
$Extension,
$MimeType,
$Encoding,
$Warnings,
$StreamIds
);
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=\"report.xls\"");
header("Content-length: ".(string)(strlen($result)));
header("Expires: ".gmdate("D, d M Y H:i:s", mktime(date("H")+2, date("i"),date("s"),date("m"), date("d"),date("Y")))." GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
echo $result;
答案 1 :(得分:1)
我可能会迟到,但是其他任何人都会遇到这个问题:
问题实际上是第一个
前面有一个空格<?php
在RenderAsEXCEL.php中,最后一行
之后有几行?>
在RenderAsPDF.php中 删除这些空格,您将不必使用丑陋的ob_clean()解决方法
答案 2 :(得分:0)
我没有使用过这个库,但是我从这个库中得到了很好的结果:http://www.bettina-attack.de/jonny/view.php/projects/php_writeexcel/
将其构建到许多应用程序中,而不必过多考虑它。