2010-07-13 61 views
0

我無法使用適用於PHP的SSRS SDK呈現可正確下載的Excel文件。我可以爲一個CSV,並且我可以爲一個PDF內聯渲染一個。在EXCEL中查看時,生成的文件的內容是垃圾。這裏是我的代碼:無法使用用於PHP的SSRS SDK進行Excel下載

$ renderAs = new RenderAsEXCEL();

$結果= $ ssrs_report-> Render2($ renderAs, PageCountModeEnum :: $估計, $擴展, $ Mime類型, $編碼, $警告, $ StreamIds);

header(「Content-Type:application/vnd.ms-excel」);

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

順便說一句,我已經嘗試了許多不同的MIME內容類型值。

回答

1

我可能的方式來晚了,但對其他任何人在這個問題上絆倒:

的問題其實是,有在第一

<?php 

在RenderAsEXCEL.php前面的空間並有幾行字後,最後

?> 
在RenderAsPDF.php

刪除這些空格,你將不必使用UGL Ÿob_clean()解決方法

2

有點晚了,但我有同樣的問題,我花了一段時間來弄明白:

有跡象表明,之前或PHP的標籤不僅僅是之後包含空格的多個文件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;