Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用SSRS SDK for PHP呈现Excel下载_Php_Excel_Reporting Services - Fatal编程技术网

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

无法使用SSRS SDK for PHP呈现Excel下载,php,excel,reporting-services,Php,Excel,Reporting Services,我无法使用SSRSSDK for PHP正确呈现excel文件以供下载。我可以为CSV绘制一个,也可以为PDF内联绘制一个。在EXCEL中查看时,生成文件的内容是垃圾。这是我的密码: $renderAs=新的RenderAsEXCEL() $result=$ssrs\u report->Render2($renderAs, PageCountModeEnum::$Estimate, $Extension, $MimeType, $Encoding, $警告, $StreamIds) 标题(“内容

我无法使用SSRSSDK for PHP正确呈现excel文件以供下载。我可以为CSV绘制一个,也可以为PDF内联绘制一个。在EXCEL中查看时,生成文件的内容是垃圾。这是我的密码:

$renderAs=新的RenderAsEXCEL()

$result=$ssrs\u report->Render2($renderAs, PageCountModeEnum::$Estimate, $Extension, $MimeType, $Encoding, $警告, $StreamIds)

标题(“内容类型:application/vnd.ms excel”)

标题(“内容处置:附件;文件名=\”.$reportName.“.xls\”;”


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

我没有使用该库,但我从中获得了很好的结果:


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

我没有使用过该库,但我从这个库中获得了很好的结果:


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

我可能要迟到了,但对于其他遇到这个问题的人来说:

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

<?php
在RenderAsPDF.php中
删除这些空白,您就不必使用难看的ob_clean()解决方法了

我可能要迟到了,但对于其他遇到此问题的人:

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

<?php
在RenderAsPDF.php中
删除这些空白,您就不必使用难看的ob_clean()解决方案了,但我也遇到了同样的问题,我花了一段时间才解决:

php标记前后包含空格的文件比RenderAsEXCEL.php文件多

由于SSRS库的主php文件包含几乎所有的文件,因此需要从所有文件中删除php标记前后的所有空格

完成后,使用此代码下载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;

有点晚了,但我也遇到了同样的问题,我花了一段时间才弄明白:

php标记前后包含空格的文件比RenderAsEXCEL.php文件多

由于SSRS库的主php文件包含几乎所有的文件,因此需要从所有文件中删除php标记前后的所有空格

完成后,使用此代码下载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;