无法使用适用于PHP的SSRS SDK呈现Excel下载

我无法使用适用于PHP的SSRS SDK来正确下载excel文件。 我可以为一个CSV,我可以为内联PDF提供一个。 在EXCEL中查看生成文件的内容是垃圾。 这是我的代码:

$ renderAs = new RenderAsEXCEL();

$ result = $ ssrs_report-> Render2($ renderAs,PageCountModeEnum :: $ Estimate,$ Extension,$ MimeType,$ Encoding,$ Warnings,$ StreamIds);

header(“Content-Type:application / vnd.ms-excel”);

header(“Content-Disposition:attachment; filename = \”“。$ reportName。”。xls \“;”);

顺便说一句,我已经尝试了许多不同的MIME内容types值。

有点晚了,但我有同样的问题,我花了一段时间才弄清楚:

在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 MYH:i:s", mktime(date("H")+2, date("i"),date("s"),date("m"), date("d"),date("Y")))." GMT"); header("Last-Modified: ".gmdate("D, d MYH:i:s")." GMT"); header("Cache-Control: no-cache, must-revalidate"); header("Pragma: no-cache"); echo $result; 

我可能会迟到,但对于在这个问题上绊倒的其他人:

问题实际上是在第一个前面有一个空间

 <?php 

在RenderAsEXCEL.php中,最后有几行

 ?> 

在RenderAsPDF.php中删除这些空格,你将不必使用丑陋的ob_clean()解决方法

我没有使用过这个库,但是我从这个库中得到了很好的结果: http : //www.bettina-attack.de/jonny/view.php/projects/php_writeexcel/

将其构build到许多应用程序中,而不必考虑太多。