无法使用SSRS SDK for PHP呈现Excel下载

时间:2010-07-13 21:53:39

标签: php excel reporting-services

我无法使用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 Con​​tent-Type值。

3 个答案:

答案 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/

将其构建到许多应用程序中,而不必过多考虑它。